From 0599955676c920355406f7791c232efac3c12bf4 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Wed, 3 Jan 2024 04:29:30 +0200 Subject: [PATCH 1/5] sort cascadeDelete refs for deterministic tests output --- daos/record.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/daos/record.go b/daos/record.go index 9b6b55df..f16fe03f 100644 --- a/daos/record.go +++ b/daos/record.go @@ -5,6 +5,7 @@ import ( "database/sql" "errors" "fmt" + "sort" "strings" "github.com/pocketbase/dbx" @@ -660,9 +661,23 @@ func (dao *Dao) DeleteRecord(record *models.Record) error { func (dao *Dao) cascadeRecordDelete(mainRecord *models.Record, refs map[*models.Collection][]*schema.SchemaField) error { uniqueJsonEachAlias := "__je__" + security.PseudorandomString(4) - for refCollection, fields := range refs { - if refCollection.IsView() { - continue // skip view collections + // @todo consider changing refs to a slice + // + // Sort the refs keys to ensure that the cascade events firing order is always the same. + // This is not necessary for the operation to function correctly but it helps having deterministic output during testing. + sortedRefKeys := make([]*models.Collection, 0, len(refs)) + for k := range refs { + sortedRefKeys = append(sortedRefKeys, k) + } + sort.Slice(sortedRefKeys, func(i, j int) bool { + return sortedRefKeys[i].Name < sortedRefKeys[j].Name + }) + + for _, refCollection := range sortedRefKeys { + fields, ok := refs[refCollection] + + if refCollection.IsView() || !ok { + continue // skip missing or view collections } for _, field := range fields { From 8f625daa2fd8f861b4b6330a75c4a4a62c3f3d3d Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Wed, 3 Jan 2024 04:30:20 +0200 Subject: [PATCH 2/5] updated some of the tests to use t.Parallel --- apis/admin_test.go | 18 ++++++++++ apis/api_error_test.go | 12 +++++++ apis/backup_test.go | 12 +++++++ apis/base_test.go | 10 ++++++ apis/collection_test.go | 12 +++++++ apis/file_test.go | 6 ++++ apis/health_test.go | 2 ++ apis/logs_test.go | 6 ++++ apis/middlewares_test.go | 16 +++++++++ apis/record_auth_test.go | 24 +++++++++++++ apis/record_crud_test.go | 10 ++++++ apis/record_helpers_test.go | 6 ++++ apis/settings_test.go | 10 ++++++ daos/admin_test.go | 16 +++++++++ daos/base_retry_test.go | 4 +++ daos/collection_test.go | 22 ++++++++++++ daos/external_auth_test.go | 12 +++++++ daos/log_test.go | 10 ++++++ daos/param_test.go | 10 ++++++ daos/record_expand_test.go | 6 ++++ daos/record_table_sync_test.go | 4 +++ daos/record_test.go | 38 +++++++++++++++++++++ daos/settings_test.go | 2 ++ daos/table_test.go | 12 +++++++ daos/view_test.go | 10 ++++++ forms/admin_login_test.go | 4 +++ forms/admin_password_reset_confirm_test.go | 4 +++ forms/admin_password_reset_request_test.go | 4 +++ forms/admin_upsert_test.go | 8 +++++ forms/apple_client_secret_create_test.go | 2 ++ forms/backup_create_test.go | 2 ++ forms/backup_upload_test.go | 2 ++ forms/collection_upsert_test.go | 8 +++++ forms/collections_import_test.go | 6 ++++ forms/realtime_subscribe_test.go | 2 ++ forms/record_email_change_confirm_test.go | 4 +++ forms/record_email_change_request_test.go | 4 +++ forms/record_oauth2_login_test.go | 2 ++ forms/record_password_login_test.go | 4 +++ forms/record_password_reset_confirm_test.go | 4 +++ forms/record_password_reset_request_test.go | 4 +++ forms/record_verification_confirm_test.go | 4 +++ forms/record_verification_request_test.go | 4 +++ forms/settings_upsert_test.go | 6 ++++ forms/test_email_send_test.go | 2 ++ forms/test_s3_filesystem_test.go | 4 +++ 46 files changed, 374 insertions(+) diff --git a/apis/admin_test.go b/apis/admin_test.go index f7cf3a05..02f14bd6 100644 --- a/apis/admin_test.go +++ b/apis/admin_test.go @@ -17,6 +17,8 @@ import ( ) func TestAdminAuthWithPassword(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "empty data", @@ -119,6 +121,8 @@ func TestAdminAuthWithPassword(t *testing.T) { } func TestAdminRequestPasswordReset(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "empty data", @@ -188,6 +192,8 @@ func TestAdminRequestPasswordReset(t *testing.T) { } func TestAdminConfirmPasswordReset(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "empty data", @@ -277,6 +283,8 @@ func TestAdminConfirmPasswordReset(t *testing.T) { } func TestAdminRefresh(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -350,6 +358,8 @@ func TestAdminRefresh(t *testing.T) { } func TestAdminsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -453,6 +463,8 @@ func TestAdminsList(t *testing.T) { } func TestAdminView(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -508,6 +520,8 @@ func TestAdminView(t *testing.T) { } func TestAdminDelete(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -603,6 +617,8 @@ func TestAdminDelete(t *testing.T) { } func TestAdminCreate(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized (while having at least 1 existing admin)", @@ -757,6 +773,8 @@ func TestAdminCreate(t *testing.T) { } func TestAdminUpdate(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", diff --git a/apis/api_error_test.go b/apis/api_error_test.go index b2ff52fb..d6e77b67 100644 --- a/apis/api_error_test.go +++ b/apis/api_error_test.go @@ -10,6 +10,8 @@ import ( ) func TestNewApiErrorWithRawData(t *testing.T) { + t.Parallel() + e := apis.NewApiError( 300, "message_test", @@ -33,6 +35,8 @@ func TestNewApiErrorWithRawData(t *testing.T) { } func TestNewApiErrorWithValidationData(t *testing.T) { + t.Parallel() + e := apis.NewApiError( 300, "message_test", @@ -66,6 +70,8 @@ func TestNewApiErrorWithValidationData(t *testing.T) { } func TestNewNotFoundError(t *testing.T) { + t.Parallel() + scenarios := []struct { message string data any @@ -87,6 +93,8 @@ func TestNewNotFoundError(t *testing.T) { } func TestNewBadRequestError(t *testing.T) { + t.Parallel() + scenarios := []struct { message string data any @@ -108,6 +116,8 @@ func TestNewBadRequestError(t *testing.T) { } func TestNewForbiddenError(t *testing.T) { + t.Parallel() + scenarios := []struct { message string data any @@ -129,6 +139,8 @@ func TestNewForbiddenError(t *testing.T) { } func TestNewUnauthorizedError(t *testing.T) { + t.Parallel() + scenarios := []struct { message string data any diff --git a/apis/backup_test.go b/apis/backup_test.go index 0fe17f7b..3927cfec 100644 --- a/apis/backup_test.go +++ b/apis/backup_test.go @@ -17,6 +17,8 @@ import ( ) func TestBackupsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -84,6 +86,8 @@ func TestBackupsList(t *testing.T) { } func TestBackupsCreate(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -198,6 +202,8 @@ func TestBackupsCreate(t *testing.T) { } func TestBackupsUpload(t *testing.T) { + t.Parallel() + // create dummy form data bodies type body struct { buffer io.Reader @@ -330,6 +336,8 @@ func TestBackupsUpload(t *testing.T) { } func TestBackupsDownload(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -485,6 +493,8 @@ func TestBackupsDownload(t *testing.T) { } func TestBackupsDelete(t *testing.T) { + t.Parallel() + noTestBackupFilesChanges := func(t *testing.T, app *tests.TestApp) { files, err := getBackupFiles(app) if err != nil { @@ -645,6 +655,8 @@ func TestBackupsDelete(t *testing.T) { } func TestBackupsRestore(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", diff --git a/apis/base_test.go b/apis/base_test.go index b5888576..aa61e7ae 100644 --- a/apis/base_test.go +++ b/apis/base_test.go @@ -15,6 +15,8 @@ import ( ) func Test404(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Method: http.MethodGet, @@ -53,6 +55,8 @@ func Test404(t *testing.T) { } func TestCustomRoutesAndErrorsHandling(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "custom route", @@ -142,6 +146,8 @@ func TestCustomRoutesAndErrorsHandling(t *testing.T) { } func TestRemoveTrailingSlashMiddleware(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "non /api/* route (exact match)", @@ -215,6 +221,8 @@ func TestRemoveTrailingSlashMiddleware(t *testing.T) { } func TestEagerRequestInfoCache(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "custom non-api group route", @@ -316,6 +324,8 @@ func TestEagerRequestInfoCache(t *testing.T) { } func TestErrorHandler(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "apis.ApiError", diff --git a/apis/collection_test.go b/apis/collection_test.go index 00333804..4399f372 100644 --- a/apis/collection_test.go +++ b/apis/collection_test.go @@ -17,6 +17,8 @@ import ( ) func TestCollectionsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -125,6 +127,8 @@ func TestCollectionsList(t *testing.T) { } func TestCollectionView(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -193,6 +197,8 @@ func TestCollectionView(t *testing.T) { } func TestCollectionDelete(t *testing.T) { + t.Parallel() + ensureDeletedFiles := func(app *tests.TestApp, collectionId string) { storageDir := filepath.Join(app.DataDir(), "storage", collectionId) @@ -338,6 +344,8 @@ func TestCollectionDelete(t *testing.T) { } func TestCollectionCreate(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -715,6 +723,8 @@ func TestCollectionCreate(t *testing.T) { } func TestCollectionUpdate(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -1082,6 +1092,8 @@ func TestCollectionUpdate(t *testing.T) { } func TestCollectionsImport(t *testing.T) { + t.Parallel() + totalCollections := 11 scenarios := []tests.ApiScenario{ diff --git a/apis/file_test.go b/apis/file_test.go index 40a84f94..36b353de 100644 --- a/apis/file_test.go +++ b/apis/file_test.go @@ -20,6 +20,8 @@ import ( ) func TestFileToken(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -92,6 +94,8 @@ func TestFileToken(t *testing.T) { } func TestFileDownload(t *testing.T) { + t.Parallel() + _, currentFile, _, _ := runtime.Caller(0) dataDirRelPath := "../tests/data/" @@ -391,6 +395,8 @@ func TestFileDownload(t *testing.T) { } func TestConcurrentThumbsGeneration(t *testing.T) { + t.Parallel() + app, err := tests.NewTestApp() if err != nil { t.Fatal(err) diff --git a/apis/health_test.go b/apis/health_test.go index dc1c491d..a86961d1 100644 --- a/apis/health_test.go +++ b/apis/health_test.go @@ -8,6 +8,8 @@ import ( ) func TestHealthAPI(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "health status returns 200", diff --git a/apis/logs_test.go b/apis/logs_test.go index 2336ba0c..74d46bdc 100644 --- a/apis/logs_test.go +++ b/apis/logs_test.go @@ -9,6 +9,8 @@ import ( ) func TestLogsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -78,6 +80,8 @@ func TestLogsList(t *testing.T) { } func TestLogView(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -136,6 +140,8 @@ func TestLogView(t *testing.T) { } func TestLogsStats(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", diff --git a/apis/middlewares_test.go b/apis/middlewares_test.go index 6dd81fdd..176b4363 100644 --- a/apis/middlewares_test.go +++ b/apis/middlewares_test.go @@ -10,6 +10,8 @@ import ( ) func TestRequireGuestOnly(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "valid record token", @@ -104,6 +106,8 @@ func TestRequireGuestOnly(t *testing.T) { } func TestRequireRecordAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest", @@ -242,6 +246,8 @@ func TestRequireRecordAuth(t *testing.T) { } func TestRequireSameContextRecordAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest", @@ -358,6 +364,8 @@ func TestRequireSameContextRecordAuth(t *testing.T) { } func TestRequireAdminAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest", @@ -452,6 +460,8 @@ func TestRequireAdminAuth(t *testing.T) { } func TestRequireAdminAuthOnlyIfAny(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest (while having at least 1 existing admin)", @@ -571,6 +581,8 @@ func TestRequireAdminAuthOnlyIfAny(t *testing.T) { } func TestRequireAdminOrRecordAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest", @@ -731,6 +743,8 @@ func TestRequireAdminOrRecordAuth(t *testing.T) { } func TestRequireAdminOrOwnerAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "guest", @@ -869,6 +883,8 @@ func TestRequireAdminOrOwnerAuth(t *testing.T) { } func TestLoadCollectionContext(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "missing collection", diff --git a/apis/record_auth_test.go b/apis/record_auth_test.go index 269d01ce..95b93da2 100644 --- a/apis/record_auth_test.go +++ b/apis/record_auth_test.go @@ -17,6 +17,8 @@ import ( ) func TestRecordAuthMethodsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "missing collection", @@ -71,6 +73,8 @@ func TestRecordAuthMethodsList(t *testing.T) { } func TestRecordAuthWithPassword(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "invalid body format", @@ -356,6 +360,8 @@ func TestRecordAuthWithPassword(t *testing.T) { } func TestRecordAuthRefresh(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -483,6 +489,8 @@ func TestRecordAuthRefresh(t *testing.T) { } func TestRecordAuthRequestPasswordReset(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "not an auth collection", @@ -568,6 +576,8 @@ func TestRecordAuthRequestPasswordReset(t *testing.T) { } func TestRecordAuthConfirmPasswordReset(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "empty data", @@ -681,6 +691,8 @@ func TestRecordAuthConfirmPasswordReset(t *testing.T) { } func TestRecordAuthRequestVerification(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "not an auth collection", @@ -774,6 +786,8 @@ func TestRecordAuthRequestVerification(t *testing.T) { } func TestRecordAuthConfirmVerification(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "empty data", @@ -902,6 +916,8 @@ func TestRecordAuthConfirmVerification(t *testing.T) { } func TestRecordAuthRequestEmailChange(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -1004,6 +1020,8 @@ func TestRecordAuthRequestEmailChange(t *testing.T) { } func TestRecordAuthConfirmEmailChange(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "not an auth collection", @@ -1124,6 +1142,8 @@ func TestRecordAuthConfirmEmailChange(t *testing.T) { } func TestRecordAuthListExternalsAuths(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -1224,6 +1244,8 @@ func TestRecordAuthListExternalsAuths(t *testing.T) { } func TestRecordAuthUnlinkExternalsAuth(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -1353,6 +1375,8 @@ func TestRecordAuthUnlinkExternalsAuth(t *testing.T) { } func TestRecordAuthOAuth2Redirect(t *testing.T) { + t.Parallel() + c1 := subscriptions.NewDefaultClient() c2 := subscriptions.NewDefaultClient() diff --git a/apis/record_crud_test.go b/apis/record_crud_test.go index d1e56135..7617e86e 100644 --- a/apis/record_crud_test.go +++ b/apis/record_crud_test.go @@ -17,6 +17,8 @@ import ( ) func TestRecordCrudList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "missing collection", @@ -493,6 +495,8 @@ func TestRecordCrudList(t *testing.T) { } func TestRecordCrudView(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "missing collection", @@ -772,6 +776,8 @@ func TestRecordCrudView(t *testing.T) { } func TestRecordCrudDelete(t *testing.T) { + t.Parallel() + ensureDeletedFiles := func(app *tests.TestApp, collectionId string, recordId string) { storageDir := filepath.Join(app.DataDir(), "storage", collectionId, recordId) @@ -1015,6 +1021,8 @@ func TestRecordCrudDelete(t *testing.T) { } func TestRecordCrudCreate(t *testing.T) { + t.Parallel() + formData, mp, err := tests.MockMultipartData(map[string]string{ "title": "title_test", }, "files") @@ -1591,6 +1599,8 @@ func TestRecordCrudCreate(t *testing.T) { } func TestRecordCrudUpdate(t *testing.T) { + t.Parallel() + formData, mp, err := tests.MockMultipartData(map[string]string{ "title": "title_test", }, "files") diff --git a/apis/record_helpers_test.go b/apis/record_helpers_test.go index ce51bf8e..6ec10827 100644 --- a/apis/record_helpers_test.go +++ b/apis/record_helpers_test.go @@ -14,6 +14,8 @@ import ( ) func TestRequestInfo(t *testing.T) { + t.Parallel() + e := echo.New() req := httptest.NewRequest(http.MethodPost, "/?test=123", strings.NewReader(`{"test":456}`)) req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) @@ -67,6 +69,8 @@ func TestRequestInfo(t *testing.T) { } func TestRecordAuthResponse(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -189,6 +193,8 @@ func TestRecordAuthResponse(t *testing.T) { } func TestEnrichRecords(t *testing.T) { + t.Parallel() + e := echo.New() req := httptest.NewRequest(http.MethodGet, "/?expand=rel_many", nil) req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) diff --git a/apis/settings_test.go b/apis/settings_test.go index 219c5baf..509722ec 100644 --- a/apis/settings_test.go +++ b/apis/settings_test.go @@ -18,6 +18,8 @@ import ( ) func TestSettingsList(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -97,6 +99,8 @@ func TestSettingsList(t *testing.T) { } func TestSettingsSet(t *testing.T) { + t.Parallel() + validData := `{"meta":{"appName":"update_test"}}` scenarios := []tests.ApiScenario{ @@ -278,6 +282,8 @@ func TestSettingsSet(t *testing.T) { } func TestSettingsTestS3(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -344,6 +350,8 @@ func TestSettingsTestS3(t *testing.T) { } func TestSettingsTestEmail(t *testing.T) { + t.Parallel() + scenarios := []tests.ApiScenario{ { Name: "unauthorized", @@ -508,6 +516,8 @@ func TestSettingsTestEmail(t *testing.T) { } func TestGenerateAppleClientSecret(t *testing.T) { + t.Parallel() + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) if err != nil { t.Fatal(err) diff --git a/daos/admin_test.go b/daos/admin_test.go index d49f5972..89ab8e8b 100644 --- a/daos/admin_test.go +++ b/daos/admin_test.go @@ -8,6 +8,8 @@ import ( ) func TestAdminQuery(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -20,6 +22,8 @@ func TestAdminQuery(t *testing.T) { } func TestFindAdminById(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -47,6 +51,8 @@ func TestFindAdminById(t *testing.T) { } func TestFindAdminByEmail(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -76,6 +82,8 @@ func TestFindAdminByEmail(t *testing.T) { } func TestFindAdminByToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -131,6 +139,8 @@ func TestFindAdminByToken(t *testing.T) { } func TestTotalAdmins(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -155,6 +165,8 @@ func TestTotalAdmins(t *testing.T) { } func TestIsAdminEmailUnique(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -180,6 +192,8 @@ func TestIsAdminEmailUnique(t *testing.T) { } func TestDeleteAdmin(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -225,6 +239,8 @@ func TestDeleteAdmin(t *testing.T) { } func TestSaveAdmin(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/base_retry_test.go b/daos/base_retry_test.go index ddf84162..72b80478 100644 --- a/daos/base_retry_test.go +++ b/daos/base_retry_test.go @@ -6,6 +6,8 @@ import ( ) func TestGetDefaultRetryInterval(t *testing.T) { + t.Parallel() + if i := getDefaultRetryInterval(-1); i.Milliseconds() != 1000 { t.Fatalf("Expected 1000ms, got %v", i) } @@ -20,6 +22,8 @@ func TestGetDefaultRetryInterval(t *testing.T) { } func TestBaseLockRetry(t *testing.T) { + t.Parallel() + scenarios := []struct { err error failUntilAttempt int diff --git a/daos/collection_test.go b/daos/collection_test.go index 66774363..ec5a9494 100644 --- a/daos/collection_test.go +++ b/daos/collection_test.go @@ -16,6 +16,8 @@ import ( ) func TestCollectionQuery(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -28,6 +30,8 @@ func TestCollectionQuery(t *testing.T) { } func TestFindCollectionsByType(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -63,6 +67,8 @@ func TestFindCollectionsByType(t *testing.T) { } func TestFindCollectionByNameOrId(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -92,6 +98,8 @@ func TestFindCollectionByNameOrId(t *testing.T) { } func TestIsCollectionNameUnique(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -116,6 +124,8 @@ func TestIsCollectionNameUnique(t *testing.T) { } func TestFindCollectionReferences(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -164,6 +174,8 @@ func TestFindCollectionReferences(t *testing.T) { } func TestDeleteCollection(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -251,6 +263,8 @@ func TestDeleteCollection(t *testing.T) { } func TestSaveCollectionCreate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -297,6 +311,8 @@ func TestSaveCollectionCreate(t *testing.T) { } func TestSaveCollectionUpdate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -336,6 +352,8 @@ func TestSaveCollectionUpdate(t *testing.T) { // indirect update of a field used in view should cause view(s) update func TestSaveCollectionIndirectViewsUpdate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -395,6 +413,8 @@ func TestSaveCollectionIndirectViewsUpdate(t *testing.T) { } func TestSaveCollectionViewWrapping(t *testing.T) { + t.Parallel() + viewName := "test_wrapping" scenarios := []struct { @@ -504,6 +524,8 @@ func TestSaveCollectionViewWrapping(t *testing.T) { } func TestImportCollections(t *testing.T) { + t.Parallel() + totalCollections := 11 scenarios := []struct { diff --git a/daos/external_auth_test.go b/daos/external_auth_test.go index 78701b98..17e55aeb 100644 --- a/daos/external_auth_test.go +++ b/daos/external_auth_test.go @@ -9,6 +9,8 @@ import ( ) func TestExternalAuthQuery(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -21,6 +23,8 @@ func TestExternalAuthQuery(t *testing.T) { } func TestFindAllExternalAuthsByRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -58,6 +62,8 @@ func TestFindAllExternalAuthsByRecord(t *testing.T) { } func TestFindFirstExternalAuthByExpr(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -89,6 +95,8 @@ func TestFindFirstExternalAuthByExpr(t *testing.T) { } func TestFindExternalAuthByRecordAndProvider(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -125,6 +133,8 @@ func TestFindExternalAuthByRecordAndProvider(t *testing.T) { } func TestSaveExternalAuth(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -161,6 +171,8 @@ func TestSaveExternalAuth(t *testing.T) { } func TestDeleteExternalAuth(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/log_test.go b/daos/log_test.go index b31f8a43..5fc9549d 100644 --- a/daos/log_test.go +++ b/daos/log_test.go @@ -12,6 +12,8 @@ import ( ) func TestLogQuery(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -24,6 +26,8 @@ func TestLogQuery(t *testing.T) { } func TestFindLogById(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -54,6 +58,8 @@ func TestFindLogById(t *testing.T) { } func TestLogsStats(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -75,6 +81,8 @@ func TestLogsStats(t *testing.T) { } func TestDeleteOldLogs(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -115,6 +123,8 @@ func TestDeleteOldLogs(t *testing.T) { } func TestSaveLog(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/param_test.go b/daos/param_test.go index b3646085..ef1b8144 100644 --- a/daos/param_test.go +++ b/daos/param_test.go @@ -11,6 +11,8 @@ import ( ) func TestParamQuery(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -23,6 +25,8 @@ func TestParamQuery(t *testing.T) { } func TestFindParamByKey(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -50,6 +54,8 @@ func TestFindParamByKey(t *testing.T) { } func TestSaveParam(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -92,6 +98,8 @@ func TestSaveParam(t *testing.T) { } func TestSaveParamEncrypted(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -126,6 +134,8 @@ func TestSaveParamEncrypted(t *testing.T) { } func TestDeleteParam(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/record_expand_test.go b/daos/record_expand_test.go index 5439754f..027831bb 100644 --- a/daos/record_expand_test.go +++ b/daos/record_expand_test.go @@ -14,6 +14,8 @@ import ( ) func TestExpandRecords(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -222,6 +224,8 @@ func TestExpandRecords(t *testing.T) { } func TestExpandRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -372,6 +376,8 @@ func TestExpandRecord(t *testing.T) { } func TestIndirectExpandSingeVsArrayResult(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/record_table_sync_test.go b/daos/record_table_sync_test.go index 2912bdd3..90684e36 100644 --- a/daos/record_table_sync_test.go +++ b/daos/record_table_sync_test.go @@ -14,6 +14,8 @@ import ( ) func TestSyncRecordTableSchema(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -132,6 +134,8 @@ func TestSyncRecordTableSchema(t *testing.T) { } func TestSingleVsMultipleValuesNormalization(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/record_test.go b/daos/record_test.go index 3f5e8cc4..335352a8 100644 --- a/daos/record_test.go +++ b/daos/record_test.go @@ -19,6 +19,8 @@ import ( ) func TestRecordQueryWithDifferentCollectionValues(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -58,6 +60,8 @@ func TestRecordQueryWithDifferentCollectionValues(t *testing.T) { } func TestRecordQueryOneWithRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -82,6 +86,8 @@ func TestRecordQueryOneWithRecord(t *testing.T) { } func TestRecordQueryAllWithRecordsSlices(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -143,6 +149,8 @@ func TestRecordQueryAllWithRecordsSlices(t *testing.T) { } func TestFindRecordById(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -203,6 +211,8 @@ func TestFindRecordById(t *testing.T) { } func TestFindRecordsByIds(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -294,6 +304,8 @@ func TestFindRecordsByIds(t *testing.T) { } func TestFindRecordsByExpr(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -364,6 +376,8 @@ func TestFindRecordsByExpr(t *testing.T) { } func TestFindFirstRecordByData(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -427,6 +441,8 @@ func TestFindFirstRecordByData(t *testing.T) { } func TestFindRecordsByFilter(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -566,6 +582,8 @@ func TestFindRecordsByFilter(t *testing.T) { } func TestFindFirstRecordByFilter(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -647,6 +665,8 @@ func TestFindFirstRecordByFilter(t *testing.T) { } func TestCanAccessRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -814,6 +834,8 @@ func TestCanAccessRecord(t *testing.T) { } func TestIsRecordValueUnique(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -863,6 +885,8 @@ func TestIsRecordValueUnique(t *testing.T) { } func TestFindAuthRecordByToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -925,6 +949,8 @@ func TestFindAuthRecordByToken(t *testing.T) { } func TestFindAuthRecordByEmail(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -956,6 +982,8 @@ func TestFindAuthRecordByEmail(t *testing.T) { } func TestFindAuthRecordByUsername(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -988,6 +1016,8 @@ func TestFindAuthRecordByUsername(t *testing.T) { } func TestSuggestUniqueAuthRecordUsername(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -1025,6 +1055,8 @@ func TestSuggestUniqueAuthRecordUsername(t *testing.T) { } func TestSaveRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -1058,6 +1090,8 @@ func TestSaveRecord(t *testing.T) { } func TestSaveRecordWithIdFromOtherCollection(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -1090,6 +1124,8 @@ func TestSaveRecordWithIdFromOtherCollection(t *testing.T) { } func TestDeleteRecord(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -1167,6 +1203,8 @@ func TestDeleteRecord(t *testing.T) { } func TestDeleteRecordBatchProcessing(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/settings_test.go b/daos/settings_test.go index 3791f42b..9ae52449 100644 --- a/daos/settings_test.go +++ b/daos/settings_test.go @@ -8,6 +8,8 @@ import ( ) func TestSaveAndFindSettings(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/table_test.go b/daos/table_test.go index 943b693c..8e7d9980 100644 --- a/daos/table_test.go +++ b/daos/table_test.go @@ -12,6 +12,8 @@ import ( ) func TestHasTable(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -36,6 +38,8 @@ func TestHasTable(t *testing.T) { } func TestTableColumns(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -64,6 +68,8 @@ func TestTableColumns(t *testing.T) { } func TestTableInfo(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -92,6 +98,8 @@ func TestTableInfo(t *testing.T) { } func TestDeleteTable(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -116,6 +124,8 @@ func TestDeleteTable(t *testing.T) { } func TestVacuum(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -141,6 +151,8 @@ func TestVacuum(t *testing.T) { } func TestTableIndexes(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/daos/view_test.go b/daos/view_test.go index 5c797d84..a84a00a9 100644 --- a/daos/view_test.go +++ b/daos/view_test.go @@ -33,6 +33,8 @@ func ensureNoTempViews(app core.App, t *testing.T) { } func TestDeleteView(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -60,6 +62,8 @@ func TestDeleteView(t *testing.T) { } func TestSaveView(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -180,6 +184,8 @@ func TestSaveView(t *testing.T) { } func TestCreateViewSchemaWithDiscardedNestedTransaction(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -196,6 +202,8 @@ func TestCreateViewSchemaWithDiscardedNestedTransaction(t *testing.T) { } func TestCreateViewSchema(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -486,6 +494,8 @@ func TestCreateViewSchema(t *testing.T) { } func TestFindRecordByViewFile(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/admin_login_test.go b/forms/admin_login_test.go index 6ff59137..3fa4580f 100644 --- a/forms/admin_login_test.go +++ b/forms/admin_login_test.go @@ -10,6 +10,8 @@ import ( ) func TestAdminLoginValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -51,6 +53,8 @@ func TestAdminLoginValidateAndSubmit(t *testing.T) { } func TestAdminLoginInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/admin_password_reset_confirm_test.go b/forms/admin_password_reset_confirm_test.go index 546b8e7c..583fce65 100644 --- a/forms/admin_password_reset_confirm_test.go +++ b/forms/admin_password_reset_confirm_test.go @@ -11,6 +11,8 @@ import ( ) func TestAdminPasswordResetConfirmValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -99,6 +101,8 @@ func TestAdminPasswordResetConfirmValidateAndSubmit(t *testing.T) { } func TestAdminPasswordResetConfirmInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/admin_password_reset_request_test.go b/forms/admin_password_reset_request_test.go index 79f304b5..6d69ccc3 100644 --- a/forms/admin_password_reset_request_test.go +++ b/forms/admin_password_reset_request_test.go @@ -10,6 +10,8 @@ import ( ) func TestAdminPasswordResetRequestValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -74,6 +76,8 @@ func TestAdminPasswordResetRequestValidateAndSubmit(t *testing.T) { } func TestAdminPasswordResetRequestInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/admin_upsert_test.go b/forms/admin_upsert_test.go index 14657360..bb502842 100644 --- a/forms/admin_upsert_test.go +++ b/forms/admin_upsert_test.go @@ -12,6 +12,8 @@ import ( ) func TestNewAdminUpsert(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -31,6 +33,8 @@ func TestNewAdminUpsert(t *testing.T) { } func TestAdminUpsertValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -183,6 +187,8 @@ func TestAdminUpsertValidateAndSubmit(t *testing.T) { } func TestAdminUpsertSubmitInterceptors(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -231,6 +237,8 @@ func TestAdminUpsertSubmitInterceptors(t *testing.T) { } func TestAdminUpsertWithCustomId(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/apple_client_secret_create_test.go b/forms/apple_client_secret_create_test.go index b20ce636..7bf552d2 100644 --- a/forms/apple_client_secret_create_test.go +++ b/forms/apple_client_secret_create_test.go @@ -15,6 +15,8 @@ import ( ) func TestAppleClientSecretCreateValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/backup_create_test.go b/forms/backup_create_test.go index 4aafbde9..82112ca4 100644 --- a/forms/backup_create_test.go +++ b/forms/backup_create_test.go @@ -10,6 +10,8 @@ import ( ) func TestBackupCreateValidateAndSubmit(t *testing.T) { + t.Parallel() + scenarios := []struct { name string backupName string diff --git a/forms/backup_upload_test.go b/forms/backup_upload_test.go index 8284c668..f92ceada 100644 --- a/forms/backup_upload_test.go +++ b/forms/backup_upload_test.go @@ -12,6 +12,8 @@ import ( ) func TestBackupUploadValidateAndSubmit(t *testing.T) { + t.Parallel() + var zb bytes.Buffer zw := zip.NewWriter(&zb) if err := zw.Close(); err != nil { diff --git a/forms/collection_upsert_test.go b/forms/collection_upsert_test.go index e9f6a9ae..cdcd5388 100644 --- a/forms/collection_upsert_test.go +++ b/forms/collection_upsert_test.go @@ -16,6 +16,8 @@ import ( ) func TestNewCollectionUpsert(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -88,6 +90,8 @@ func TestNewCollectionUpsert(t *testing.T) { } func TestCollectionUpsertValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -654,6 +658,8 @@ func TestCollectionUpsertValidateAndSubmit(t *testing.T) { } func TestCollectionUpsertSubmitInterceptors(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -704,6 +710,8 @@ func TestCollectionUpsertSubmitInterceptors(t *testing.T) { } func TestCollectionUpsertWithCustomId(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/collections_import_test.go b/forms/collections_import_test.go index 61a0fd6d..33d15ab8 100644 --- a/forms/collections_import_test.go +++ b/forms/collections_import_test.go @@ -11,6 +11,8 @@ import ( ) func TestCollectionsImportValidate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -38,6 +40,8 @@ func TestCollectionsImportValidate(t *testing.T) { } func TestCollectionsImportSubmit(t *testing.T) { + t.Parallel() + totalCollections := 11 scenarios := []struct { @@ -461,6 +465,8 @@ func TestCollectionsImportSubmit(t *testing.T) { } func TestCollectionsImportSubmitInterceptors(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/realtime_subscribe_test.go b/forms/realtime_subscribe_test.go index d1df830b..d4f8b1e7 100644 --- a/forms/realtime_subscribe_test.go +++ b/forms/realtime_subscribe_test.go @@ -8,6 +8,8 @@ import ( ) func TestRealtimeSubscribeValidate(t *testing.T) { + t.Parallel() + scenarios := []struct { clientId string expectError bool diff --git a/forms/record_email_change_confirm_test.go b/forms/record_email_change_confirm_test.go index e64b89c0..90ca6f86 100644 --- a/forms/record_email_change_confirm_test.go +++ b/forms/record_email_change_confirm_test.go @@ -13,6 +13,8 @@ import ( ) func TestRecordEmailChangeConfirmValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -145,6 +147,8 @@ func TestRecordEmailChangeConfirmValidateAndSubmit(t *testing.T) { } func TestRecordEmailChangeConfirmInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_email_change_request_test.go b/forms/record_email_change_request_test.go index 4b19b503..c6e8e9d3 100644 --- a/forms/record_email_change_request_test.go +++ b/forms/record_email_change_request_test.go @@ -12,6 +12,8 @@ import ( ) func TestRecordEmailChangeRequestValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -106,6 +108,8 @@ func TestRecordEmailChangeRequestValidateAndSubmit(t *testing.T) { } func TestRecordEmailChangeRequestInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_oauth2_login_test.go b/forms/record_oauth2_login_test.go index a1e2539f..5a4c0744 100644 --- a/forms/record_oauth2_login_test.go +++ b/forms/record_oauth2_login_test.go @@ -10,6 +10,8 @@ import ( ) func TestUserOauth2LoginValidate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/record_password_login_test.go b/forms/record_password_login_test.go index a7d5a173..3892dc48 100644 --- a/forms/record_password_login_test.go +++ b/forms/record_password_login_test.go @@ -10,6 +10,8 @@ import ( ) func TestRecordPasswordLoginValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -132,6 +134,8 @@ func TestRecordPasswordLoginValidateAndSubmit(t *testing.T) { } func TestRecordPasswordLoginInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_password_reset_confirm_test.go b/forms/record_password_reset_confirm_test.go index 2012e346..18fb7a6d 100644 --- a/forms/record_password_reset_confirm_test.go +++ b/forms/record_password_reset_confirm_test.go @@ -13,6 +13,8 @@ import ( ) func TestRecordPasswordResetConfirmValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -136,6 +138,8 @@ func TestRecordPasswordResetConfirmValidateAndSubmit(t *testing.T) { } func TestRecordPasswordResetConfirmInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_password_reset_request_test.go b/forms/record_password_reset_request_test.go index 1755282e..2dc52052 100644 --- a/forms/record_password_reset_request_test.go +++ b/forms/record_password_reset_request_test.go @@ -13,6 +13,8 @@ import ( ) func TestRecordPasswordResetRequestSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -116,6 +118,8 @@ func TestRecordPasswordResetRequestSubmit(t *testing.T) { } func TestRecordPasswordResetRequestInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_verification_confirm_test.go b/forms/record_verification_confirm_test.go index 487b9b35..ba4dcf38 100644 --- a/forms/record_verification_confirm_test.go +++ b/forms/record_verification_confirm_test.go @@ -12,6 +12,8 @@ import ( ) func TestRecordVerificationConfirmValidateAndSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -98,6 +100,8 @@ func TestRecordVerificationConfirmValidateAndSubmit(t *testing.T) { } func TestRecordVerificationConfirmInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/record_verification_request_test.go b/forms/record_verification_request_test.go index 598ebbd6..03b48372 100644 --- a/forms/record_verification_request_test.go +++ b/forms/record_verification_request_test.go @@ -13,6 +13,8 @@ import ( ) func TestRecordVerificationRequestSubmit(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -134,6 +136,8 @@ func TestRecordVerificationRequestSubmit(t *testing.T) { } func TestRecordVerificationRequestInterceptors(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/forms/settings_upsert_test.go b/forms/settings_upsert_test.go index 53041ffa..fee6fbcf 100644 --- a/forms/settings_upsert_test.go +++ b/forms/settings_upsert_test.go @@ -14,6 +14,8 @@ import ( ) func TestNewSettingsUpsert(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -30,6 +32,8 @@ func TestNewSettingsUpsert(t *testing.T) { } func TestSettingsUpsertValidateAndSubmit(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -127,6 +131,8 @@ func TestSettingsUpsertValidateAndSubmit(t *testing.T) { } func TestSettingsUpsertSubmitInterceptors(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/test_email_send_test.go b/forms/test_email_send_test.go index 5d0b7bc2..4bae5ee3 100644 --- a/forms/test_email_send_test.go +++ b/forms/test_email_send_test.go @@ -10,6 +10,8 @@ import ( ) func TestEmailSendValidateAndSubmit(t *testing.T) { + t.Parallel() + scenarios := []struct { template string email string diff --git a/forms/test_s3_filesystem_test.go b/forms/test_s3_filesystem_test.go index 79091db4..71453705 100644 --- a/forms/test_s3_filesystem_test.go +++ b/forms/test_s3_filesystem_test.go @@ -9,6 +9,8 @@ import ( ) func TestS3FilesystemValidate(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -66,6 +68,8 @@ func TestS3FilesystemValidate(t *testing.T) { } func TestS3FilesystemSubmitFailure(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() From 4f2492290e2794fff474d9447c0ecc519c826bb4 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Wed, 3 Jan 2024 10:43:46 +0200 Subject: [PATCH 3/5] [#4068] fixed the `json` field query comparisons to work correctly with plain JSON values --- forms/validators/file_test.go | 4 ++ forms/validators/model_test.go | 2 + forms/validators/record_data_test.go | 2 + forms/validators/string_test.go | 2 + plugins/jsvm/internal/types/types.go | 2 +- resolvers/record_field_resolve_runner.go | 12 +++++ resolvers/record_field_resolver_test.go | 16 ++++++- tests/data/logs.db | Bin 69632 -> 118784 bytes tools/search/filter.go | 42 +++++++++++++----- tools/search/filter_test.go | 8 +++- tools/search/simple_field_resolver.go | 5 +++ ui/.env | 2 +- ...222402c.js => AuthMethodsDocs-30fd4369.js} | 2 +- ...72e612e.js => AuthRefreshDocs-1637fa9f.js} | 2 +- ...6dcd.js => AuthWithOAuth2Docs-bb1f28ac.js} | 2 +- ...31.js => AuthWithPasswordDocs-55d15963.js} | 2 +- ...tor-d15a301a.js => CodeEditor-e3209658.js} | 2 +- ....js => ConfirmEmailChangeDocs-b207e4ce.js} | 2 +- ...s => ConfirmPasswordResetDocs-41e48ec4.js} | 2 +- ...js => ConfirmVerificationDocs-cdbe814c.js} | 2 +- ...-7a13198d.js => CreateApiDocs-8252105a.js} | 2 +- ...-7f9b6a98.js => DeleteApiDocs-db45baf1.js} | 2 +- ...78558e.js => FieldsQueryParam-c4b1abdd.js} | 2 +- ...js => FilterAutocompleteInput-a4e1e466.js} | 2 +- ...cs-be6f6f24.js => ListApiDocs-9cc6bb77.js} | 2 +- ...8.js => ListExternalAuthsDocs-3cadeb8f.js} | 2 +- ...PageAdminConfirmPasswordReset-f7ab4776.js} | 2 +- ...PageAdminRequestPasswordReset-24a89844.js} | 2 +- ...8ff3.js => PageOAuth2Redirect-0f04d5a1.js} | 2 +- ... PageRecordConfirmEmailChange-96f3613e.js} | 2 +- ...ageRecordConfirmPasswordReset-b2841fec.js} | 2 +- ...PageRecordConfirmVerification-19057812.js} | 2 +- ...ecefb98.js => RealtimeApiDocs-7183eb7d.js} | 2 +- ....js => RequestEmailChangeDocs-5b86baf4.js} | 2 +- ...s => RequestPasswordResetDocs-ffe8fb7c.js} | 2 +- ...js => RequestVerificationDocs-b8057f19.js} | 2 +- ...dkTabs-88bdaa1d.js => SdkTabs-27205987.js} | 2 +- ....js => UnlinkExternalAuthDocs-b1470344.js} | 2 +- ...-d73a6961.js => UpdateApiDocs-587bfa04.js} | 2 +- ...cs-e0218a5d.js => ViewApiDocs-8aada62c.js} | 2 +- .../{index-3b554c68.js => index-26bf667a.js} | 18 ++++---- ui/dist/index.html | 2 +- 42 files changed, 119 insertions(+), 54 deletions(-) rename ui/dist/assets/{AuthMethodsDocs-e222402c.js => AuthMethodsDocs-30fd4369.js} (97%) rename ui/dist/assets/{AuthRefreshDocs-f72e612e.js => AuthRefreshDocs-1637fa9f.js} (97%) rename ui/dist/assets/{AuthWithOAuth2Docs-25e86dcd.js => AuthWithOAuth2Docs-bb1f28ac.js} (98%) rename ui/dist/assets/{AuthWithPasswordDocs-30320a31.js => AuthWithPasswordDocs-55d15963.js} (98%) rename ui/dist/assets/{CodeEditor-d15a301a.js => CodeEditor-e3209658.js} (99%) rename ui/dist/assets/{ConfirmEmailChangeDocs-72e04e00.js => ConfirmEmailChangeDocs-b207e4ce.js} (97%) rename ui/dist/assets/{ConfirmPasswordResetDocs-f2dc5193.js => ConfirmPasswordResetDocs-41e48ec4.js} (98%) rename ui/dist/assets/{ConfirmVerificationDocs-a38c2d9c.js => ConfirmVerificationDocs-cdbe814c.js} (97%) rename ui/dist/assets/{CreateApiDocs-7a13198d.js => CreateApiDocs-8252105a.js} (98%) rename ui/dist/assets/{DeleteApiDocs-7f9b6a98.js => DeleteApiDocs-db45baf1.js} (97%) rename ui/dist/assets/{FieldsQueryParam-e878558e.js => FieldsQueryParam-c4b1abdd.js} (96%) rename ui/dist/assets/{FilterAutocompleteInput-e50206fe.js => FilterAutocompleteInput-a4e1e466.js} (99%) rename ui/dist/assets/{ListApiDocs-be6f6f24.js => ListApiDocs-9cc6bb77.js} (99%) rename ui/dist/assets/{ListExternalAuthsDocs-6814fc58.js => ListExternalAuthsDocs-3cadeb8f.js} (97%) rename ui/dist/assets/{PageAdminConfirmPasswordReset-3f83e2fb.js => PageAdminConfirmPasswordReset-f7ab4776.js} (98%) rename ui/dist/assets/{PageAdminRequestPasswordReset-fabf61d9.js => PageAdminRequestPasswordReset-24a89844.js} (98%) rename ui/dist/assets/{PageOAuth2Redirect-18ed8ff3.js => PageOAuth2Redirect-0f04d5a1.js} (86%) rename ui/dist/assets/{PageRecordConfirmEmailChange-db209470.js => PageRecordConfirmEmailChange-96f3613e.js} (98%) rename ui/dist/assets/{PageRecordConfirmPasswordReset-d2ce212c.js => PageRecordConfirmPasswordReset-b2841fec.js} (98%) rename ui/dist/assets/{PageRecordConfirmVerification-bca816f3.js => PageRecordConfirmVerification-19057812.js} (97%) rename ui/dist/assets/{RealtimeApiDocs-1ecefb98.js => RealtimeApiDocs-7183eb7d.js} (98%) rename ui/dist/assets/{RequestEmailChangeDocs-b89a6cc3.js => RequestEmailChangeDocs-5b86baf4.js} (98%) rename ui/dist/assets/{RequestPasswordResetDocs-a2af2bdb.js => RequestPasswordResetDocs-ffe8fb7c.js} (97%) rename ui/dist/assets/{RequestVerificationDocs-cc391425.js => RequestVerificationDocs-b8057f19.js} (97%) rename ui/dist/assets/{SdkTabs-88bdaa1d.js => SdkTabs-27205987.js} (98%) rename ui/dist/assets/{UnlinkExternalAuthDocs-afa6f8a1.js => UnlinkExternalAuthDocs-b1470344.js} (98%) rename ui/dist/assets/{UpdateApiDocs-d73a6961.js => UpdateApiDocs-587bfa04.js} (98%) rename ui/dist/assets/{ViewApiDocs-e0218a5d.js => ViewApiDocs-8aada62c.js} (97%) rename ui/dist/assets/{index-3b554c68.js => index-26bf667a.js} (99%) diff --git a/forms/validators/file_test.go b/forms/validators/file_test.go index 6dd440a4..07b5ec98 100644 --- a/forms/validators/file_test.go +++ b/forms/validators/file_test.go @@ -12,6 +12,8 @@ import ( ) func TestUploadedFileSize(t *testing.T) { + t.Parallel() + data, mp, err := tests.MockMultipartData(nil, "test") if err != nil { t.Fatal(err) @@ -52,6 +54,8 @@ func TestUploadedFileSize(t *testing.T) { } func TestUploadedFileMimeType(t *testing.T) { + t.Parallel() + data, mp, err := tests.MockMultipartData(nil, "test") if err != nil { t.Fatal(err) diff --git a/forms/validators/model_test.go b/forms/validators/model_test.go index 45b486d5..f2759ebe 100644 --- a/forms/validators/model_test.go +++ b/forms/validators/model_test.go @@ -8,6 +8,8 @@ import ( ) func TestUniqueId(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/validators/record_data_test.go b/forms/validators/record_data_test.go index 3f563af1..9dc58692 100644 --- a/forms/validators/record_data_test.go +++ b/forms/validators/record_data_test.go @@ -45,6 +45,8 @@ func TestRecordDataValidatorEmptyAndUnknown(t *testing.T) { } func TestRecordDataValidatorValidateText(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/forms/validators/string_test.go b/forms/validators/string_test.go index e9a0c6a0..b7ea2ff3 100644 --- a/forms/validators/string_test.go +++ b/forms/validators/string_test.go @@ -7,6 +7,8 @@ import ( ) func TestCompare(t *testing.T) { + t.Parallel() + scenarios := []struct { valA string valB string diff --git a/plugins/jsvm/internal/types/types.go b/plugins/jsvm/internal/types/types.go index f24af90f..fb372428 100644 --- a/plugins/jsvm/internal/types/types.go +++ b/plugins/jsvm/internal/types/types.go @@ -218,7 +218,7 @@ declare function readerToString(reader: any, maxBytes?: number): string; * Example: * * ` + "```" + `js - * slee(250) // sleeps for 250ms + * sleep(250) // sleeps for 250ms * ` + "```" + ` * * @group PocketBase diff --git a/resolvers/record_field_resolve_runner.go b/resolvers/record_field_resolve_runner.go index a5365fd6..94832e08 100644 --- a/resolvers/record_field_resolve_runner.go +++ b/resolvers/record_field_resolve_runner.go @@ -453,6 +453,17 @@ func (r *runner) processActiveProps() (*search.ResolverResult, error) { result.MultiMatchSubQuery = r.multiMatch } + // wrap in json_extract to ensure that top-level primitives + // stored as json work correctly when compared to their SQL equivalent + // (https://github.com/pocketbase/pocketbase/issues/4068) + if field.Type == schema.FieldTypeJson { + result.NoCoalesce = true + result.Identifier = "JSON_EXTRACT(" + result.Identifier + ", '$')" + if r.withMultiMatch { + r.multiMatch.valueIdentifier = "JSON_EXTRACT(" + r.multiMatch.valueIdentifier + ", '$')" + } + } + return result, nil } @@ -480,6 +491,7 @@ func (r *runner) processActiveProps() (*search.ResolverResult, error) { } result := &search.ResolverResult{ + NoCoalesce: true, Identifier: fmt.Sprintf( "JSON_EXTRACT([[%s.%s]], '%s')", r.activeTableAlias, diff --git a/resolvers/record_field_resolver_test.go b/resolvers/record_field_resolver_test.go index f5c92058..ec0c200f 100644 --- a/resolvers/record_field_resolver_test.go +++ b/resolvers/record_field_resolver_test.go @@ -301,7 +301,21 @@ func TestRecordFieldResolverUpdateQuery(t *testing.T) { "demo4", "json_object.a.b = '' && self_rel_many:length != 2 && json_object.a.b > 3 && self_rel_many:length <= 4", false, - "SELECT `demo4`.* FROM `demo4` WHERE ((JSON_EXTRACT([[demo4.json_object]], '$.a.b') = '' OR JSON_EXTRACT([[demo4.json_object]], '$.a.b') IS NULL) AND json_array_length(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE (CASE WHEN [[demo4.self_rel_many]] = '' OR [[demo4.self_rel_many]] IS NULL THEN json_array() ELSE json_array([[demo4.self_rel_many]]) END) END) IS NOT {:TEST} AND JSON_EXTRACT([[demo4.json_object]], '$.a.b') > {:TEST} AND json_array_length(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE (CASE WHEN [[demo4.self_rel_many]] = '' OR [[demo4.self_rel_many]] IS NULL THEN json_array() ELSE json_array([[demo4.self_rel_many]]) END) END) <= {:TEST})", + "SELECT `demo4`.* FROM `demo4` WHERE (JSON_EXTRACT([[demo4.json_object]], '$.a.b') IS {:TEST} AND json_array_length(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE (CASE WHEN [[demo4.self_rel_many]] = '' OR [[demo4.self_rel_many]] IS NULL THEN json_array() ELSE json_array([[demo4.self_rel_many]]) END) END) IS NOT {:TEST} AND JSON_EXTRACT([[demo4.json_object]], '$.a.b') > {:TEST} AND json_array_length(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE (CASE WHEN [[demo4.self_rel_many]] = '' OR [[demo4.self_rel_many]] IS NULL THEN json_array() ELSE json_array([[demo4.self_rel_many]]) END) END) <= {:TEST})", + }, + { + "json field equal normalization checks", + "demo4", + "json_object = '' || json_object != '' || '' = json_object || '' != json_object ||" + + "json_object = null || json_object != null || null = json_object || null != json_object ||" + + "json_object = true || json_object != true || true = json_object || true != json_object ||" + + "json_object = json_object || json_object != json_object ||" + + "json_object = title || title != json_object ||" + + // multimatch expressions + "self_rel_many.json_object = '' || null = self_rel_many.json_object ||" + + "self_rel_many.json_object = self_rel_many.json_object", + false, + "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE json_array([[demo4.self_rel_many]]) END) `demo4_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many` ON [[demo4_self_rel_many.id]] = [[demo4_self_rel_many_je.value]] WHERE (JSON_EXTRACT([[demo4.json_object]], '$') IS {:TEST} OR JSON_EXTRACT([[demo4.json_object]], '$') IS NOT {:TEST} OR {:TEST} IS JSON_EXTRACT([[demo4.json_object]], '$') OR {:TEST} IS NOT JSON_EXTRACT([[demo4.json_object]], '$') OR JSON_EXTRACT([[demo4.json_object]], '$') IS NULL OR JSON_EXTRACT([[demo4.json_object]], '$') IS NOT NULL OR NULL IS JSON_EXTRACT([[demo4.json_object]], '$') OR NULL IS NOT JSON_EXTRACT([[demo4.json_object]], '$') OR JSON_EXTRACT([[demo4.json_object]], '$') IS 1 OR JSON_EXTRACT([[demo4.json_object]], '$') IS NOT 1 OR 1 IS JSON_EXTRACT([[demo4.json_object]], '$') OR 1 IS NOT JSON_EXTRACT([[demo4.json_object]], '$') OR JSON_EXTRACT([[demo4.json_object]], '$') IS JSON_EXTRACT([[demo4.json_object]], '$') OR JSON_EXTRACT([[demo4.json_object]], '$') IS NOT JSON_EXTRACT([[demo4.json_object]], '$') OR JSON_EXTRACT([[demo4.json_object]], '$') IS [[demo4.title]] OR [[demo4.title]] IS NOT JSON_EXTRACT([[demo4.json_object]], '$') OR ((JSON_EXTRACT([[demo4_self_rel_many.json_object]], '$') IS {:TEST}) AND (NOT EXISTS (SELECT 1 FROM (SELECT JSON_EXTRACT([[__mm_demo4_self_rel_many.json_object]], '$') as [[multiMatchValue]] FROM `demo4` `__mm_demo4` LEFT JOIN json_each(CASE WHEN json_valid([[__mm_demo4.self_rel_many]]) THEN [[__mm_demo4.self_rel_many]] ELSE json_array([[__mm_demo4.self_rel_many]]) END) `__mm_demo4_self_rel_many_je` LEFT JOIN `demo4` `__mm_demo4_self_rel_many` ON [[__mm_demo4_self_rel_many.id]] = [[__mm_demo4_self_rel_many_je.value]] WHERE `__mm_demo4`.`id` = `demo4`.`id`) {{__smTEST}} WHERE NOT ([[__smTEST.multiMatchValue]] IS {:TEST})))) OR ((NULL IS JSON_EXTRACT([[demo4_self_rel_many.json_object]], '$')) AND (NOT EXISTS (SELECT 1 FROM (SELECT JSON_EXTRACT([[__mm_demo4_self_rel_many.json_object]], '$') as [[multiMatchValue]] FROM `demo4` `__mm_demo4` LEFT JOIN json_each(CASE WHEN json_valid([[__mm_demo4.self_rel_many]]) THEN [[__mm_demo4.self_rel_many]] ELSE json_array([[__mm_demo4.self_rel_many]]) END) `__mm_demo4_self_rel_many_je` LEFT JOIN `demo4` `__mm_demo4_self_rel_many` ON [[__mm_demo4_self_rel_many.id]] = [[__mm_demo4_self_rel_many_je.value]] WHERE `__mm_demo4`.`id` = `demo4`.`id`) {{__smTEST}} WHERE NOT (NULL IS [[__smTEST.multiMatchValue]])))) OR ((JSON_EXTRACT([[demo4_self_rel_many.json_object]], '$') IS JSON_EXTRACT([[demo4_self_rel_many.json_object]], '$')) AND (NOT EXISTS (SELECT 1 FROM (SELECT JSON_EXTRACT([[__mm_demo4_self_rel_many.json_object]], '$') as [[multiMatchValue]] FROM `demo4` `__mm_demo4` LEFT JOIN json_each(CASE WHEN json_valid([[__mm_demo4.self_rel_many]]) THEN [[__mm_demo4.self_rel_many]] ELSE json_array([[__mm_demo4.self_rel_many]]) END) `__mm_demo4_self_rel_many_je` LEFT JOIN `demo4` `__mm_demo4_self_rel_many` ON [[__mm_demo4_self_rel_many.id]] = [[__mm_demo4_self_rel_many_je.value]] WHERE `__mm_demo4`.`id` = `demo4`.`id`) {{__mlTEST}} LEFT JOIN (SELECT JSON_EXTRACT([[__mm_demo4_self_rel_many.json_object]], '$') as [[multiMatchValue]] FROM `demo4` `__mm_demo4` LEFT JOIN json_each(CASE WHEN json_valid([[__mm_demo4.self_rel_many]]) THEN [[__mm_demo4.self_rel_many]] ELSE json_array([[__mm_demo4.self_rel_many]]) END) `__mm_demo4_self_rel_many_je` LEFT JOIN `demo4` `__mm_demo4_self_rel_many` ON [[__mm_demo4_self_rel_many.id]] = [[__mm_demo4_self_rel_many_je.value]] WHERE `__mm_demo4`.`id` = `demo4`.`id`) {{__mrTEST}} WHERE NOT ([[__mlTEST.multiMatchValue]] IS [[__mrTEST.multiMatchValue]])))))", }, } diff --git a/tests/data/logs.db b/tests/data/logs.db index 757d3aea309908a543c594ea4193600b06421e50..686078760ae224104fb68630f3a252f41b4b65c3 100644 GIT binary patch literal 118784 zcmeHw3y>VgdEVaL0=T_>3@M5}zOgvqfIA$pH}A)ROW^Pz-VXvt5&%gZW_M?IXWx(6 z$1O$MCmdjr7L1UJV$mffR$O*Ur8to*VL4Kwaug@A6(x@4SQW8cvK|p-OC^<~ilvxk z=g~d0+dH#2v%A3IaCbl-iJtCndV6~Q`Mdk?zyJRG!gHroO$o;HrL3$48P@}@!9mx7 zV9@1q`N6*@!N1nugCOE=CBSvS6nBdHU7`37{lwq6hP~f)5zi1`_Fp3&^3%R|eR1!1 z1B}zpFpepJDS#<}DS#<}DR3`P!22tMe}8oA)`8cHnjFa}^ChKNQOa5wMcjwZADNvy z5}cboc9l1CcJa_*1>Dlv_f+vq$3Z6MT7d-R)sZ)E5 ztd&xxl~>Pt_{g)f&!3tLj*WHZ%qm(kZxn3JnNYN4nai52RmytF$Ir|iIeO%LuvIcm zlAT4%6)oAUMMu%_#XAchD=FE$rW`MfHQzC4{SieAArkyYb^h>5Nr@{Zr34>k{mHVN zm9kQrO(;3-O0S%NEON8%CoY^lgI;s&)z_Al8Z9ZZrsy=ZJb$9BmExM3RVH?gU)npK z-8&u&jvt#DKRq)Zzr1U5vXfqwLTqK_z;C}Ncm=-Y@j~Y-+R$&3@D2&1`?n4(o>p@) zrQTw>`Q{tVC-arkyc$C{%AO{V9zS#V$i<*z{$M_5WnguiEXbwEeb*}X06+*;J=)sg6*1r!+UzZ@Usrg)az8xKG z@INjX^nW3+~DTX~RmB-AwV4M2P~&lZM^^XkV3*oKYLPmLQbKyEc!!{Tu)F*WcScG;|W=76gGO zX+fH=6be9(8I{Y*yrH9pc{ly<-0oj~`QX&x&}opDCqG+#pa>ba~`MwqxnoF zn?spjntXC#hys~eQW8ayB20P0-lPSVFhF+cOpe=51=G zJT{Z7WHNiklu{{Q0=MUqO0a2{s9)8RQVv#uwk8&oV_7v9gvI1bP328c%cqqb2!jzN zSXQ*q7$~W(MCX9X+t>`S)uTj_qxXy%>KjlzcnOfDX|4y-Nlh!vOiyR>Q8|;$m$ey@ zl*sA%X+2ZZ7;t8+ZMe2)%rHP4n_)?6&zQDQ0M7yC>4ucxN5JY4q#elga)l&m-b5<{ zFcGW?K&p+?2O-^HnJtq+Q1a<~L(OF5X)Z(tCoWRdzThb}SE&cyk?qM_%C=tj>{#r`IF`| zfgPmz)nB7Yn%zrMdr2lp3Nth_!-*l0V=p`5S6_K#cxqt!`orO{mgkc~C7Y^?bt*;0 z+Pnn5nWp9v<+WlDo@UpEJ6bQk-oGzP*?(VvgYIg_)bQfewOa}n#HflKRb)$oM3$22T*fkD zn7VsvCorAUlu{U6l}xN0R%2bhA`@bHN?4ut*7GCw|8~}1nlh5j_iQDaFT1Wef)3I2 zvc?NI!oZj0Cm}~&(AxthGDkwh0voymCYtAyw*D*fky(0AK{RhR` ze{+ambwA!3@DrtSDw&kBb*9QjH5PsH)_B^r-BSW7NNe;FTNPaAO^+h&yLX6R-TfH& z3>U8X!91=iHd3*ino7ir6u)rp?1kn$PH#NrX*i+UTT?+$kjv#7m>HrE)0(TbB{4yu zLX1e#7O@!?321dEW>r1MamPyE?T-bd-zUz1;PI0ncjC^cyJF0e3Kw}U>pSAts?=>C3zQI{;v_A_x{BHUf`elelze%|0VyT z@A<&L^}Z7*_-6f|^;7=$126kj-zMLifxjdkAU+lN)4<;amVEz(*bz7eGz6OW2JsEQ z$NNp+PrYC9z2-mS{S0x%x7YurfS>r0|H;5M;-lUL-=n_o__Mw*5TgGR#3|oTM`V9C z@Jisf{h#$c?|o$PbCv^HBJ>v*;n*@R3Zy@_QuI# zjuR`=%MgP)U)%kpwPQNN^@ z2UMOyS!0AuW1$pJU4&SS&nCEZsz}LkO{^DQgjhYvm+L|{B}cQ8#wag9jIJ_CRiJn# zlg%V+`R5^)D=0uoE9O$UN+q6)&Ot1xCeoU!r0cONUo56CK#VJ7vSK4%NhPXUR+i60 zES^@BBqK%DTs0c4Ri1;Gq!rb;M#U11SRqPE=OC7DRB~xajMllF%*CX$5G#t2IG3yB z3al)Zvbi%5%ZRmNBcG^8)jG{b(x)M&MN8FWya?1iv|MNFry!P$3AuD3$0nn>ax@-4 z2{E2+Xp&SAsdxocJaPhJ3?s>fN|dFlWK}Ijk3*~&sR+qJr9gsptX!dVOfRpJVr#%3 z0$*LoS2*P;#Hu;9L}_x2;#gp-Bu92iN`g?$HpNLm0X)V3L#YJ9!52{ot2^ycO z<;pZyRrL3eN}5oQ#Ipr89%(3){vOo^OKUMX8Bv8Ao2%*XQOqQ>5sBm?xk52Qm-Y7$ zDvX>@RMYiJBOQxXo`vtm@zr7)Ff+@hq*N_&1Y%N_Ei6Z(N4@au8y4B0`g?6q~8XH9lLKg;<@Tl&r*RY_ZJb7SabG z7FW1Lv78|VF;O5hiTx0(2|_f^QrUb&VYo`^8HlB5HbJIS3t5G1@bO3(V#z|Bl?6sF zREx!8PJJ3;nwrk$;vD#T`GU;G_d!f7C8>BhRchpTB}=AeAeJksDMiZEY8<0R)ddM+ zOj;1qBrB4oY?i60BE)K?5-pS))p#u~Hn^eyF}4WS73*a|1RRt|7kP*^v{YVRNXhv) zXg73{gP54EXCpa{1)YIP2^kh*#d>xjk&k3+88Thr8w|uqEz4&FGFFp|LL*hDAx6`c z2AyPUBwveYnJT51R~IvUAxCjygCV6F39*i)*GD1Nv4r*r=y4zFSapHf;uR@hi75$f zVS%qOv1y1&iE2Y)k`=X(A&Vjzf|yWD=h#9?NUBV(!I$?!OessTT7s@sgfb^((|aJs zDA8O|tf@*emX^xm6vSw$rZEg1p{p@TC{%VsjLRhyk(H4$sh4NfaXz7ARwdZu5bMy$ zJO=ImrNFlby085cpC>*?{1(_B@G0U~iMNQ45w8+eqDW+j1Q8)#AubXZh%>}-;xMtF zm?1cVB&LX+#5UpyVwCs*;U|WPp}_wQydU`Mz+VM^7;B2ytw}GW#jUa zak*?GcIS1%NgTx+PIv8mw}I;G%hC$ z@VId~W?YUMmuHR35qKH+_+cY;$haIdF0;nH1IA^)0X}0~!p7xkTnhhcCC1_xm<3xfkN*bjqe zU=W7E(=gZvgBch|Fc4uNz<`GV2Ll!c3=C)(P@9GZ28JKi!$%-Mx?ngBgAfe%!T`7u z7#^5{!EP8#!e9ahyI`;r2IDZ;0fX%@7=yt!7zAOk6$Vei;7J%f0fWb3@Yo<=&!ORq zkVzl)Cr7?Dd~x#=Lmzd0H1ID1$9%s}4Ez7Y|H$yG#LxSG#q-Ya?-Bnl@M+Kc#5e9F zPa9=j8*;zl89;VAX7jghTL?@Bq5YWum6c2!xNXhMXXV^NC{@nq=JSyh*sBndLy=%O zIHp0@ygQq=a4=&&r_AT_^S}{9RE{ZomP5K1Sg=zdhVGg3!sm4Uz5}xspx zu?Hn!mX^`$?mb3bL(3}`+C8Jxqe`iuO#sW5N#~5H0zH1wtW}p>9dFiu&VH(3ri??$ zh(v&1y|TdKI`V`X?#0@Qcn}#SqnhZCabz@Py1e(=2i$M$TG6vt#Q%Wz9jlC+gKY!a zNX^0J+VTe$Mi10U^y*>3sQ$rg1MW9AtzDni9Mj<* zKiq|F_%7_WM)XsF4GG-w;f@c;=MFtuYc_DFI=&#%szxo3oU+$H(H2DK|&-#z~2A=1pZgx2Z3(|z8?5$;LCyE4g7ZCHv(@5ZU(LeUJVoj31HEGA#gmf zKfnd10^7hkzCSSJf8YOC{`dTU=Kq@i5By&u9wfF9KlA;8?+d=q`9AHt>09)beTwfz z-*MkQ-(KHV--Es(?@zsd;eFTpRqvO)|J?f-@5jB@yfv@teaX-k;1E*)Qvg!{Qvg!{ zQvg!{Qvg$7-BG|lv~>V^Z;~ykE0)x}CG{ao>J>}sWlQQMOX{*Eb;**tXi2?jNxfi6 zJ#R_PSyC4)sq>c9bC%ROOX{p8b;go9ZAqQ7q)u8=CoHMsmeesz>Zm34tR;2Ck~(Zj z9kQejT2ix?)B#Isza{mIB^9=$p0=d+SyD5Wlw?VXmXy#+d4@&@^iApKQ0y#BM^NlAiXB3+gD5tOVh2!cKZ-qrVqp|}8pZaZ*bItE zC?=wqfMPs~aVW;37=vOoicu&=!kF%H;87HVyBs_^by2oy6bqr)UKHDdVpAx#8^tD3 zYy!o0q1a9o8%MDnD7GEN#!zeFcf4zwCfta=allVI;HMn$lMeU^2mH7Le#`+s+QgB!U(w*h*86tit@rK3TkqS6x8AoCZ@q6P z-g@6oy!F1Fc9f6Nc~WXS!GUH;E{PlHPUBnj{j!ViLfzUDueZryvJdCv{@=BL4G z|JlH7fC0PtM*|+Pm;c9LAOF|DZvA)s|HS{c|Cjx*`SUGAc$ciuJ_-;QP1jqL}4EJV#0FI&d1_eb=1TGx%*djYoEe`UWSxX^hk4IP>f{ za~MWw8g8Ydz}4bje)%@Far)455E+P??l$?ViRh-0?TvZ%XlF5IdrI&N^bTM%gEprYn8yPY}&CQ8x_$AxIddg_oFU%EuWLkAMqpAUyS{H?8IsB+j}ppc3qZ%``y3m8g{+m8vO6BHv$)Y z|9Rva!`kME`_H{hu*oobQOw|C?U_p9-Dx*Krgl z!twckW}&zH>4x2eUdxPBjjdCe19Z;%IbHbtzpj0B&$Fg(muGH6m18g#KL1ZKIgHC!!oJ)6 zpv&_QhetQ>01^C$DS#<(|59M-fk~)mp1Sr6;c&;nDtAQB-11!6^|*E}B#08va%+B& z^7O4Nqgod!HpYAnEHMC6IVr^P)^nB3_|?J$WC_nTV1dzbu8ti`+>x`i`4A;CoW!m< z2i$u{X`@d|^A@qdj9+!{Y8|EBacUC!;w{xwmlYu@B#;!xt-;O>3n zCW}UFxpfjS@L3KbQySAM%lDW&zYSH==VtKkIEmg-l6whqjKERw&y> zGFj5+`M}_ZXRNZF8Q1OqU4qO14>o@jT>AaHv3(j2OtqVr!r_i%A6I)|vVID~2&!$U zf?fC9Ir~TL!0||cWo@$GoTm2J{U_b)fWB%k$I|wGEW3*9fv4AeCUHx1$=g`R zK_u+3inFy{a%?B2;j3+4i$1dHE*{+Q;C7Ls_61L=xk^1)7x{Ufoea(v3K``^C2~^L zra5Ny7KFg`3E1NTBevy=3xwa`LtvD8!*eqm4tE?xe0N7F#{)ndn;|+)#-V;)$|^y=lA*$^2mgJYNBiUCR!i6=?w zJ{zw(nuxxc#58i@jU=FDnog2JZMnxZ2>uF5UXIfnIGtT40p3dPeygKDq<4L+&C9VO zD4Ws5I`XY&y&uDdc$QhNer@7QiM>$cUb_x7?m{u0V+$oAsWQ0+UtY<;<*<>Yqv^HJ zK|==aUHU7E4UxRaOB<}evaZ!w8L5LFj$IKV&wA%HJ4HX_G=Pt|{#2^`C{H5xDE{biTm5GZ*O|Z9RnWtH;ueC%xwD8sHWy~WjLW( zyCc&M3>|Qd_dGJN=3XqW=m?^|+YCiBEm=v89ba%SR_@Mo$H0Tf+D|^Vc3Mw26Jsr9$)DCV#2SlQlKkIT0?7-*tfuk{z1h9N^@v3`qVb$3JoZs2nnr~_iXVgML~y)72n1qBf!i{bYn_bOS`k9Rtz)ibf_A?-Q4@2R zaUvZ ztM|zE;uPwl*}MKka_t7fXV&h~`_}H!Gi&!~aqS+>uic~fE_&P_d3ZINu}L4$^_*jZLmbq2nW9#ecKwdxM*PQa)I=(-rm*s<6hakxQKA({u?)z-*agUO4*z2|YG_0361vh7wNz9ermx|R8GxG2fl z7^76m@wA#Puy)^kx_i4q1I-=oR+tbe(G0x~9P@O4f9p_mKlLl5WIuF4eCdIpA7E&<2s&vgvNqLb-`_SVY^SoyF)s zYL|nm46K?#0VoNxS>^@!FfTxnKK6tn3hHL!9eXPQg^dn0gt8f?;vMRaILs)~Tv4p4N-~y~%Hm2!G$brp31@1BU571XW7wr56GE&& zv((zpR)dWmME?ctN6L)^Qy+^DPQ=V!g^V{I-S(o6dV zQML^ygK84*w>PSc-v#hfxqfK;=r*IkAQc}Ngzee01vn%*Es^V@ulZkFm8c^mCu5MmDBZX zB&V@rv8Yml?P6<>IW1avbC~CM`m06L)GmTI#Q?>mC@>pLGudrI-#)Y3mqO6N;hEqxdzp?2)@~!((YMF|;IeIb1{NG)5`G0lux4;Ge zVG3XhU<#}<1(xC>oO9K#17k-fEeL6n70FUI%T&~r$i@zHE=PqRnr3vFde ziYs9>tdzED$Q%|LyGY4Bet`rx+ci!k-?hc>F6DK|-AKaj^^@*(KoX%YINDYdWif$h9N)3S2Z>~DA3Yy`{;o3>f4_J=sxaedRaMcqnnQ>*Iz zv)=VVP3NARmNmyGmb2^zLE{#{m*PAUkl3P@%-73;SXGOO^oqu<)ew-_5X+Ggvkta| z+{zl-{UjifeCPbXx%vTc!~frVF2nO5@B;YWP|COD3wS^29UJ-ckzX5mVdMjzzw>nrhu6OOYwb3y{)O~Y%b1KQf$5;v+cH1s?^BwN|sEmH%0>%3ycUh z*scRNk9Z+v>@~A*z7|K39Bs2=M}h4n^yM3@WLTQ0;c%{`rW7ett8t7PRToymY1q;P zTbd}DIMAZ&2a-D2tRPMLty!8#AzA!i-g8XUCPAvx?RMImgQ~RHU` z|Ht!xRbMy98%>nb@xs^)IMy5NQU(7}_G;^H3na$+f6e7N2G;*;<~cu(V+vpjU<#}X z1(uXqs8Fmx2LN;;LX)W!o2kb&KD+7)MbjblXoq{3-MBzX;z^O;XsaZBD-^-<|F&_) z;Kcx z{{MTf>7KIw4f-$~<~H2~R&G+3Ei6#A-=)wGc{O_0g#G))G6gFOf(qb>0GBRL+?8kAfY_*nDl%-L_0)!$?>*LVWKilGu>V)UbR1toIYFt;?}Qlx^e5Mqq(Nw3+|I1rmTm z|9=k+e$X}e!7V@M{x$zqf5`XlJ?H=jjXl-v$0{A$p&s^#P|`s? zn`5pHX{47BVl$HU`bqaXpf2iT6g5C`-1lv%zF#19;Q7- z1E0Q~!1Fb5T$F7qSz*67y=&;gz`3&*=7Q65L7kRkSv6OlmMdCvZ%qY3K`xhT`BLn$ zhli%yy<=I?G&Pqf@3KX=+MCzLRSHr0Vs^mdlh zYGE#~$r*r`^Cc}jm6Nl|#2qMO><*Oi#2qN((TaO9YfF#ms>o4Awj@YoDVfe?rb|i` ze3)f)>c@to<&(Fi0@=PMPu;dAPknOEy*RZZ3L{Nyi+pNq$7&QBT#Z7XT6)#}`hxxY zuiExjL(pjn+0(rEK*k&%Wb%t#!3P$xvt!CrbhCt6MX#?%QYL=WA3 zB^;(om6D+Gsamc~b5&)nb&UAf#Fm#`v-k=H1vJE3)NMp(Cqb&IX3!3LI`xsb$CHYy(jUwZjC6o-n}p95QAOPWxR#Ipr8 z9%(4lN=B=`#UVH(^`lq>4zWpatjK*J4Wa%Ak!3v#LkwUe#!jPX;7hS%ki9C`fiP5U zu(TGFlMz*@vANn^VJ~A<6;ZN_xD9rZFtkW*Fg4O`YOVo~Aq5d4&bnqZCd83;y_kU; z>;EB_=j`V1yF&I8zczYrBnds;Oi9rRvU%iYpfx0TTSs+BEMUPpDY&180&(zvTmyx;2Rb8FPH9P49k zUA?nyEG;)p&TzDT2%GiLwl=;LKMjQ`-41|TP-7WMtV=mIUyQJKN0{p04uA)407**1 z=hv)5H-JrsVmqbwHhv>?3JOS@Zi4eBvpnC3)Z)o_HP=W|nUyeFKPKd;jq8nfxh;yW zK6lj2AX8qOE)m^pb~JV-y>=Mt#M(DoC7{ZJ{uG<}uDY3Tm)RQwrf*=a1bYD_4J&~5 zl8R$nY3|&IqJT|nG2Lx)dlTu5bbe9rQHobG*-627(=lMTeTjOo!|4kgu{|7gJ z-Q|A^1o#hA08;={08;={U?WrD#>_c53-jJAgSC^KTB0;LMsjtTrq=j0w$_GAyj=}% zR|EU{f!wInmFS$BRmNsmHbjvu$K2Q6*qYWP&ti-0F4MPur$BHX*Lwzpb=7zCBoU}8 z1PxsxJM2o@_)_{T)KxEBPlUsXoEVK3N|^)~NzqkiB`U-|?Mm7s6k6TxqCBF>5KDr! awR_yS#GyMv6k50Q|0Y-QojWAk`2PpKPT61p literal 69632 zcmeHw4Uikxec$15B!L5VmlQ=_99JfE(vdtJiQDgwlOXCyo=A$HM;=8{A3iP?3t)lW z#bQ73C3)QAhg>zOGaAL6Y7$SZNmGy0q^_E}Q@2e!8jl-09XF#+J&7jmq_X3*N}_4h z)^#J9BO^)h-3Gqn;5*hmhhgs%>z%93`7h>3`7jv^9-cEIQq*IyLQE1soP>+m6uJq?#PyH`6pwC&MwR^ zEo7GF51v@aT=MZtnZ4sl@VTTEE@ir(rG;mfGH1>nJ2`*$V&?e5#muSGOPN#WPn_82 zMRiQI7uSt?c;U(U^Cy-vlaqrnHQ6rLyo7@>OR_x_*|J63vD}o8omyHrvT!!jOPR#+ z!K6jUE_d%@AZeKK!Ney`S*zLdF=Miu$4u~#2$IX<;2$yghnGybD4VhgFBSZgp_q;( zoAV`Ew=Z2UCZI*^-uqMMPM`9#Ir-w}hEkPGS+r%B!@%|TTDDoV6;0l|XX@hqDQ*8$ zAv1M!ZtCRRRPot8)6;`|IY#03(t%~aFLMdz@|ZE0#Wnbw#!_)^;=r!h%1K2p$gQ5r zEq8OYT&_9hvQqGWu##OJJ$CBw!ZVrB_?em>RN%Fl!0|a8-vjQr$KW)$qtV}(*%hk? z??*8Lcad28F1%Pn*S@q8OKh1CCSofGyj0a%$r{cgLm=`K*rqb2Vw;-4i$457=p9&hnDtUg7Gfx%j|hL3zG!ubz$@7 ziP?!*v+s(UY*}JS_OG`kNThqczBqxaUF!aDX?k(f=82h!SgkK%Rc^?tpX}x}lJ#Q* z6LsNB(^pdQEfW(Hv1^WJ9NjyChe4wVv0;PgK6d@)uxFL_?lJeg^paX@%I4m(+}dl3 zdZDJ})mnZpHw`|6kDzxuz>o}@w;|)!W8->;#4Q$(VCKfn$el4Fx0VVtA=A@inO$52nZ1-|SS4&eryRz_l5CLVeywsOQPI87;;qOH_)YkBo_w5t!jnr-zL zP?SYQl`~JzpFMPR{_I|oVW!uv*D|7EsESWYVjyB5VjyB5VjyB5VjyB5VjyB5VjyB5VjyDRCK%W^ z7C*h2UjK)ubxGc_-1c6h_Vxh1MM?IIp5TI039ZmNmKR5kA zEKY#PG%oNwj^oRUuGs$1Cuw(bAA4~G`*ZBu*c;#^`a}#w3`7h>3`7h>3`7h>3`7h> z3`7h>3`7h>4BSZursAh#*Bu`idnkS!#9DV;ApUUtB#5*Ac);k6IFTG42iOF16vsY* z`Pzp46#L)U2V*-&<0CJ{|L5pWWB+C3Z;xdAvwWq3U^7>-?V}UBaw`|M<#M}<4r#Y| zjbqeOo@(o}qM^)!F$h(b++`56bb$ctO&G~(OGQxr*uF_` zso&%rSl732(rz2zIv_oF$s+h8u)Yw;fg6NqZ+RW~?PRT^sH!;2Wbw@2X9(ia%n3zz zTA3ElF0=G>W*#i(kT1yj`V4N)%^+Z82m+pOW2Lw}Jrc!sFcCMV!#xvHyyBFz!I4cR;c3KyJ#wJo-6=0GT` z1uLf%)+t3c%hO<(jJi9ec;nf7-obH__4DY7-Hi5xZf-ZMN|4+f&14yp8&HW={HnMa zs)Y9PaxPbt+5&E{C8deCT6F1lRD#BLTQ$?p?eDI5+-+4AW2t6~YM-{qEdwl5^R;Fj zodFLQLs85E6^nP)*Y@_QK!LF@i0KZ~wf;xs=lX5w# zna@|5c2%plwN8UsOUK+AqtCnm%N$T2m(D5jpe}0iIyyrTSpsJng1hU6rkf$JIC};K zRZ-u%a_SJk-h2Hc=FDxdcumFBFKboA0t?c^3 z{#>roA`GqFWItTjrK*X0K2S;2jV}wLsev8X!v271ceF z0h6+6)=corQd!P)o5gOZn6i~=fcecr#w~~pRGymIo$k!owW_RxV`z}#7u1dWg?fe>Wa}83nW!4 zizSs^L&tg+aL5we6{VpVP`DpK=kK~o)1zTS+ZHm*@qP6%=+38if&+qqLn;C1|0hsp z1bY+xZR{lWW%Tmb(mk+;*IO8w{YFCzqsq&`UP!2W35Ny*8-Mw#^d__xR3 zPrir!DtZk0QToT@BBFuRe;fH)`h4me33gp6+C-t$DHswioPk)iB1!4pLX+<5*eh*6Xv8jeI04ZNY$rDG7Q=N+zWI0kOgvTm41-SnIa-30p~ zu#I-jVdNta6Y9Do(3)DK+Er4;pM+R}t0^L0ZOKjCtZK#r#7Mc6=XJ}j6lk8U5r-jW zsKs)rzzJ%p)=+EuA&9k{N|{#-5inEb%I$*?E8;?4>vTAhEm7r;F%PjapQkLTTrCuA zM`WcZAeJ{9j$R-{TCy5Vy>$R$az|vVyslU^8oWa8JPxsrg7bBy#9Mq>t~AXY#41I; zQ4{rMm3LaDQvNZB85J(ix0+R}Xz>NZd=z5&8qc@LmTIYT(cl_$5Mu4JbiqlBhGTY!;gcu`{ zbyKnoqhdK~qfJ1pL@-v9t5$8R0=mc+4zaqWv@7u6qQkSL#$MgdAh)}ly2l(5;X-ei)*!ttX(j9vBuXs4?_$*&~iO*nVMy` zY=NJESiRh_D{{F=Qn(LfNSJ;Kul!WD$X}WRjX2^YWaSMmDx6# zuUO5NUT);^=5~nLojhKk%Pk_Gx5};JeGtPdctLe)Hl9~H9X!7cVtS3V3$#IM9A)5= zy%l0SQOh@2T5L9rqG8uCh#8RHGL2gW(*PWy5X-kKx+W50!xYU<4M!l>R9Kk?_ zJhmN6W1GMcUqJsRYNA!N0DAjR zqx0w-N}>DEDfBaF5*_hAd_7XaQZbg3;{Sw+nPoqbX z-$%ZM{43-e$UoY+m3?$)5d#qe5d#qe5d#qe5d#qe5d#qe5d(LUfz9#JSnM^?3od!V zvKM^T3toW1$akLig6F*8SueQg1(Ud%;s4c+3lqdchGdc+v|NU=VxluqPezf`eW#@BQ|K7aZ`w$Gsru1&?{b zqh2uQ1%emwUch+)>jjJ#&|W}!0qF&V7vNqn>jhaa*zX1VykN!)9`S-{FWBn^d%R$` z7fgA(Dz2@eT)*a8om;b9XzjKM>EQ#=++jE==)NpJo?(H_BG!+tO>B)^hq zC;mNp7wJCA0uDwyg2CG;BlB3egFpih4e zJ%%0tJ$3~7@5qmkKSq8J`Ca69kQGEjB;+D;8rg$9fNV#S=^tYbc*Ec?v44U6W3blX z5LivH4gC{$#lZ~vAR0$LMBYZehWr}xCFB>7CbED$iV*4lm;Q_NyXikne=q&5^f%LA zzmrc>lvcz*#6ZMA#6ZMA#K6bQz|z>tOl+-1%d=IZ!Qp}hW<=}xdX>M4_sb@nu@&vM z61|l-ly*Khwj!)v74GP4%`O{xcTXnE+v0qdt`jX)QnjL5t2z`lOM$JJh;s`HyU3pB z$gH844%lT!%jXCjZ-MV_cdc}8$I8UmWnwk)zGccom*{`BvhPKio5_+XtG&1N9+@H! zd2bwL0h)beikg>Ol586GUhtC2^!?%GH<h1n5UW1oE*Gkq*zo zt-k}C3b#==m}pNOZ{{t^@jFtc$sO_8RmJG7eouT9G;O&nG;O{kG;Lawrm;QobFmwE zyDENaY-LyMj=k42`apa>Ihocgb+cT)c@^}DIBr`|}tmb#W|rj*okA9E`ux?IFS#6ZMA#6ZMA#6ZMA z#6ZNrjWU45cg6fYrNn@ADIhHeq|XMV7Xs4r0qMDb^lU)77?7R`NEZUq(*fyxKw1h& z=K|8%fV3Ep&IF{>0qImgIvJ2o1f=5u>8XHpEFc{XNJj$FlL2WVARP`!hXT^UfHWVF zo(M<>0@C9FDHo6)3rLR!q`8131SCEnaRG@9NK8PY0}>UG$bduyBs?I^2Bd62+8>bi z1*DmP^hiLO4oG_g(w=~{J0ML3q=y62Ljh?rAUzn6G688AEiO2#K*?k*M+{@G4= z=5CO&!^iIT&$jz#_xWer{Ijk88Rnm%{u$z*rTw#%e>U!)CH=F6f40Rx+w7lh^3TTL znS0N1|7 zr<2?hdgy zy&tDD1O=Rvga2X(eklZB4#7Vgg1-=gKOcfW7lJ<Se<}n&7J?rQ!H4hv2yo{IL-H(GYwt1Q$YZJ_P4Na5e;ILU1|+r$TTt1SdjpJOrN&!LuRw z{t$d$2tE^nKN5mZhv0id@I4{;?ht$`1b^7a{hh#Fdp;3@?+n3rgy8pw;M+s+`$F(- zA^6r191FqG5F81?(;;{&1RoEKfrx>Kfrx>Kfrx>K0gr*+ zJR+XOvqUuiPkKJAh-m)5$3!&$-(zA!&i}j5?E`_Q_-_QHPX{E}Jx2WXK7pTpJ|KN6 zApKlGng~cc1JaIwbbmnF9+2(}NZSI^)_{b;j(uX}r4cll`uoYBB#g}+&;Q@YVZw5^~kgUvNNh6_5P?&0W{?XaB3X>%X}d^duDd{{y}!BmaM%3)~zL zRF261pEBEfHPLr2r<4{$5AHw&Bl4$AMz!C^jny{DAM`Rs8DxJD`pU z*V?(v>M1;+gDk_-AflS@y_y#1y&Y%2*CKbd7XW(~FQ z@M}}|1GTtJeBq&7Zot8euNM7%_8Z)$>Sj#Ojc=djtJHAc1~|~>d6K_NzRho(p*w4w z0Cir1MMYK%R_;36k8N;0r3HLVJ%#wyt=pmbnz{D*TyDVW(e3Ez8r!L@qhx%RCOPoA z`!(SDk6}>Bx`QR%t=9tjq7?3FmAKDWi2(^66Y|z~$NPs6?+eyOFI7*D)V#mLP$PIQH(FkDJkz zKm*!SBde+yOEp_mdjqin+tS_JF<@vmu9@lT&QJ@<$FFYN>YACCW4YXb%e>psshcx1 z1gLrlh9voWOLy+ks>dyRilYZxBR=l+|NnFZO{Kn?{N*iAY}y~^NB;CyyZ;;W@2)Ol zzAYVa3wb+we}`--on-`p5bm+(;b*~?uJ_zrF;S>f$TcyS8*nSSmQLNw&bjN_9RRcEEbvWBMD^!!#hzs-E=zr6($1qti95bjAK7MsE?bj^>Zi8<} zCGJq&LS#vj#5Y1WfBi=xXh%Nbb&IDv9JRJi0sQLLly7DR+)l5lQ|qrjxu4R{^D9hK;rnVZ>4ex0g`$g((? z4A}s~0ym>G0dv!1!c(hH((r(%OT$A>K7PeaLLGCPv;$u3*V3^&)TAZoERQqn-M2HJ z$R@2@xE#r@QP&Vzh{OJWD#nhWJJN5Z{@Hjw(cHppdUx!%;*HUH07suS8MvItp))5Z zMkjU&D;Kuqa=SVT&exR^Z}DZh(llp9Lz(R#(r#LsPSSa&#WiaLL7kajI&^g8JMQG4 z|H??&wvD;jS+ypK-a-}NBM6^8S?egOD$X)lJhS&1f_OA@LeZU8rp2?%EIpmM*=6Gd zcpDA;%bXL7qN#M-&o6#1xb+i3%rR`16uNrjZwa-E`*(erd<>ged1(787nLI4sEK;B z$~&!6DerRO%~TJtFe|D=Sx_nkxmK~QO51gc^psVpb7u<&OY_4{k$@Q*`HnjY?_Yjn zk%kjsUadRz*H2m(_wV{L^(Y{1s*g0I!sYo^vuYJBzF>F?v^Hrxt!tK4Z}YTjDTEF5 zrBqvPNX4g~I>Ic?m$O!5z?IZJ!5YyWq8wxm;H#{Wa|5cDukn0~Y^jzi7Y(klj;al^ z2K{ecQ1ee-ICn(5Al##>hOhB_LRAC!Drt)XAWiI3HAc{?3agd~L$^e|a6MZU=4y+= zcUv{n&h=VM{vbwo)&$JxFV}P#xDkVAny9y3Mcl|X4{%3OYjX3E^d8mirBdp57%{#zYJWjZWpm$*{Z!Ecq*4bC7w#|U8cN_Pfo^-=b5pTR3-4x71( z^)V<&nrKUk)1=A`nj?p_k}eQ=wZ=$JTPli@c&iL{wQ^anElZ*$iG`km0#)q;mrc3u zD5hNKsxSOC7#}Kh-yig;c^^8MjQdBc=~%K_1W|g=i7(y*4+|(#8q{^&fw4eQd$?cJ zmlxRq1Jr5i#fs5x7&2$cq&8I4g3b$u$~3By%~I4YKP;=n-XjJGa0=FFQ=HdW4{++? ztDGj7VEdEj=@QM76_qqdyV1NJr5nEe=~BV5-2ssSDj>c}#UeeRUM;O<6^w>PGeSwm zS!Qb%KnWC}+J=8qK=eoGh>6J1yV4byQNp)Imqf{a~WxYMbX=I&=jnory ziZ;x1Ay z<$2w*D+QWoYs5O{{Q3ihfT!4N8)s;6QZ~(+d04hZMYSg9CgF4vCFzR$k^?1!MWk+o zld@%j6(AtOF})$GN+AQQvyA&LPNrsN9Nlt?MMY9%-OhmJBAQ}ZN=>&wjEpEr;IA`w zSjLFe6o>%AI@61j1a?-Bn}#t&A@2=laS6PYjyCGM}d`sa!1-Y)53*Ytcp~@YYQr zc-4X(>h=Py^zgp&IWSm0d9&f@1wy1HtI^b3Q5E%3R8jDi0CtTgL>KqV=kns?167pV z5!ouQD^`te%BB-lQJ&`>Z<>}8hHR2MtqXCVQ`rAUMvji4XVd>ArH%8+gNYMcmNq{> z_CMnC=yNd%{B%Q~%Rl#Yx2nr|Gvci>YqdD7B1)QIQ$ro7J5kl~xPZ?t-<=t9N|*!c z$@7CFl&iQ;@rrZ4TiJD~AsbX#;Ru#eHMQKVxmtTO?fngq@7^M5zq;$@8{mGvFK<~w zXO8Uv3j@0O)(x5G30|-0j#JdV%Fdk*v}Q%eF7I#l@7HtY^ttO#_HO_t=-FlO;ktpRBlhZbdOII0H#gniS#rBAbw{>r z(0y^|+N_M%1#(p)12v*%Djm@V9iDEF2=sdLat1sqLmeHcer%Q-8r)vR{ld6hI*WPT z?_OarhN|(MqEjg~Y)upgpT~%4k^(N_x?bVBj1G-0ui`$_E6yS?e0{5=id9)IQ-Y-E z4M}Qx)pgJCZS*NAuw@R#fZaX@+bOGfU%t--^DWqQrD%grU#DP5xDZgVdm-OcmhHU) z;p+j+w}-Fh+d3WW)m1x=UKMz$#poha2MdZnWX$F;V);qOQOHx`SoA;_TZ*pdEiwC++v{Xse zifXOuP?Wpuk2trWu#4<@j=bmAVhM2CUSJ1Rh467-RW2Vq0Z2R4H}q>uW}{rJlPp7u zE!yi}_OBZnr0&+I88)`&d1Ue2P>;nW5#m0HR~|S%*h?=LIK67)P{z z(J0C-kD|~_R$$f`Md{+JEhwlSw8NU7VQ7WkoQNx|L7Aj5HS!j5HS!j5HS!j5HS!j5HS!j5HavcVc_c434db| zFcT-&^OmVuX3G|MFg%nQoQ0ZQe|Pd*+*pLoGGMtMdH46Qx=!{!5gUtuU9-XZKVoRF H86W@uE7^v@ diff --git a/tools/search/filter.go b/tools/search/filter.go index 939ff24a..a95b2aa4 100644 --- a/tools/search/filter.go +++ b/tools/search/filter.go @@ -184,14 +184,15 @@ func buildResolversExpr( if !isAnyMatchOp(op) { if left.MultiMatchSubQuery != nil && right.MultiMatchSubQuery != nil { mm := &manyVsManyExpr{ - leftSubQuery: left.MultiMatchSubQuery, - rightSubQuery: right.MultiMatchSubQuery, - op: op, + left: left, + right: right, + op: op, } expr = dbx.Enclose(dbx.And(expr, mm)) } else if left.MultiMatchSubQuery != nil { mm := &manyVsOneExpr{ + noCoalesce: left.NoCoalesce, subQuery: left.MultiMatchSubQuery, op: op, otherOperand: right, @@ -200,6 +201,7 @@ func buildResolversExpr( expr = dbx.Enclose(dbx.And(expr, mm)) } else if right.MultiMatchSubQuery != nil { mm := &manyVsOneExpr{ + noCoalesce: right.NoCoalesce, subQuery: right.MultiMatchSubQuery, op: op, otherOperand: left, @@ -290,17 +292,29 @@ func resolveEqualExpr(equal bool, left, right *ResolverResult) dbx.Expression { isRightEmpty := isEmptyIdentifier(right) || (len(right.Params) == 1 && hasEmptyParamValue(right)) equalOp := "=" + nullEqualOp := "IS" concatOp := "OR" nullExpr := "IS NULL" if !equal { - // use `IS NOT` instead of `!=` because direct non-equal comparisons + // always use `IS NOT` instead of `!=` because direct non-equal comparisons // to nullable column values that are actually NULL yields to NULL instead of TRUE, eg.: // `'example' != nullableColumn` -> NULL even if nullableColumn row value is NULL equalOp = "IS NOT" + nullEqualOp = equalOp concatOp = "AND" nullExpr = "IS NOT NULL" } + // no coalesce (eg. compare to a json field) + // a IS b + // a IS NOT b + if left.NoCoalesce || right.NoCoalesce { + return dbx.NewExp( + fmt.Sprintf("%s %s %s", left.Identifier, nullEqualOp, right.Identifier), + mergeParams(left.Params, right.Params), + ) + } + // both operands are empty if isLeftEmpty && isRightEmpty { return dbx.NewExp(fmt.Sprintf("'' %s ''", equalOp), mergeParams(left.Params, right.Params)) @@ -459,8 +473,8 @@ var _ dbx.Expression = (*concatExpr)(nil) // concatExpr defines an expression that concatenates multiple // other expressions with a specified separator. type concatExpr struct { - parts []dbx.Expression separator string + parts []dbx.Expression } // Build converts the expression into a SQL fragment. @@ -503,16 +517,16 @@ var _ dbx.Expression = (*manyVsManyExpr)(nil) // Expects leftSubQuery and rightSubQuery to return a subquery with a // single "multiMatchValue" column. type manyVsManyExpr struct { - leftSubQuery dbx.Expression - rightSubQuery dbx.Expression - op fexpr.SignOp + left *ResolverResult + right *ResolverResult + op fexpr.SignOp } // Build converts the expression into a SQL fragment. // // Implements [dbx.Expression] interface. func (e *manyVsManyExpr) Build(db *dbx.DB, params dbx.Params) string { - if e.leftSubQuery == nil || e.rightSubQuery == nil { + if e.left.MultiMatchSubQuery == nil || e.right.MultiMatchSubQuery == nil { return "0=1" } @@ -521,10 +535,12 @@ func (e *manyVsManyExpr) Build(db *dbx.DB, params dbx.Params) string { whereExpr, buildErr := buildResolversExpr( &ResolverResult{ + NoCoalesce: e.left.NoCoalesce, Identifier: "[[" + lAlias + ".multiMatchValue]]", }, e.op, &ResolverResult{ + NoCoalesce: e.right.NoCoalesce, Identifier: "[[" + rAlias + ".multiMatchValue]]", // note: the AfterBuild needs to be handled only once and it // doesn't matter whether it is applied on the left or right subquery operand @@ -538,9 +554,9 @@ func (e *manyVsManyExpr) Build(db *dbx.DB, params dbx.Params) string { return fmt.Sprintf( "NOT EXISTS (SELECT 1 FROM (%s) {{%s}} LEFT JOIN (%s) {{%s}} WHERE %s)", - e.leftSubQuery.Build(db, params), + e.left.MultiMatchSubQuery.Build(db, params), lAlias, - e.rightSubQuery.Build(db, params), + e.right.MultiMatchSubQuery.Build(db, params), rAlias, whereExpr.Build(db, params), ) @@ -556,10 +572,11 @@ var _ dbx.Expression = (*manyVsOneExpr)(nil) // // You can set inverse=false to reverse the condition sides (aka. one<->many). type manyVsOneExpr struct { + otherOperand *ResolverResult subQuery dbx.Expression op fexpr.SignOp - otherOperand *ResolverResult inverse bool + noCoalesce bool } // Build converts the expression into a SQL fragment. @@ -573,6 +590,7 @@ func (e *manyVsOneExpr) Build(db *dbx.DB, params dbx.Params) string { alias := "__sm" + security.PseudorandomString(5) r1 := &ResolverResult{ + NoCoalesce: e.noCoalesce, Identifier: "[[" + alias + ".multiMatchValue]]", AfterBuild: multiMatchAfterBuildFunc(e.op, alias), } diff --git a/tools/search/filter_test.go b/tools/search/filter_test.go index f4d8faf3..2f572efa 100644 --- a/tools/search/filter_test.go +++ b/tools/search/filter_test.go @@ -13,7 +13,7 @@ import ( ) func TestFilterDataBuildExpr(t *testing.T) { - resolver := search.NewSimpleFieldResolver("test1", "test2", "test3", `^test4_\w+$`) + resolver := search.NewSimpleFieldResolver("test1", "test2", "test3", `^test4_\w+$`, `^test5\.[\w\.\:]*\w+$`) scenarios := []struct { name string @@ -93,6 +93,12 @@ func TestFilterDataBuildExpr(t *testing.T) { false, "[[test1]] NOT LIKE {:TEST} ESCAPE '\\'", }, + { + "nested json no coalesce", + "test5.a = test5.b || test5.c != test5.d", + false, + "(JSON_EXTRACT([[test5]], '$.a') IS JSON_EXTRACT([[test5]], '$.b') OR JSON_EXTRACT([[test5]], '$.c') IS NOT JSON_EXTRACT([[test5]], '$.d'))", + }, { "macros", ` diff --git a/tools/search/simple_field_resolver.go b/tools/search/simple_field_resolver.go index d3911e38..09a1a651 100644 --- a/tools/search/simple_field_resolver.go +++ b/tools/search/simple_field_resolver.go @@ -16,6 +16,10 @@ type ResolverResult struct { // 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 bool + // 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 @@ -99,6 +103,7 @@ func (r *SimpleFieldResolver) Resolve(field string) (*ResolverResult, error) { } return &ResolverResult{ + NoCoalesce: true, Identifier: fmt.Sprintf( "JSON_EXTRACT([[%s]], '%s')", inflector.Columnify(parts[0]), diff --git a/ui/.env b/ui/.env index eb270652..9e49775b 100644 --- a/ui/.env +++ b/ui/.env @@ -9,4 +9,4 @@ PB_DOCS_URL = "https://pocketbase.io/docs/" PB_JS_SDK_URL = "https://github.com/pocketbase/js-sdk" PB_DART_SDK_URL = "https://github.com/pocketbase/dart-sdk" PB_RELEASES = "https://github.com/pocketbase/pocketbase/releases" -PB_VERSION = "v0.20.2" +PB_VERSION = "v0.20.3" diff --git a/ui/dist/assets/AuthMethodsDocs-e222402c.js b/ui/dist/assets/AuthMethodsDocs-30fd4369.js similarity index 97% rename from ui/dist/assets/AuthMethodsDocs-e222402c.js rename to ui/dist/assets/AuthMethodsDocs-30fd4369.js index 97062103..1beaf8d4 100644 --- a/ui/dist/assets/AuthMethodsDocs-e222402c.js +++ b/ui/dist/assets/AuthMethodsDocs-30fd4369.js @@ -1,4 +1,4 @@ -import{S as Se,i as ye,s as Te,O as G,e as c,w,b as k,c as se,f as p,g as d,h as a,m as ae,x as U,P as ve,Q as je,k as Ae,R as Be,n as Oe,t as W,a as V,o as u,d as ne,C as Fe,p as Qe,r as L,u as Ne,N as He}from"./index-3b554c68.js";import{S as Ke}from"./SdkTabs-88bdaa1d.js";import{F as qe}from"./FieldsQueryParam-e878558e.js";function Ce(n,l,o){const s=n.slice();return s[5]=l[o],s}function Pe(n,l,o){const s=n.slice();return s[5]=l[o],s}function $e(n,l){let o,s=l[5].code+"",_,f,i,h;function m(){return l[4](l[5])}return{key:n,first:null,c(){o=c("button"),_=w(s),f=k(),p(o,"class","tab-item"),L(o,"active",l[1]===l[5].code),this.first=o},m(v,C){d(v,o,C),a(o,_),a(o,f),i||(h=Ne(o,"click",m),i=!0)},p(v,C){l=v,C&4&&s!==(s=l[5].code+"")&&U(_,s),C&6&&L(o,"active",l[1]===l[5].code)},d(v){v&&u(o),i=!1,h()}}}function Me(n,l){let o,s,_,f;return s=new He({props:{content:l[5].body}}),{key:n,first:null,c(){o=c("div"),se(s.$$.fragment),_=k(),p(o,"class","tab-item"),L(o,"active",l[1]===l[5].code),this.first=o},m(i,h){d(i,o,h),ae(s,o,null),a(o,_),f=!0},p(i,h){l=i;const m={};h&4&&(m.content=l[5].body),s.$set(m),(!f||h&6)&&L(o,"active",l[1]===l[5].code)},i(i){f||(W(s.$$.fragment,i),f=!0)},o(i){V(s.$$.fragment,i),f=!1},d(i){i&&u(o),ne(s)}}}function ze(n){var be,ke;let l,o,s=n[0].name+"",_,f,i,h,m,v,C,H=n[0].name+"",E,ie,I,P,J,j,Y,$,K,ce,q,A,re,R,z=n[0].name+"",X,de,Z,B,x,M,ee,ue,te,T,le,O,oe,S,F,g=[],he=new Map,me,Q,b=[],fe=new Map,y;P=new Ke({props:{js:` +import{S as Se,i as ye,s as Te,O as G,e as c,w,b as k,c as se,f as p,g as d,h as a,m as ae,x as U,P as ve,Q as je,k as Ae,R as Be,n as Oe,t as W,a as V,o as u,d as ne,C as Fe,p as Qe,r as L,u as Ne,N as He}from"./index-26bf667a.js";import{S as Ke}from"./SdkTabs-27205987.js";import{F as qe}from"./FieldsQueryParam-c4b1abdd.js";function Ce(n,l,o){const s=n.slice();return s[5]=l[o],s}function Pe(n,l,o){const s=n.slice();return s[5]=l[o],s}function $e(n,l){let o,s=l[5].code+"",_,f,i,h;function m(){return l[4](l[5])}return{key:n,first:null,c(){o=c("button"),_=w(s),f=k(),p(o,"class","tab-item"),L(o,"active",l[1]===l[5].code),this.first=o},m(v,C){d(v,o,C),a(o,_),a(o,f),i||(h=Ne(o,"click",m),i=!0)},p(v,C){l=v,C&4&&s!==(s=l[5].code+"")&&U(_,s),C&6&&L(o,"active",l[1]===l[5].code)},d(v){v&&u(o),i=!1,h()}}}function Me(n,l){let o,s,_,f;return s=new He({props:{content:l[5].body}}),{key:n,first:null,c(){o=c("div"),se(s.$$.fragment),_=k(),p(o,"class","tab-item"),L(o,"active",l[1]===l[5].code),this.first=o},m(i,h){d(i,o,h),ae(s,o,null),a(o,_),f=!0},p(i,h){l=i;const m={};h&4&&(m.content=l[5].body),s.$set(m),(!f||h&6)&&L(o,"active",l[1]===l[5].code)},i(i){f||(W(s.$$.fragment,i),f=!0)},o(i){V(s.$$.fragment,i),f=!1},d(i){i&&u(o),ne(s)}}}function ze(n){var be,ke;let l,o,s=n[0].name+"",_,f,i,h,m,v,C,H=n[0].name+"",E,ie,I,P,J,j,Y,$,K,ce,q,A,re,R,z=n[0].name+"",X,de,Z,B,x,M,ee,ue,te,T,le,O,oe,S,F,g=[],he=new Map,me,Q,b=[],fe=new Map,y;P=new Ke({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${n[3]}'); diff --git a/ui/dist/assets/AuthRefreshDocs-f72e612e.js b/ui/dist/assets/AuthRefreshDocs-1637fa9f.js similarity index 97% rename from ui/dist/assets/AuthRefreshDocs-f72e612e.js rename to ui/dist/assets/AuthRefreshDocs-1637fa9f.js index bf9a7014..4fffaa70 100644 --- a/ui/dist/assets/AuthRefreshDocs-f72e612e.js +++ b/ui/dist/assets/AuthRefreshDocs-1637fa9f.js @@ -1,4 +1,4 @@ -import{S as Ue,i as je,s as Je,N as Qe,O as J,e as s,w as k,b as p,c as K,f as b,g as d,h as o,m as I,x as de,P as Ee,Q as Ke,k as Ie,R as We,n as Ge,t as N,a as V,o as u,d as W,C as Le,p as Xe,r as G,u as Ye}from"./index-3b554c68.js";import{S as Ze}from"./SdkTabs-88bdaa1d.js";import{F as et}from"./FieldsQueryParam-e878558e.js";function Ne(r,l,a){const n=r.slice();return n[5]=l[a],n}function Ve(r,l,a){const n=r.slice();return n[5]=l[a],n}function xe(r,l){let a,n=l[5].code+"",m,_,i,h;function g(){return l[4](l[5])}return{key:r,first:null,c(){a=s("button"),m=k(n),_=p(),b(a,"class","tab-item"),G(a,"active",l[1]===l[5].code),this.first=a},m(v,w){d(v,a,w),o(a,m),o(a,_),i||(h=Ye(a,"click",g),i=!0)},p(v,w){l=v,w&4&&n!==(n=l[5].code+"")&&de(m,n),w&6&&G(a,"active",l[1]===l[5].code)},d(v){v&&u(a),i=!1,h()}}}function ze(r,l){let a,n,m,_;return n=new Qe({props:{content:l[5].body}}),{key:r,first:null,c(){a=s("div"),K(n.$$.fragment),m=p(),b(a,"class","tab-item"),G(a,"active",l[1]===l[5].code),this.first=a},m(i,h){d(i,a,h),I(n,a,null),o(a,m),_=!0},p(i,h){l=i;const g={};h&4&&(g.content=l[5].body),n.$set(g),(!_||h&6)&&G(a,"active",l[1]===l[5].code)},i(i){_||(N(n.$$.fragment,i),_=!0)},o(i){V(n.$$.fragment,i),_=!1},d(i){i&&u(a),W(n)}}}function tt(r){var De,Fe;let l,a,n=r[0].name+"",m,_,i,h,g,v,w,M,X,S,x,ue,z,q,pe,Y,Q=r[0].name+"",Z,he,fe,U,ee,D,te,T,oe,be,F,C,le,me,ae,_e,f,ke,R,ge,ve,$e,se,ye,ne,Se,we,Te,re,Ce,Pe,A,ie,O,ce,P,H,y=[],Re=new Map,Ae,E,$=[],Be=new Map,B;v=new Ze({props:{js:` +import{S as Ue,i as je,s as Je,N as Qe,O as J,e as s,w as k,b as p,c as K,f as b,g as d,h as o,m as I,x as de,P as Ee,Q as Ke,k as Ie,R as We,n as Ge,t as N,a as V,o as u,d as W,C as Le,p as Xe,r as G,u as Ye}from"./index-26bf667a.js";import{S as Ze}from"./SdkTabs-27205987.js";import{F as et}from"./FieldsQueryParam-c4b1abdd.js";function Ne(r,l,a){const n=r.slice();return n[5]=l[a],n}function Ve(r,l,a){const n=r.slice();return n[5]=l[a],n}function xe(r,l){let a,n=l[5].code+"",m,_,i,h;function g(){return l[4](l[5])}return{key:r,first:null,c(){a=s("button"),m=k(n),_=p(),b(a,"class","tab-item"),G(a,"active",l[1]===l[5].code),this.first=a},m(v,w){d(v,a,w),o(a,m),o(a,_),i||(h=Ye(a,"click",g),i=!0)},p(v,w){l=v,w&4&&n!==(n=l[5].code+"")&&de(m,n),w&6&&G(a,"active",l[1]===l[5].code)},d(v){v&&u(a),i=!1,h()}}}function ze(r,l){let a,n,m,_;return n=new Qe({props:{content:l[5].body}}),{key:r,first:null,c(){a=s("div"),K(n.$$.fragment),m=p(),b(a,"class","tab-item"),G(a,"active",l[1]===l[5].code),this.first=a},m(i,h){d(i,a,h),I(n,a,null),o(a,m),_=!0},p(i,h){l=i;const g={};h&4&&(g.content=l[5].body),n.$set(g),(!_||h&6)&&G(a,"active",l[1]===l[5].code)},i(i){_||(N(n.$$.fragment,i),_=!0)},o(i){V(n.$$.fragment,i),_=!1},d(i){i&&u(a),W(n)}}}function tt(r){var De,Fe;let l,a,n=r[0].name+"",m,_,i,h,g,v,w,M,X,S,x,ue,z,q,pe,Y,Q=r[0].name+"",Z,he,fe,U,ee,D,te,T,oe,be,F,C,le,me,ae,_e,f,ke,R,ge,ve,$e,se,ye,ne,Se,we,Te,re,Ce,Pe,A,ie,O,ce,P,H,y=[],Re=new Map,Ae,E,$=[],Be=new Map,B;v=new Ze({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${r[3]}'); diff --git a/ui/dist/assets/AuthWithOAuth2Docs-25e86dcd.js b/ui/dist/assets/AuthWithOAuth2Docs-bb1f28ac.js similarity index 98% rename from ui/dist/assets/AuthWithOAuth2Docs-25e86dcd.js rename to ui/dist/assets/AuthWithOAuth2Docs-bb1f28ac.js index b20eef4e..eb593037 100644 --- a/ui/dist/assets/AuthWithOAuth2Docs-25e86dcd.js +++ b/ui/dist/assets/AuthWithOAuth2Docs-bb1f28ac.js @@ -1,4 +1,4 @@ -import{S as xe,i as Ee,s as Je,N as Le,O as z,e as o,w as k,b as h,c as I,f as p,g as r,h as a,m as K,x as pe,P as Ue,Q as Ne,k as Qe,R as ze,n as Ie,t as L,a as x,o as c,d as G,C as Be,p as Ke,r as X,u as Ge}from"./index-3b554c68.js";import{S as Xe}from"./SdkTabs-88bdaa1d.js";import{F as Ye}from"./FieldsQueryParam-e878558e.js";function Fe(s,l,n){const i=s.slice();return i[5]=l[n],i}function He(s,l,n){const i=s.slice();return i[5]=l[n],i}function je(s,l){let n,i=l[5].code+"",f,g,d,b;function _(){return l[4](l[5])}return{key:s,first:null,c(){n=o("button"),f=k(i),g=h(),p(n,"class","tab-item"),X(n,"active",l[1]===l[5].code),this.first=n},m(v,O){r(v,n,O),a(n,f),a(n,g),d||(b=Ge(n,"click",_),d=!0)},p(v,O){l=v,O&4&&i!==(i=l[5].code+"")&&pe(f,i),O&6&&X(n,"active",l[1]===l[5].code)},d(v){v&&c(n),d=!1,b()}}}function Ve(s,l){let n,i,f,g;return i=new Le({props:{content:l[5].body}}),{key:s,first:null,c(){n=o("div"),I(i.$$.fragment),f=h(),p(n,"class","tab-item"),X(n,"active",l[1]===l[5].code),this.first=n},m(d,b){r(d,n,b),K(i,n,null),a(n,f),g=!0},p(d,b){l=d;const _={};b&4&&(_.content=l[5].body),i.$set(_),(!g||b&6)&&X(n,"active",l[1]===l[5].code)},i(d){g||(L(i.$$.fragment,d),g=!0)},o(d){x(i.$$.fragment,d),g=!1},d(d){d&&c(n),G(i)}}}function Ze(s){let l,n,i=s[0].name+"",f,g,d,b,_,v,O,P,Y,A,E,be,J,R,me,Z,N=s[0].name+"",ee,fe,te,M,ae,W,le,U,ne,S,oe,ge,B,y,se,ke,ie,_e,m,ve,C,we,$e,Oe,re,Ae,ce,Se,ye,Te,de,Ce,qe,q,ue,F,he,T,H,$=[],De=new Map,Pe,j,w=[],Re=new Map,D;v=new Xe({props:{js:` +import{S as xe,i as Ee,s as Je,N as Le,O as z,e as o,w as k,b as h,c as I,f as p,g as r,h as a,m as K,x as pe,P as Ue,Q as Ne,k as Qe,R as ze,n as Ie,t as L,a as x,o as c,d as G,C as Be,p as Ke,r as X,u as Ge}from"./index-26bf667a.js";import{S as Xe}from"./SdkTabs-27205987.js";import{F as Ye}from"./FieldsQueryParam-c4b1abdd.js";function Fe(s,l,n){const i=s.slice();return i[5]=l[n],i}function He(s,l,n){const i=s.slice();return i[5]=l[n],i}function je(s,l){let n,i=l[5].code+"",f,g,d,b;function _(){return l[4](l[5])}return{key:s,first:null,c(){n=o("button"),f=k(i),g=h(),p(n,"class","tab-item"),X(n,"active",l[1]===l[5].code),this.first=n},m(v,O){r(v,n,O),a(n,f),a(n,g),d||(b=Ge(n,"click",_),d=!0)},p(v,O){l=v,O&4&&i!==(i=l[5].code+"")&&pe(f,i),O&6&&X(n,"active",l[1]===l[5].code)},d(v){v&&c(n),d=!1,b()}}}function Ve(s,l){let n,i,f,g;return i=new Le({props:{content:l[5].body}}),{key:s,first:null,c(){n=o("div"),I(i.$$.fragment),f=h(),p(n,"class","tab-item"),X(n,"active",l[1]===l[5].code),this.first=n},m(d,b){r(d,n,b),K(i,n,null),a(n,f),g=!0},p(d,b){l=d;const _={};b&4&&(_.content=l[5].body),i.$set(_),(!g||b&6)&&X(n,"active",l[1]===l[5].code)},i(d){g||(L(i.$$.fragment,d),g=!0)},o(d){x(i.$$.fragment,d),g=!1},d(d){d&&c(n),G(i)}}}function Ze(s){let l,n,i=s[0].name+"",f,g,d,b,_,v,O,P,Y,A,E,be,J,R,me,Z,N=s[0].name+"",ee,fe,te,M,ae,W,le,U,ne,S,oe,ge,B,y,se,ke,ie,_e,m,ve,C,we,$e,Oe,re,Ae,ce,Se,ye,Te,de,Ce,qe,q,ue,F,he,T,H,$=[],De=new Map,Pe,j,w=[],Re=new Map,D;v=new Xe({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${s[3]}'); diff --git a/ui/dist/assets/AuthWithPasswordDocs-30320a31.js b/ui/dist/assets/AuthWithPasswordDocs-55d15963.js similarity index 98% rename from ui/dist/assets/AuthWithPasswordDocs-30320a31.js rename to ui/dist/assets/AuthWithPasswordDocs-55d15963.js index 566f9f66..0cacea45 100644 --- a/ui/dist/assets/AuthWithPasswordDocs-30320a31.js +++ b/ui/dist/assets/AuthWithPasswordDocs-55d15963.js @@ -1,4 +1,4 @@ -import{S as wt,i as yt,s as $t,N as vt,O as oe,e as n,w as p,b as d,c as ne,f as m,g as r,h as t,m as se,x as De,P as pt,Q as Pt,k as Rt,R as Ct,n as Ot,t as Z,a as x,o as c,d as ie,C as ft,p as At,r as re,u as Tt}from"./index-3b554c68.js";import{S as Ut}from"./SdkTabs-88bdaa1d.js";import{F as Mt}from"./FieldsQueryParam-e878558e.js";function ht(s,l,a){const i=s.slice();return i[8]=l[a],i}function bt(s,l,a){const i=s.slice();return i[8]=l[a],i}function Dt(s){let l;return{c(){l=p("email")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function Et(s){let l;return{c(){l=p("username")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function Wt(s){let l;return{c(){l=p("username/email")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function mt(s){let l;return{c(){l=n("strong"),l.textContent="username"},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function _t(s){let l;return{c(){l=p("or")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function kt(s){let l;return{c(){l=n("strong"),l.textContent="email"},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function gt(s,l){let a,i=l[8].code+"",g,b,f,u;function _(){return l[7](l[8])}return{key:s,first:null,c(){a=n("button"),g=p(i),b=d(),m(a,"class","tab-item"),re(a,"active",l[3]===l[8].code),this.first=a},m(R,C){r(R,a,C),t(a,g),t(a,b),f||(u=Tt(a,"click",_),f=!0)},p(R,C){l=R,C&16&&i!==(i=l[8].code+"")&&De(g,i),C&24&&re(a,"active",l[3]===l[8].code)},d(R){R&&c(a),f=!1,u()}}}function St(s,l){let a,i,g,b;return i=new vt({props:{content:l[8].body}}),{key:s,first:null,c(){a=n("div"),ne(i.$$.fragment),g=d(),m(a,"class","tab-item"),re(a,"active",l[3]===l[8].code),this.first=a},m(f,u){r(f,a,u),se(i,a,null),t(a,g),b=!0},p(f,u){l=f;const _={};u&16&&(_.content=l[8].body),i.$set(_),(!b||u&24)&&re(a,"active",l[3]===l[8].code)},i(f){b||(Z(i.$$.fragment,f),b=!0)},o(f){x(i.$$.fragment,f),b=!1},d(f){f&&c(a),ie(i)}}}function Lt(s){var rt,ct;let l,a,i=s[0].name+"",g,b,f,u,_,R,C,O,B,Ee,ce,T,de,N,ue,U,ee,We,te,I,Le,pe,le=s[0].name+"",fe,Be,he,V,be,M,me,qe,Q,D,_e,Fe,ke,He,$,Ye,ge,Se,ve,Ne,we,ye,j,$e,E,Pe,Ie,J,W,Re,Ve,Ce,Qe,k,je,q,Je,Ke,ze,Oe,Ge,Ae,Xe,Ze,xe,Te,et,tt,F,Ue,K,Me,L,z,A=[],lt=new Map,at,G,S=[],ot=new Map,H;function nt(e,o){if(e[1]&&e[2])return Wt;if(e[1])return Et;if(e[2])return Dt}let Y=nt(s),P=Y&&Y(s);T=new Ut({props:{js:` +import{S as wt,i as yt,s as $t,N as vt,O as oe,e as n,w as p,b as d,c as ne,f as m,g as r,h as t,m as se,x as De,P as pt,Q as Pt,k as Rt,R as Ct,n as Ot,t as Z,a as x,o as c,d as ie,C as ft,p as At,r as re,u as Tt}from"./index-26bf667a.js";import{S as Ut}from"./SdkTabs-27205987.js";import{F as Mt}from"./FieldsQueryParam-c4b1abdd.js";function ht(s,l,a){const i=s.slice();return i[8]=l[a],i}function bt(s,l,a){const i=s.slice();return i[8]=l[a],i}function Dt(s){let l;return{c(){l=p("email")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function Et(s){let l;return{c(){l=p("username")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function Wt(s){let l;return{c(){l=p("username/email")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function mt(s){let l;return{c(){l=n("strong"),l.textContent="username"},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function _t(s){let l;return{c(){l=p("or")},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function kt(s){let l;return{c(){l=n("strong"),l.textContent="email"},m(a,i){r(a,l,i)},d(a){a&&c(l)}}}function gt(s,l){let a,i=l[8].code+"",g,b,f,u;function _(){return l[7](l[8])}return{key:s,first:null,c(){a=n("button"),g=p(i),b=d(),m(a,"class","tab-item"),re(a,"active",l[3]===l[8].code),this.first=a},m(R,C){r(R,a,C),t(a,g),t(a,b),f||(u=Tt(a,"click",_),f=!0)},p(R,C){l=R,C&16&&i!==(i=l[8].code+"")&&De(g,i),C&24&&re(a,"active",l[3]===l[8].code)},d(R){R&&c(a),f=!1,u()}}}function St(s,l){let a,i,g,b;return i=new vt({props:{content:l[8].body}}),{key:s,first:null,c(){a=n("div"),ne(i.$$.fragment),g=d(),m(a,"class","tab-item"),re(a,"active",l[3]===l[8].code),this.first=a},m(f,u){r(f,a,u),se(i,a,null),t(a,g),b=!0},p(f,u){l=f;const _={};u&16&&(_.content=l[8].body),i.$set(_),(!b||u&24)&&re(a,"active",l[3]===l[8].code)},i(f){b||(Z(i.$$.fragment,f),b=!0)},o(f){x(i.$$.fragment,f),b=!1},d(f){f&&c(a),ie(i)}}}function Lt(s){var rt,ct;let l,a,i=s[0].name+"",g,b,f,u,_,R,C,O,B,Ee,ce,T,de,N,ue,U,ee,We,te,I,Le,pe,le=s[0].name+"",fe,Be,he,V,be,M,me,qe,Q,D,_e,Fe,ke,He,$,Ye,ge,Se,ve,Ne,we,ye,j,$e,E,Pe,Ie,J,W,Re,Ve,Ce,Qe,k,je,q,Je,Ke,ze,Oe,Ge,Ae,Xe,Ze,xe,Te,et,tt,F,Ue,K,Me,L,z,A=[],lt=new Map,at,G,S=[],ot=new Map,H;function nt(e,o){if(e[1]&&e[2])return Wt;if(e[1])return Et;if(e[2])return Dt}let Y=nt(s),P=Y&&Y(s);T=new Ut({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${s[6]}'); diff --git a/ui/dist/assets/CodeEditor-d15a301a.js b/ui/dist/assets/CodeEditor-e3209658.js similarity index 99% rename from ui/dist/assets/CodeEditor-d15a301a.js rename to ui/dist/assets/CodeEditor-e3209658.js index 04653e32..08ec012c 100644 --- a/ui/dist/assets/CodeEditor-d15a301a.js +++ b/ui/dist/assets/CodeEditor-e3209658.js @@ -1,4 +1,4 @@ -import{S as bt,i as Xt,s as Yt,e as xt,f as kt,U as M,g as wt,y as Ae,o as yt,J as vt,K as Tt,L as Wt,I as _t,C as Ut,M as Ct}from"./index-3b554c68.js";import{P as qt,N as jt,v as zt,D as Rt,w as ye,T as ee,I as ve,x as B,y as l,z as Vt,L as J,A as L,B as C,F as K,G as Te,H as F,u as R,J as xO,K as kO,M as wO,E as U,O as yO,Q as P,R as Gt,U as Et,V as vO,W as At,X as It,a as V,h as Nt,b as Dt,c as Bt,d as Jt,e as Lt,s as Kt,t as Ft,f as Mt,g as Ht,r as ea,i as Oa,k as ta,j as aa,l as ra,m as ia,n as sa,o as oa,p as la,q as Ie,C as H}from"./index-9ee652b3.js";class re{constructor(e,a,t,r,s,i,o,n,Q,d=0,c){this.p=e,this.stack=a,this.state=t,this.reducePos=r,this.pos=s,this.score=i,this.buffer=o,this.bufferBase=n,this.curContext=Q,this.lookAhead=d,this.parent=c}toString(){return`[${this.stack.filter((e,a)=>a%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,a,t=0){let r=e.parser.context;return new re(e,[],a,t,t,0,[],0,r?new Ne(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,a){this.stack.push(this.state,a,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var a;let t=e>>19,r=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(r);if(i&&(this.score+=i),t==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(!((a=this.p.parser.nodeSet.types[r])===null||a===void 0)&&a.isAnonymous)&&(n==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=Q):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(r,n)}storeNode(e,a,t,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&i.buffer[o-4]==0&&i.buffer[o-1]>-1){if(a==t)return;if(i.buffer[o-2]>=a){i.buffer[o-2]=t;return}}}if(!s||this.pos==t)this.buffer.push(e,a,t,r);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>t;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=a,this.buffer[i+2]=t,this.buffer[i+3]=r}}shift(e,a,t,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(a,t),a<=this.p.parser.maxNode&&this.buffer.push(a,t,r,4);else{let s=e,{parser:i}=this.p;(r>this.pos||a<=i.maxNode)&&(this.pos=r,i.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,t),this.shiftContext(a,t),a<=i.maxNode&&this.buffer.push(a,t,r,4)}}apply(e,a,t,r){e&65536?this.reduce(e):this.shift(e,a,t,r)}useNode(e,a){let t=this.p.reused.length-1;(t<0||this.p.reused[t]!=e)&&(this.p.reused.push(e),t++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(a,r),this.buffer.push(t,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,a=e.buffer.length;for(;a>0&&e.buffer[a-2]>e.reducePos;)a-=4;let t=e.buffer.slice(a),r=e.bufferBase+a;for(;e&&r==e.bufferBase;)e=e.parent;return new re(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,t,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,a){let t=e<=this.p.parser.maxNode;t&&this.storeNode(e,this.pos,a,4),this.storeNode(0,this.pos,a,t?8:4),this.pos=this.reducePos=a,this.score-=190}canShift(e){for(let a=new na(this);;){let t=this.p.parser.stateSlot(a.state,4)||this.p.parser.hasAction(a.state,e);if(t==0)return!1;if(!(t&65536))return!0;a.reduce(t)}}recoverByInsert(e){if(this.stack.length>=300)return[];let a=this.p.parser.nextStates(this.state);if(a.length>8||this.stack.length>=120){let r=[];for(let s=0,i;sn&1&&o==i)||r.push(a[s],i)}a=r}let t=[];for(let r=0;r>19,r=a&65535,s=this.stack.length-t*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;a=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(a),!0}findForcedReduction(){let{parser:e}=this.p,a=[],t=(r,s)=>{if(!a.includes(r))return a.push(r),e.allActions(r,i=>{if(!(i&393216))if(i&65536){let o=(i>>19)-s;if(o>1){let n=i&65535,Q=this.stack.length-o*3;if(Q>=0&&e.getGoto(this.stack[Q],n,!1)>=0)return o<<19|65536|n}}else{let o=t(i,s+1);if(o!=null)return o}})};return t(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let a=0;athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Ne{constructor(e,a){this.tracker=e,this.context=a,this.hash=e.strict?e.hash(a):0}}class na{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let a=e&65535,t=e>>19;t==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(t-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],a,!0);this.state=r}}class ie{constructor(e,a,t){this.stack=e,this.pos=a,this.index=t,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,a=e.bufferBase+e.buffer.length){return new ie(e,a,a-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new ie(this.stack,this.pos,this.index)}}function I(O,e=Uint16Array){if(typeof O!="string")return O;let a=null;for(let t=0,r=0;t=92&&i--,i>=34&&i--;let n=i-32;if(n>=46&&(n-=46,o=!0),s+=n,o)break;s*=46}a?a[r++]=s:a=new e(s)}return a}class Oe{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const De=new Oe;class ca{constructor(e,a){this.input=e,this.ranges=a,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=De,this.rangeIndex=0,this.pos=this.chunkPos=a[0].from,this.range=a[0],this.end=a[a.length-1].to,this.readNext()}resolveOffset(e,a){let t=this.range,r=this.rangeIndex,s=this.pos+e;for(;st.to:s>=t.to;){if(r==this.ranges.length-1)return null;let i=this.ranges[++r];s+=i.from-t.to,t=i}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,a.from);return this.end}peek(e){let a=this.chunkOff+e,t,r;if(a>=0&&a=this.chunk2Pos&&to.to&&(this.chunk2=this.chunk2.slice(0,o.to-t)),r=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),r}acceptToken(e,a=0){let t=a?this.resolveOffset(a,-1):this.pos;if(t==null||t=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,a){if(a?(this.token=a,a.start=e,a.lookAhead=e+1,a.value=a.extended=-1):this.token=De,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&a<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,a-this.chunkPos);if(e>=this.chunk2Pos&&a<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,a-this.chunk2Pos);if(e>=this.range.from&&a<=this.range.to)return this.input.read(e,a);let t="";for(let r of this.ranges){if(r.from>=a)break;r.to>e&&(t+=this.input.read(Math.max(r.from,e),Math.min(r.to,a)))}return t}}class q{constructor(e,a){this.data=e,this.id=a}token(e,a){let{parser:t}=a.p;TO(this.data,e,a,this.id,t.data,t.tokenPrecTable)}}q.prototype.contextual=q.prototype.fallback=q.prototype.extend=!1;class se{constructor(e,a,t){this.precTable=a,this.elseToken=t,this.data=typeof e=="string"?I(e):e}token(e,a){let t=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(TO(this.data,e,a,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(t,e.token),e.acceptToken(this.elseToken,r))}}se.prototype.contextual=q.prototype.fallback=q.prototype.extend=!1;class Y{constructor(e,a={}){this.token=e,this.contextual=!!a.contextual,this.fallback=!!a.fallback,this.extend=!!a.extend}}function TO(O,e,a,t,r,s){let i=0,o=1<0){let u=O[p];if(n.allows(u)&&(e.token.value==-1||e.token.value==u||Qa(u,e.token.value,r,s))){e.acceptToken(u);break}}let d=e.next,c=0,f=O[i+2];if(e.next<0&&f>c&&O[Q+f*3-3]==65535){i=O[Q+f*3-1];continue e}for(;c>1,u=Q+p+(p<<1),$=O[u],m=O[u+1]||65536;if(d<$)f=p;else if(d>=m)c=p+1;else{i=O[u+2],e.advance();continue e}}break}}function Be(O,e,a){for(let t=e,r;(r=O[t])!=65535;t++)if(r==a)return t-e;return-1}function Qa(O,e,a,t){let r=Be(a,t,e);return r<0||Be(a,t,O)e)&&!t.type.isError)return a<0?Math.max(0,Math.min(t.to-1,e-25)):Math.min(O.length,Math.max(t.from+1,e+25));if(a<0?t.prevSibling():t.nextSibling())break;if(!t.parent())return a<0?0:O.length}}class pa{constructor(e,a){this.fragments=e,this.nodeSet=a,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Je(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Je(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=i,null;if(s instanceof ee){if(i==e){if(i=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[a]++,this.nextStart=i+s.length}}}class da{constructor(e,a){this.stream=a,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(t=>new Oe)}getActions(e){let a=0,t=null,{parser:r}=e.p,{tokenizers:s}=r,i=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,n=0;for(let Q=0;Qc.end+25&&(n=Math.max(c.lookAhead,n)),c.value!=0)){let f=a;if(c.extended>-1&&(a=this.addActions(e,c.extended,c.end,a)),a=this.addActions(e,c.value,c.end,a),!d.extend&&(t=c,a>f))break}}for(;this.actions.length>a;)this.actions.pop();return n&&e.setLookAhead(n),!t&&e.pos==this.stream.end&&(t=new Oe,t.value=e.p.parser.eofTerm,t.start=t.end=e.pos,a=this.addActions(e,t.value,t.end,a)),this.mainToken=t,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let a=new Oe,{pos:t,p:r}=e;return a.start=t,a.end=Math.min(t+1,r.stream.end),a.value=t==r.stream.end?r.parser.eofTerm:0,a}updateCachedToken(e,a,t){let r=this.stream.clipPos(t.pos);if(a.token(this.stream.reset(r,e),t),e.value>-1){let{parser:s}=t.p;for(let i=0;i=0&&t.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,a,t,r){for(let s=0;se.bufferLength*4?new pa(t,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,a=this.minStackPos,t=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;ia)t.push(o);else{if(this.advanceStack(o,t,e))continue;{r||(r=[],s=[]),r.push(o);let n=this.tokens.getMainToken(o);s.push(n.value,n.end)}}break}}if(!t.length){let i=r&&fa(r);if(i)return Z&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw Z&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+a);this.recovering||(this.recovering=5)}if(this.recovering&&r){let i=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,t);if(i)return Z&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(t.length>i)for(t.sort((o,n)=>n.score-o.score);t.length>i;)t.pop();t.some(o=>o.reducePos>a)&&this.recovering--}else if(t.length>1){e:for(let i=0;i500&&Q.buffer.length>500)if((o.score-Q.score||o.buffer.length-Q.buffer.length)>0)t.splice(n--,1);else{t.splice(i--,1);continue e}}}t.length>12&&t.splice(12,t.length-12)}this.minStackPos=t[0].pos;for(let i=1;i ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let Q=e.curContext&&e.curContext.tracker.strict,d=Q?e.curContext.hash:0;for(let c=this.fragments.nodeAt(r);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!Q||(c.prop(ye.contextHash)||0)==d))return e.useNode(c,f),Z&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof ee)||c.children.length==0||c.positions[0]>0)break;let p=c.children[0];if(p instanceof ee&&c.positions[0]==0)c=p;else break}}let o=s.stateSlot(e.state,4);if(o>0)return e.reduce(o),Z&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let n=this.tokens.getActions(e);for(let Q=0;Qr?a.push(u):t.push(u)}return!1}advanceFully(e,a){let t=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>t)return Le(e,a),!0}}runRecovery(e,a,t){let r=null,s=!1;for(let i=0;i ":"";if(o.deadEnd&&(s||(s=!0,o.restart(),Z&&console.log(d+this.stackID(o)+" (restarted)"),this.advanceFully(o,t))))continue;let c=o.split(),f=d;for(let p=0;c.forceReduce()&&p<10&&(Z&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,t));p++)Z&&(f=this.stackID(c)+" -> ");for(let p of o.recoverByInsert(n))Z&&console.log(d+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,t);this.stream.end>o.pos?(Q==o.pos&&(Q++,n=0),o.recoverByDelete(n,Q),Z&&console.log(d+this.stackID(o)+` (via recover-delete ${this.parser.getName(n)})`),Le(o,t)):(!r||r.scoreO;class WO{constructor(e){this.start=e.start,this.shift=e.shift||he,this.reduce=e.reduce||he,this.reuse=e.reuse||he,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class T extends qt{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let a=e.nodeNames.split(" ");this.minRepeatTerm=a.length;for(let o=0;oe.topRules[o][1]),r=[];for(let o=0;o=0)s(d,n,o[Q++]);else{let c=o[Q+-d];for(let f=-d;f>0;f--)s(o[Q++],n,c);Q++}}}this.nodeSet=new jt(a.map((o,n)=>zt.define({name:n>=this.minRepeatTerm?void 0:o,id:n,props:r[n],top:t.indexOf(n)>-1,error:n==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(n)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Rt;let i=I(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new q(i,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,a,t){let r=new ha(this,e,a,t);for(let s of this.wrappers)r=s(r,e,a,t);return r}getGoto(e,a,t=!1){let r=this.goto;if(a>=r[0])return-1;for(let s=r[a+1];;){let i=r[s++],o=i&1,n=r[s++];if(o&&t)return n;for(let Q=s+(i>>1);s0}validAction(e,a){return!!this.allActions(e,t=>t==a?!0:null)}allActions(e,a){let t=this.stateSlot(e,4),r=t?a(t):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=w(this.data,s+2);else break;r=a(w(this.data,s+1))}return r}nextStates(e){let a=[];for(let t=this.stateSlot(e,1);;t+=3){if(this.data[t]==65535)if(this.data[t+1]==1)t=w(this.data,t+2);else break;if(!(this.data[t+2]&1)){let r=this.data[t+1];a.some((s,i)=>i&1&&s==r)||a.push(this.data[t],r)}}return a}configure(e){let a=Object.assign(Object.create(T.prototype),this);if(e.props&&(a.nodeSet=this.nodeSet.extend(...e.props)),e.top){let t=this.topRules[e.top];if(!t)throw new RangeError(`Invalid top rule name ${e.top}`);a.top=t}return e.tokenizers&&(a.tokenizers=this.tokenizers.map(t=>{let r=e.tokenizers.find(s=>s.from==t);return r?r.to:t})),e.specializers&&(a.specializers=this.specializers.slice(),a.specializerSpecs=this.specializerSpecs.map((t,r)=>{let s=e.specializers.find(o=>o.from==t.external);if(!s)return t;let i=Object.assign(Object.assign({},t),{external:s.to});return a.specializers[r]=Ke(i),i})),e.contextTracker&&(a.context=e.contextTracker),e.dialect&&(a.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(a.strict=e.strict),e.wrap&&(a.wrappers=a.wrappers.concat(e.wrap)),e.bufferLength!=null&&(a.bufferLength=e.bufferLength),a}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let a=this.dynamicPrecedences;return a==null?0:a[e]||0}parseDialect(e){let a=Object.keys(this.dialects),t=a.map(()=>!1);if(e)for(let s of e.split(" ")){let i=a.indexOf(s);i>=0&&(t[i]=!0)}let r=null;for(let s=0;st)&&a.p.parser.stateFlag(a.state,2)&&(!e||e.scoreO.external(a,t)<<1|e}return O.get}const Sa=54,$a=1,ma=55,ga=2,Pa=56,Za=3,Fe=4,ba=5,oe=6,_O=7,UO=8,CO=9,qO=10,Xa=11,Ya=12,xa=13,ue=57,ka=14,Me=58,jO=20,wa=22,zO=23,ya=24,Xe=26,RO=27,va=28,Ta=31,Wa=34,_a=36,Ua=37,Ca=0,qa=1,ja={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},za={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},He={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function Ra(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function VO(O){return O==9||O==10||O==13||O==32}let eO=null,OO=null,tO=0;function Ye(O,e){let a=O.pos+e;if(tO==a&&OO==O)return eO;let t=O.peek(e);for(;VO(t);)t=O.peek(++e);let r="";for(;Ra(t);)r+=String.fromCharCode(t),t=O.peek(++e);return OO=O,tO=a,eO=r?r.toLowerCase():t==Va||t==Ga?void 0:null}const GO=60,le=62,We=47,Va=63,Ga=33,Ea=45;function aO(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let a=0;a-1?new aO(Ye(t,1)||"",O):O},reduce(O,e){return e==jO&&O?O.parent:O},reuse(O,e,a,t){let r=e.type.id;return r==oe||r==_a?new aO(Ye(t,1)||"",O):O},hash(O){return O?O.hash:0},strict:!1}),Na=new Y((O,e)=>{if(O.next!=GO){O.next<0&&e.context&&O.acceptToken(ue);return}O.advance();let a=O.next==We;a&&O.advance();let t=Ye(O,0);if(t===void 0)return;if(!t)return O.acceptToken(a?ka:oe);let r=e.context?e.context.name:null;if(a){if(t==r)return O.acceptToken(Xa);if(r&&za[r])return O.acceptToken(ue,-2);if(e.dialectEnabled(Ca))return O.acceptToken(Ya);for(let s=e.context;s;s=s.parent)if(s.name==t)return;O.acceptToken(xa)}else{if(t=="script")return O.acceptToken(_O);if(t=="style")return O.acceptToken(UO);if(t=="textarea")return O.acceptToken(CO);if(ja.hasOwnProperty(t))return O.acceptToken(qO);r&&He[r]&&He[r][t]?O.acceptToken(ue,-1):O.acceptToken(oe)}},{contextual:!0}),Da=new Y(O=>{for(let e=0,a=0;;a++){if(O.next<0){a&&O.acceptToken(Me);break}if(O.next==Ea)e++;else if(O.next==le&&e>=2){a>=3&&O.acceptToken(Me,-2);break}else e=0;O.advance()}});function Ba(O){for(;O;O=O.parent)if(O.name=="svg"||O.name=="math")return!0;return!1}const Ja=new Y((O,e)=>{if(O.next==We&&O.peek(1)==le){let a=e.dialectEnabled(qa)||Ba(e.context);O.acceptToken(a?ba:Fe,2)}else O.next==le&&O.acceptToken(Fe,1)});function _e(O,e,a){let t=2+O.length;return new Y(r=>{for(let s=0,i=0,o=0;;o++){if(r.next<0){o&&r.acceptToken(e);break}if(s==0&&r.next==GO||s==1&&r.next==We||s>=2&&si?r.acceptToken(e,-i):r.acceptToken(a,-(i-2));break}else if((r.next==10||r.next==13)&&o){r.acceptToken(e,1);break}else s=i=0;r.advance()}})}const La=_e("script",Sa,$a),Ka=_e("style",ma,ga),Fa=_e("textarea",Pa,Za),Ma=B({"Text RawText":l.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":l.angleBracket,TagName:l.tagName,"MismatchedCloseTag/TagName":[l.tagName,l.invalid],AttributeName:l.attributeName,"AttributeValue UnquotedAttributeValue":l.attributeValue,Is:l.definitionOperator,"EntityReference CharacterReference":l.character,Comment:l.blockComment,ProcessingInst:l.processingInstruction,DoctypeDecl:l.documentMeta}),Ha=T.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:Ia,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[Ma],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let Q=o.type.id;if(Q==va)return fe(o,n,a);if(Q==Ta)return fe(o,n,t);if(Q==Wa)return fe(o,n,r);if(Q==jO&&s.length){let d=o.node,c=d.firstChild,f=c&&rO(c,n),p;if(f){for(let u of s)if(u.tag==f&&(!u.attrs||u.attrs(p||(p=EO(d,n))))){let $=d.lastChild,m=$.type.id==Ua?$.from:d.to;if(m>c.to)return{parser:u.parser,overlay:[{from:c.to,to:m}]}}}}if(i&&Q==zO){let d=o.node,c;if(c=d.firstChild){let f=i[n.read(c.from,c.to)];if(f)for(let p of f){if(p.tagName&&p.tagName!=rO(d.parent,n))continue;let u=d.lastChild;if(u.type.id==Xe){let $=u.from+1,m=u.lastChild,X=u.to-(m&&m.isError?0:1);if(X>$)return{parser:p.parser,overlay:[{from:$,to:X}]}}else if(u.type.id==RO)return{parser:p.parser,overlay:[{from:u.from,to:u.to}]}}}}return null})}const er=96,iO=1,Or=97,tr=98,sO=2,IO=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],ar=58,rr=40,NO=95,ir=91,te=45,sr=46,or=35,lr=37,nr=38,cr=92,Qr=10;function ne(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function pr(O){return O>=48&&O<=57}const dr=new Y((O,e)=>{for(let a=!1,t=0,r=0;;r++){let{next:s}=O;if(ne(s)||s==te||s==NO||a&&pr(s))!a&&(s!=te||r>0)&&(a=!0),t===r&&s==te&&t++,O.advance();else if(s==cr&&O.peek(1)!=Qr)O.advance(),O.next>-1&&O.advance(),a=!0;else{a&&O.acceptToken(s==rr?Or:t==2&&e.canShift(sO)?sO:tr);break}}}),hr=new Y(O=>{if(IO.includes(O.peek(-1))){let{next:e}=O;(ne(e)||e==NO||e==or||e==sr||e==ir||e==ar||e==te||e==nr)&&O.acceptToken(er)}}),ur=new Y(O=>{if(!IO.includes(O.peek(-1))){let{next:e}=O;if(e==lr&&(O.advance(),O.acceptToken(iO)),ne(e)){do O.advance();while(ne(O.next));O.acceptToken(iO)}}}),fr=B({"AtKeyword import charset namespace keyframes media supports":l.definitionKeyword,"from to selector":l.keyword,NamespaceName:l.namespace,KeyframeName:l.labelName,KeyframeRangeName:l.operatorKeyword,TagName:l.tagName,ClassName:l.className,PseudoClassName:l.constant(l.className),IdName:l.labelName,"FeatureName PropertyName":l.propertyName,AttributeName:l.attributeName,NumberLiteral:l.number,KeywordQuery:l.keyword,UnaryQueryOp:l.operatorKeyword,"CallTag ValueName":l.atom,VariableName:l.variableName,Callee:l.operatorKeyword,Unit:l.unit,"UniversalSelector NestingSelector":l.definitionOperator,MatchOp:l.compareOperator,"ChildOp SiblingOp, LogicOp":l.logicOperator,BinOp:l.arithmeticOperator,Important:l.modifier,Comment:l.blockComment,ColorLiteral:l.color,"ParenthesizedContent StringLiteral":l.string,":":l.punctuation,"PseudoOp #":l.derefOperator,"; ,":l.separator,"( )":l.paren,"[ ]":l.squareBracket,"{ }":l.brace}),Sr={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},$r={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},mr={__proto__:null,not:128,only:128},gr=T.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[hr,ur,dr,1,2,3,4,new se("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:O=>Sr[O]||-1},{term:56,get:O=>$r[O]||-1},{term:98,get:O=>mr[O]||-1}],tokenPrec:1169});let Se=null;function $e(){if(!Se&&typeof document=="object"&&document.body){let{style:O}=document.body,e=[],a=new Set;for(let t in O)t!="cssText"&&t!="cssFloat"&&typeof O[t]=="string"&&(/[A-Z]/.test(t)&&(t=t.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),a.has(t)||(e.push(t),a.add(t)));Se=e.sort().map(t=>({type:"property",label:t}))}return Se||[]}const oO=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(O=>({type:"class",label:O})),lO=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(O=>({type:"keyword",label:O})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(O=>({type:"constant",label:O}))),Pr=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(O=>({type:"type",label:O})),v=/^(\w[\w-]*|-\w[\w-]*|)$/,Zr=/^-(-[\w-]*)?$/;function br(O,e){var a;if((O.name=="("||O.type.isError)&&(O=O.parent||O),O.name!="ArgList")return!1;let t=(a=O.parent)===null||a===void 0?void 0:a.firstChild;return(t==null?void 0:t.name)!="Callee"?!1:e.sliceString(t.from,t.to)=="var"}const nO=new xO,Xr=["Declaration"];function Yr(O){for(let e=O;;){if(e.type.isTop)return e;if(!(e=e.parent))return O}}function DO(O,e,a){if(e.to-e.from>4096){let t=nO.get(e);if(t)return t;let r=[],s=new Set,i=e.cursor(ve.IncludeAnonymous);if(i.firstChild())do for(let o of DO(O,i.node,a))s.has(o.label)||(s.add(o.label),r.push(o));while(i.nextSibling());return nO.set(e,r),r}else{let t=[],r=new Set;return e.cursor().iterate(s=>{var i;if(a(s)&&s.matchContext(Xr)&&((i=s.node.nextSibling)===null||i===void 0?void 0:i.name)==":"){let o=O.sliceString(s.from,s.to);r.has(o)||(r.add(o),t.push({label:o,type:"variable"}))}}),t}}const xr=O=>e=>{let{state:a,pos:t}=e,r=R(a).resolveInner(t,-1),s=r.type.isError&&r.from==r.to-1&&a.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:$e(),validFor:v};if(r.name=="ValueName")return{from:r.from,options:lO,validFor:v};if(r.name=="PseudoClassName")return{from:r.from,options:oO,validFor:v};if(O(r)||(e.explicit||s)&&br(r,a.doc))return{from:O(r)||s?r.from:t,options:DO(a.doc,Yr(r),O),validFor:Zr};if(r.name=="TagName"){for(let{parent:n}=r;n;n=n.parent)if(n.name=="Block")return{from:r.from,options:$e(),validFor:v};return{from:r.from,options:Pr,validFor:v}}if(!e.explicit)return null;let i=r.resolve(t),o=i.childBefore(t);return o&&o.name==":"&&i.name=="PseudoClassSelector"?{from:t,options:oO,validFor:v}:o&&o.name==":"&&i.name=="Declaration"||i.name=="ArgList"?{from:t,options:lO,validFor:v}:i.name=="Block"||i.name=="Styles"?{from:t,options:$e(),validFor:v}:null},kr=xr(O=>O.name=="VariableName"),ce=J.define({name:"css",parser:gr.configure({props:[L.add({Declaration:C()}),K.add({"Block KeyframeList":Te})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function wr(){return new F(ce,ce.data.of({autocomplete:kr}))}const yr=308,cO=1,vr=2,Tr=309,Wr=311,_r=312,Ur=3,Cr=4,qr=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],BO=125,jr=59,QO=47,zr=42,Rr=43,Vr=45,Gr=new WO({start:!1,shift(O,e){return e==Ur||e==Cr||e==Wr?O:e==_r},strict:!1}),Er=new Y((O,e)=>{let{next:a}=O;(a==BO||a==-1||e.context)&&O.acceptToken(Tr)},{contextual:!0,fallback:!0}),Ar=new Y((O,e)=>{let{next:a}=O,t;qr.indexOf(a)>-1||a==QO&&((t=O.peek(1))==QO||t==zr)||a!=BO&&a!=jr&&a!=-1&&!e.context&&O.acceptToken(yr)},{contextual:!0}),Ir=new Y((O,e)=>{let{next:a}=O;if((a==Rr||a==Vr)&&(O.advance(),a==O.next)){O.advance();let t=!e.context&&e.canShift(cO);O.acceptToken(t?cO:vr)}},{contextual:!0}),Nr=B({"get set async static":l.modifier,"for while do if else switch try catch finally return throw break continue default case":l.controlKeyword,"in of await yield void typeof delete instanceof":l.operatorKeyword,"let var const using function class extends":l.definitionKeyword,"import export from":l.moduleKeyword,"with debugger as new":l.keyword,TemplateString:l.special(l.string),super:l.atom,BooleanLiteral:l.bool,this:l.self,null:l.null,Star:l.modifier,VariableName:l.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":l.function(l.variableName),VariableDefinition:l.definition(l.variableName),Label:l.labelName,PropertyName:l.propertyName,PrivatePropertyName:l.special(l.propertyName),"CallExpression/MemberExpression/PropertyName":l.function(l.propertyName),"FunctionDeclaration/VariableDefinition":l.function(l.definition(l.variableName)),"ClassDeclaration/VariableDefinition":l.definition(l.className),PropertyDefinition:l.definition(l.propertyName),PrivatePropertyDefinition:l.definition(l.special(l.propertyName)),UpdateOp:l.updateOperator,"LineComment Hashbang":l.lineComment,BlockComment:l.blockComment,Number:l.number,String:l.string,Escape:l.escape,ArithOp:l.arithmeticOperator,LogicOp:l.logicOperator,BitOp:l.bitwiseOperator,CompareOp:l.compareOperator,RegExp:l.regexp,Equals:l.definitionOperator,Arrow:l.function(l.punctuation),": Spread":l.punctuation,"( )":l.paren,"[ ]":l.squareBracket,"{ }":l.brace,"InterpolationStart InterpolationEnd":l.special(l.brace),".":l.derefOperator,", ;":l.separator,"@":l.meta,TypeName:l.typeName,TypeDefinition:l.definition(l.typeName),"type enum interface implements namespace module declare":l.definitionKeyword,"abstract global Privacy readonly override":l.modifier,"is keyof unique infer":l.operatorKeyword,JSXAttributeValue:l.attributeValue,JSXText:l.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":l.angleBracket,"JSXIdentifier JSXNameSpacedName":l.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":l.attributeName,"JSXBuiltin/JSXIdentifier":l.standard(l.tagName)}),Dr={__proto__:null,export:16,as:21,from:29,default:32,async:37,function:38,extends:48,this:52,true:60,false:60,null:72,void:76,typeof:80,super:98,new:132,delete:148,yield:157,await:161,class:166,public:223,private:223,protected:223,readonly:225,instanceof:244,satisfies:247,in:248,const:250,import:282,keyof:337,unique:341,infer:347,is:383,abstract:403,implements:405,type:407,let:410,var:412,using:415,interface:421,enum:425,namespace:431,module:433,declare:437,global:441,for:460,of:469,while:472,with:476,do:480,if:484,else:486,switch:490,case:496,try:502,catch:506,finally:510,return:514,throw:518,break:522,continue:526,debugger:530},Br={__proto__:null,async:119,get:121,set:123,declare:183,public:185,private:185,protected:185,static:187,abstract:189,override:191,readonly:197,accessor:199,new:387},Jr={__proto__:null,"<":139},Lr=T.deserialize({version:14,states:"$RQSO'#CcO>cQSO'#HZO>kQSO'#HaO>kQSO'#HcO`QUO'#HeO>kQSO'#HgO>kQSO'#HjO>pQSO'#HpO>uQ(C]O'#HvO%[QUO'#HxO?QQ(C]O'#HzO?]Q(C]O'#H|O9kQ(C[O'#IOO?hQ(CjO'#CgO@jQWO'#DgQOQSOOO%[QUO'#D}OAQQSO'#EQO:RQ,UO'#EhOA]QSO'#EhOAhQ`O'#F`OOQQ'#Ce'#CeOOQ(CW'#Dl'#DlOOQ(CW'#Jm'#JmO%[QUO'#JmOOQO'#Jq'#JqOOQO'#Ia'#IaOBhQWO'#EaOOQ(CW'#E`'#E`OCdQ(C`O'#EaOCnQWO'#ETOOQO'#Jp'#JpODSQWO'#JqOEaQWO'#ETOCnQWO'#EaPEnO?MpO'#C`POOO)CDt)CDtOOOO'#IW'#IWOEyOpO,59SOOQ(CY,59S,59SOOOO'#IX'#IXOFXO!bO,59SO%[QUO'#D^OOOO'#IZ'#IZOFgO07`O,59vOOQ(CY,59v,59vOFuQUO'#I[OGYQSO'#JkOI[QbO'#JkO+}QUO'#JkOIcQSO,59|OIyQSO'#EjOJWQSO'#JyOJcQSO'#JxOJcQSO'#JxOJkQSO,5;WOJpQSO'#JwOOQ(CY,5:X,5:XOJwQUO,5:XOLxQ(CjO,5:cOMiQSO,5:kONSQ(C[O'#JvONZQSO'#JuO9ZQSO'#JuONoQSO'#JuONwQSO,5;VON|QSO'#JuO!#UQbO'#JjOOQ(CY'#Cg'#CgO%[QUO'#EPO!#tQ`O,5:pOOQO'#Jr'#JrOOQO-ElOOQQ'#J_'#J_OOQQ,5>m,5>mOOQQ-EpQSO'#HPO9aQSO'#HRO!CgQSO'#HRO:RQ,UO'#HTO!ClQSO'#HTOOQQ,5=i,5=iO!CqQSO'#HUO!DSQSO'#CmO!DXQSO,58}O!DcQSO,58}O!FhQUO,58}OOQQ,58},58}O!FxQ(C[O,58}O%[QUO,58}O!ITQUO'#H]OOQQ'#H^'#H^OOQQ'#H_'#H_O`QUO,5=uO!IkQSO,5=uO`QUO,5={O`QUO,5=}O!IpQSO,5>PO`QUO,5>RO!IuQSO,5>UO!IzQUO,5>[OOQQ,5>b,5>bO%[QUO,5>bO9kQ(C[O,5>dOOQQ,5>f,5>fO!NUQSO,5>fOOQQ,5>h,5>hO!NUQSO,5>hOOQQ,5>j,5>jO!NZQWO'#DYO%[QUO'#JmO!NxQWO'#JmO# gQWO'#DhO# xQWO'#DhO#$ZQUO'#DhO#$bQSO'#JlO#$jQSO,5:RO#$oQSO'#EnO#$}QSO'#JzO#%VQSO,5;XO#%[QWO'#DhO#%iQWO'#ESOOQ(CY,5:l,5:lO%[QUO,5:lO#%pQSO,5:lO>pQSO,5;SO!@}QWO,5;SO!AVQ,UO,5;SO:RQ,UO,5;SO#%xQSO,5@XO#%}Q!LQO,5:pOOQO-E<_-E<_O#'TQ(C`O,5:{OCnQWO,5:oO#'_QWO,5:oOCnQWO,5:{O!@rQ(C[O,5:oOOQ(CW'#Ed'#EdOOQO,5:{,5:{O%[QUO,5:{O#'lQ(C[O,5:{O#'wQ(C[O,5:{O!@}QWO,5:oOOQO,5;R,5;RO#(VQ(C[O,5:{POOO'#IU'#IUP#(kO?MpO,58zPOOO,58z,58zOOOO-EvO+}QUO,5>vOOQO,5>|,5>|O#)VQUO'#I[OOQO-EpQ(CjO1G0yO#>wQ(CjO1G0yO#@oQ(CjO1G0yO#CoQ$IUO'#CgO#EmQ$IUO1G1[O#EtQ$IUO'#JjO!,lQSO1G1bO#FUQ(CjO,5?SOOQ(CW-EkQSO1G3kO$1UQUO1G3mO$5YQUO'#HlOOQQ1G3p1G3pO$5gQSO'#HrO>pQSO'#HtOOQQ1G3v1G3vO$5oQUO1G3vO9kQ(C[O1G3|OOQQ1G4O1G4OOOQ(CW'#GX'#GXO9kQ(C[O1G4QO9kQ(C[O1G4SO$9vQSO,5@XO!*fQUO,5;YO9ZQSO,5;YO>pQSO,5:SO!*fQUO,5:SO!@}QWO,5:SO$9{Q$IUO,5:SOOQO,5;Y,5;YO$:VQWO'#I]O$:mQSO,5@WOOQ(CY1G/m1G/mO$:uQWO'#IcO$;PQSO,5@fOOQ(CW1G0s1G0sO# xQWO,5:SOOQO'#I`'#I`O$;XQWO,5:nOOQ(CY,5:n,5:nO#%sQSO1G0WOOQ(CY1G0W1G0WO%[QUO1G0WOOQ(CY1G0n1G0nO>pQSO1G0nO!@}QWO1G0nO!AVQ,UO1G0nOOQ(CW1G5s1G5sO!@rQ(C[O1G0ZOOQO1G0g1G0gO%[QUO1G0gO$;`Q(C[O1G0gO$;kQ(C[O1G0gO!@}QWO1G0ZOCnQWO1G0ZO$;yQ(C[O1G0gOOQO1G0Z1G0ZO$<_Q(CjO1G0gPOOO-EvO$<{QSO1G5qO$=TQSO1G6OO$=]QbO1G6PO9ZQSO,5>|O$=gQ(CjO1G5|O%[QUO1G5|O$=wQ(C[O1G5|O$>YQSO1G5{O$>YQSO1G5{O9ZQSO1G5{O$>bQSO,5?PO9ZQSO,5?POOQO,5?P,5?PO$>vQSO,5?PO$'TQSO,5?POOQO-EWOOQQ,5>W,5>WO%[QUO'#HmO%6UQSO'#HoOOQQ,5>^,5>^O9ZQSO,5>^OOQQ,5>`,5>`OOQQ7+)b7+)bOOQQ7+)h7+)hOOQQ7+)l7+)lOOQQ7+)n7+)nO%6ZQWO1G5sO%6oQ$IUO1G0tO%6yQSO1G0tOOQO1G/n1G/nO%7UQ$IUO1G/nO>pQSO1G/nO!*fQUO'#DhOOQO,5>w,5>wOOQO-E},5>}OOQO-EpQSO7+&YO!@}QWO7+&YOOQO7+%u7+%uO$<_Q(CjO7+&ROOQO7+&R7+&RO%[QUO7+&RO%7`Q(C[O7+&RO!@rQ(C[O7+%uO!@}QWO7+%uO%7kQ(C[O7+&RO%7yQ(CjO7++hO%[QUO7++hO%8ZQSO7++gO%8ZQSO7++gOOQO1G4k1G4kO9ZQSO1G4kO%8cQSO1G4kOOQO7+%z7+%zO#%sQSO<xOOQO-E<[-E<[O%DoQbO,5>yO%[QUO,5>yOOQO-E<]-E<]O%DyQSO1G5uOOQ(CY<XOOQQ,5>Z,5>ZO&4ZQSO1G3xO9ZQSO7+&`O!*fQUO7+&`OOQO7+%Y7+%YO&4`Q$IUO1G6PO>pQSO7+%YOOQ(CY<pQSO<qQbO1G4eO&>{Q$IUO7+&ZO&APQ$IUO,5=QO&CWQ$IUO,5=SO&ChQ$IUO,5=QO&CxQ$IUO,5=SO&DYQ$IUO,59oO&F]Q$IUO,5pQSO7+)dO'%_QSO<{AN>{O%[QUOAN?XOOQO<a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#IpP#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:Gr,nodeProps:[["group",-26,7,15,17,63,200,204,208,209,211,214,217,227,229,235,237,239,241,244,250,256,258,260,262,264,266,267,"Statement",-32,11,12,26,29,30,36,46,49,50,52,57,65,73,77,79,81,82,104,105,114,115,132,135,137,138,139,140,142,143,163,164,166,"Expression",-23,25,27,31,35,37,39,167,169,171,172,174,175,176,178,179,180,182,183,184,194,196,198,199,"Type",-3,85,97,103,"ClassItem"],["openedBy",32,"InterpolationStart",51,"[",55,"{",70,"(",144,"JSXStartTag",156,"JSXStartTag JSXStartCloseTag"],["closedBy",34,"InterpolationEnd",45,"]",56,"}",71,")",145,"JSXSelfCloseEndTag JSXEndTag",161,"JSXEndTag"]],propSources:[Nr],skippedNodes:[0,3,4,270],repeatNodeCount:37,tokenData:"$Fl(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Nu!`!a$#a!a!b$(n!b!c$,m!c!}Er!}#O$-w#O#P$/R#P#Q$4j#Q#R$5t#R#SEr#S#T$7R#T#o$8]#o#p$s#r#s$@P#s$f%Z$f$g+g$g#BYEr#BY#BZ$AZ#BZ$ISEr$IS$I_$AZ$I_$I|Er$I|$I}$Df$I}$JO$Df$JO$JTEr$JT$JU$AZ$JU$KVEr$KV$KW$AZ$KW&FUEr&FU&FV$AZ&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AZ?HUOEr(n%d_$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$e&j'}pOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'}pOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'}p(Q!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$e&j'}p(Q!b's(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(O#S$e&j't(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$e&j'}p(Q!b't(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$e&j!m$Ip'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'|$(n$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$e&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$`#t$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$`#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$`#t$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ(Q!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$`#t(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hh$e&j'}p(Q!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXUS$e&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSUSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWUS(Q!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]US$e&j'}pOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWUS'}pOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYUS'}p(Q!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$e&j!SSOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$e&j!SSO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!SSOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!SS#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$e&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$e&j(Q!b!SSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(Q!b!SSOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(Q!b!SSOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(Q!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$e&j(Q!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$e&j'}p(Q!bm$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#Dr[O]||-1},{term:334,get:O=>Br[O]||-1},{term:68,get:O=>Jr[O]||-1}],tokenPrec:14574}),JO=[P("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),P("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),P("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),P("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),P("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),P(`try { +import{S as bt,i as Xt,s as Yt,e as xt,f as kt,U as M,g as wt,y as Ae,o as yt,J as vt,K as Tt,L as Wt,I as _t,C as Ut,M as Ct}from"./index-26bf667a.js";import{P as qt,N as jt,v as zt,D as Rt,w as ye,T as ee,I as ve,x as B,y as l,z as Vt,L as J,A as L,B as C,F as K,G as Te,H as F,u as R,J as xO,K as kO,M as wO,E as U,O as yO,Q as P,R as Gt,U as Et,V as vO,W as At,X as It,a as V,h as Nt,b as Dt,c as Bt,d as Jt,e as Lt,s as Kt,t as Ft,f as Mt,g as Ht,r as ea,i as Oa,k as ta,j as aa,l as ra,m as ia,n as sa,o as oa,p as la,q as Ie,C as H}from"./index-9ee652b3.js";class re{constructor(e,a,t,r,s,i,o,n,Q,d=0,c){this.p=e,this.stack=a,this.state=t,this.reducePos=r,this.pos=s,this.score=i,this.buffer=o,this.bufferBase=n,this.curContext=Q,this.lookAhead=d,this.parent=c}toString(){return`[${this.stack.filter((e,a)=>a%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,a,t=0){let r=e.parser.context;return new re(e,[],a,t,t,0,[],0,r?new Ne(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,a){this.stack.push(this.state,a,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var a;let t=e>>19,r=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(r);if(i&&(this.score+=i),t==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(!((a=this.p.parser.nodeSet.types[r])===null||a===void 0)&&a.isAnonymous)&&(n==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=Q):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(r,n)}storeNode(e,a,t,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&i.buffer[o-4]==0&&i.buffer[o-1]>-1){if(a==t)return;if(i.buffer[o-2]>=a){i.buffer[o-2]=t;return}}}if(!s||this.pos==t)this.buffer.push(e,a,t,r);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>t;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=a,this.buffer[i+2]=t,this.buffer[i+3]=r}}shift(e,a,t,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(a,t),a<=this.p.parser.maxNode&&this.buffer.push(a,t,r,4);else{let s=e,{parser:i}=this.p;(r>this.pos||a<=i.maxNode)&&(this.pos=r,i.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,t),this.shiftContext(a,t),a<=i.maxNode&&this.buffer.push(a,t,r,4)}}apply(e,a,t,r){e&65536?this.reduce(e):this.shift(e,a,t,r)}useNode(e,a){let t=this.p.reused.length-1;(t<0||this.p.reused[t]!=e)&&(this.p.reused.push(e),t++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(a,r),this.buffer.push(t,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,a=e.buffer.length;for(;a>0&&e.buffer[a-2]>e.reducePos;)a-=4;let t=e.buffer.slice(a),r=e.bufferBase+a;for(;e&&r==e.bufferBase;)e=e.parent;return new re(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,t,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,a){let t=e<=this.p.parser.maxNode;t&&this.storeNode(e,this.pos,a,4),this.storeNode(0,this.pos,a,t?8:4),this.pos=this.reducePos=a,this.score-=190}canShift(e){for(let a=new na(this);;){let t=this.p.parser.stateSlot(a.state,4)||this.p.parser.hasAction(a.state,e);if(t==0)return!1;if(!(t&65536))return!0;a.reduce(t)}}recoverByInsert(e){if(this.stack.length>=300)return[];let a=this.p.parser.nextStates(this.state);if(a.length>8||this.stack.length>=120){let r=[];for(let s=0,i;sn&1&&o==i)||r.push(a[s],i)}a=r}let t=[];for(let r=0;r>19,r=a&65535,s=this.stack.length-t*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;a=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(a),!0}findForcedReduction(){let{parser:e}=this.p,a=[],t=(r,s)=>{if(!a.includes(r))return a.push(r),e.allActions(r,i=>{if(!(i&393216))if(i&65536){let o=(i>>19)-s;if(o>1){let n=i&65535,Q=this.stack.length-o*3;if(Q>=0&&e.getGoto(this.stack[Q],n,!1)>=0)return o<<19|65536|n}}else{let o=t(i,s+1);if(o!=null)return o}})};return t(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let a=0;athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Ne{constructor(e,a){this.tracker=e,this.context=a,this.hash=e.strict?e.hash(a):0}}class na{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let a=e&65535,t=e>>19;t==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(t-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],a,!0);this.state=r}}class ie{constructor(e,a,t){this.stack=e,this.pos=a,this.index=t,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,a=e.bufferBase+e.buffer.length){return new ie(e,a,a-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new ie(this.stack,this.pos,this.index)}}function I(O,e=Uint16Array){if(typeof O!="string")return O;let a=null;for(let t=0,r=0;t=92&&i--,i>=34&&i--;let n=i-32;if(n>=46&&(n-=46,o=!0),s+=n,o)break;s*=46}a?a[r++]=s:a=new e(s)}return a}class Oe{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const De=new Oe;class ca{constructor(e,a){this.input=e,this.ranges=a,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=De,this.rangeIndex=0,this.pos=this.chunkPos=a[0].from,this.range=a[0],this.end=a[a.length-1].to,this.readNext()}resolveOffset(e,a){let t=this.range,r=this.rangeIndex,s=this.pos+e;for(;st.to:s>=t.to;){if(r==this.ranges.length-1)return null;let i=this.ranges[++r];s+=i.from-t.to,t=i}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,a.from);return this.end}peek(e){let a=this.chunkOff+e,t,r;if(a>=0&&a=this.chunk2Pos&&to.to&&(this.chunk2=this.chunk2.slice(0,o.to-t)),r=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),r}acceptToken(e,a=0){let t=a?this.resolveOffset(a,-1):this.pos;if(t==null||t=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,a){if(a?(this.token=a,a.start=e,a.lookAhead=e+1,a.value=a.extended=-1):this.token=De,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&a<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,a-this.chunkPos);if(e>=this.chunk2Pos&&a<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,a-this.chunk2Pos);if(e>=this.range.from&&a<=this.range.to)return this.input.read(e,a);let t="";for(let r of this.ranges){if(r.from>=a)break;r.to>e&&(t+=this.input.read(Math.max(r.from,e),Math.min(r.to,a)))}return t}}class q{constructor(e,a){this.data=e,this.id=a}token(e,a){let{parser:t}=a.p;TO(this.data,e,a,this.id,t.data,t.tokenPrecTable)}}q.prototype.contextual=q.prototype.fallback=q.prototype.extend=!1;class se{constructor(e,a,t){this.precTable=a,this.elseToken=t,this.data=typeof e=="string"?I(e):e}token(e,a){let t=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(TO(this.data,e,a,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(t,e.token),e.acceptToken(this.elseToken,r))}}se.prototype.contextual=q.prototype.fallback=q.prototype.extend=!1;class Y{constructor(e,a={}){this.token=e,this.contextual=!!a.contextual,this.fallback=!!a.fallback,this.extend=!!a.extend}}function TO(O,e,a,t,r,s){let i=0,o=1<0){let u=O[p];if(n.allows(u)&&(e.token.value==-1||e.token.value==u||Qa(u,e.token.value,r,s))){e.acceptToken(u);break}}let d=e.next,c=0,f=O[i+2];if(e.next<0&&f>c&&O[Q+f*3-3]==65535){i=O[Q+f*3-1];continue e}for(;c>1,u=Q+p+(p<<1),$=O[u],m=O[u+1]||65536;if(d<$)f=p;else if(d>=m)c=p+1;else{i=O[u+2],e.advance();continue e}}break}}function Be(O,e,a){for(let t=e,r;(r=O[t])!=65535;t++)if(r==a)return t-e;return-1}function Qa(O,e,a,t){let r=Be(a,t,e);return r<0||Be(a,t,O)e)&&!t.type.isError)return a<0?Math.max(0,Math.min(t.to-1,e-25)):Math.min(O.length,Math.max(t.from+1,e+25));if(a<0?t.prevSibling():t.nextSibling())break;if(!t.parent())return a<0?0:O.length}}class pa{constructor(e,a){this.fragments=e,this.nodeSet=a,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Je(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Je(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=i,null;if(s instanceof ee){if(i==e){if(i=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[a]++,this.nextStart=i+s.length}}}class da{constructor(e,a){this.stream=a,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(t=>new Oe)}getActions(e){let a=0,t=null,{parser:r}=e.p,{tokenizers:s}=r,i=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,n=0;for(let Q=0;Qc.end+25&&(n=Math.max(c.lookAhead,n)),c.value!=0)){let f=a;if(c.extended>-1&&(a=this.addActions(e,c.extended,c.end,a)),a=this.addActions(e,c.value,c.end,a),!d.extend&&(t=c,a>f))break}}for(;this.actions.length>a;)this.actions.pop();return n&&e.setLookAhead(n),!t&&e.pos==this.stream.end&&(t=new Oe,t.value=e.p.parser.eofTerm,t.start=t.end=e.pos,a=this.addActions(e,t.value,t.end,a)),this.mainToken=t,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let a=new Oe,{pos:t,p:r}=e;return a.start=t,a.end=Math.min(t+1,r.stream.end),a.value=t==r.stream.end?r.parser.eofTerm:0,a}updateCachedToken(e,a,t){let r=this.stream.clipPos(t.pos);if(a.token(this.stream.reset(r,e),t),e.value>-1){let{parser:s}=t.p;for(let i=0;i=0&&t.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,a,t,r){for(let s=0;se.bufferLength*4?new pa(t,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,a=this.minStackPos,t=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;ia)t.push(o);else{if(this.advanceStack(o,t,e))continue;{r||(r=[],s=[]),r.push(o);let n=this.tokens.getMainToken(o);s.push(n.value,n.end)}}break}}if(!t.length){let i=r&&fa(r);if(i)return Z&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw Z&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+a);this.recovering||(this.recovering=5)}if(this.recovering&&r){let i=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,t);if(i)return Z&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(t.length>i)for(t.sort((o,n)=>n.score-o.score);t.length>i;)t.pop();t.some(o=>o.reducePos>a)&&this.recovering--}else if(t.length>1){e:for(let i=0;i500&&Q.buffer.length>500)if((o.score-Q.score||o.buffer.length-Q.buffer.length)>0)t.splice(n--,1);else{t.splice(i--,1);continue e}}}t.length>12&&t.splice(12,t.length-12)}this.minStackPos=t[0].pos;for(let i=1;i ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let Q=e.curContext&&e.curContext.tracker.strict,d=Q?e.curContext.hash:0;for(let c=this.fragments.nodeAt(r);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!Q||(c.prop(ye.contextHash)||0)==d))return e.useNode(c,f),Z&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof ee)||c.children.length==0||c.positions[0]>0)break;let p=c.children[0];if(p instanceof ee&&c.positions[0]==0)c=p;else break}}let o=s.stateSlot(e.state,4);if(o>0)return e.reduce(o),Z&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let n=this.tokens.getActions(e);for(let Q=0;Qr?a.push(u):t.push(u)}return!1}advanceFully(e,a){let t=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>t)return Le(e,a),!0}}runRecovery(e,a,t){let r=null,s=!1;for(let i=0;i ":"";if(o.deadEnd&&(s||(s=!0,o.restart(),Z&&console.log(d+this.stackID(o)+" (restarted)"),this.advanceFully(o,t))))continue;let c=o.split(),f=d;for(let p=0;c.forceReduce()&&p<10&&(Z&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,t));p++)Z&&(f=this.stackID(c)+" -> ");for(let p of o.recoverByInsert(n))Z&&console.log(d+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,t);this.stream.end>o.pos?(Q==o.pos&&(Q++,n=0),o.recoverByDelete(n,Q),Z&&console.log(d+this.stackID(o)+` (via recover-delete ${this.parser.getName(n)})`),Le(o,t)):(!r||r.scoreO;class WO{constructor(e){this.start=e.start,this.shift=e.shift||he,this.reduce=e.reduce||he,this.reuse=e.reuse||he,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class T extends qt{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let a=e.nodeNames.split(" ");this.minRepeatTerm=a.length;for(let o=0;oe.topRules[o][1]),r=[];for(let o=0;o=0)s(d,n,o[Q++]);else{let c=o[Q+-d];for(let f=-d;f>0;f--)s(o[Q++],n,c);Q++}}}this.nodeSet=new jt(a.map((o,n)=>zt.define({name:n>=this.minRepeatTerm?void 0:o,id:n,props:r[n],top:t.indexOf(n)>-1,error:n==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(n)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Rt;let i=I(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new q(i,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,a,t){let r=new ha(this,e,a,t);for(let s of this.wrappers)r=s(r,e,a,t);return r}getGoto(e,a,t=!1){let r=this.goto;if(a>=r[0])return-1;for(let s=r[a+1];;){let i=r[s++],o=i&1,n=r[s++];if(o&&t)return n;for(let Q=s+(i>>1);s0}validAction(e,a){return!!this.allActions(e,t=>t==a?!0:null)}allActions(e,a){let t=this.stateSlot(e,4),r=t?a(t):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=w(this.data,s+2);else break;r=a(w(this.data,s+1))}return r}nextStates(e){let a=[];for(let t=this.stateSlot(e,1);;t+=3){if(this.data[t]==65535)if(this.data[t+1]==1)t=w(this.data,t+2);else break;if(!(this.data[t+2]&1)){let r=this.data[t+1];a.some((s,i)=>i&1&&s==r)||a.push(this.data[t],r)}}return a}configure(e){let a=Object.assign(Object.create(T.prototype),this);if(e.props&&(a.nodeSet=this.nodeSet.extend(...e.props)),e.top){let t=this.topRules[e.top];if(!t)throw new RangeError(`Invalid top rule name ${e.top}`);a.top=t}return e.tokenizers&&(a.tokenizers=this.tokenizers.map(t=>{let r=e.tokenizers.find(s=>s.from==t);return r?r.to:t})),e.specializers&&(a.specializers=this.specializers.slice(),a.specializerSpecs=this.specializerSpecs.map((t,r)=>{let s=e.specializers.find(o=>o.from==t.external);if(!s)return t;let i=Object.assign(Object.assign({},t),{external:s.to});return a.specializers[r]=Ke(i),i})),e.contextTracker&&(a.context=e.contextTracker),e.dialect&&(a.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(a.strict=e.strict),e.wrap&&(a.wrappers=a.wrappers.concat(e.wrap)),e.bufferLength!=null&&(a.bufferLength=e.bufferLength),a}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let a=this.dynamicPrecedences;return a==null?0:a[e]||0}parseDialect(e){let a=Object.keys(this.dialects),t=a.map(()=>!1);if(e)for(let s of e.split(" ")){let i=a.indexOf(s);i>=0&&(t[i]=!0)}let r=null;for(let s=0;st)&&a.p.parser.stateFlag(a.state,2)&&(!e||e.scoreO.external(a,t)<<1|e}return O.get}const Sa=54,$a=1,ma=55,ga=2,Pa=56,Za=3,Fe=4,ba=5,oe=6,_O=7,UO=8,CO=9,qO=10,Xa=11,Ya=12,xa=13,ue=57,ka=14,Me=58,jO=20,wa=22,zO=23,ya=24,Xe=26,RO=27,va=28,Ta=31,Wa=34,_a=36,Ua=37,Ca=0,qa=1,ja={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},za={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},He={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function Ra(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function VO(O){return O==9||O==10||O==13||O==32}let eO=null,OO=null,tO=0;function Ye(O,e){let a=O.pos+e;if(tO==a&&OO==O)return eO;let t=O.peek(e);for(;VO(t);)t=O.peek(++e);let r="";for(;Ra(t);)r+=String.fromCharCode(t),t=O.peek(++e);return OO=O,tO=a,eO=r?r.toLowerCase():t==Va||t==Ga?void 0:null}const GO=60,le=62,We=47,Va=63,Ga=33,Ea=45;function aO(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let a=0;a-1?new aO(Ye(t,1)||"",O):O},reduce(O,e){return e==jO&&O?O.parent:O},reuse(O,e,a,t){let r=e.type.id;return r==oe||r==_a?new aO(Ye(t,1)||"",O):O},hash(O){return O?O.hash:0},strict:!1}),Na=new Y((O,e)=>{if(O.next!=GO){O.next<0&&e.context&&O.acceptToken(ue);return}O.advance();let a=O.next==We;a&&O.advance();let t=Ye(O,0);if(t===void 0)return;if(!t)return O.acceptToken(a?ka:oe);let r=e.context?e.context.name:null;if(a){if(t==r)return O.acceptToken(Xa);if(r&&za[r])return O.acceptToken(ue,-2);if(e.dialectEnabled(Ca))return O.acceptToken(Ya);for(let s=e.context;s;s=s.parent)if(s.name==t)return;O.acceptToken(xa)}else{if(t=="script")return O.acceptToken(_O);if(t=="style")return O.acceptToken(UO);if(t=="textarea")return O.acceptToken(CO);if(ja.hasOwnProperty(t))return O.acceptToken(qO);r&&He[r]&&He[r][t]?O.acceptToken(ue,-1):O.acceptToken(oe)}},{contextual:!0}),Da=new Y(O=>{for(let e=0,a=0;;a++){if(O.next<0){a&&O.acceptToken(Me);break}if(O.next==Ea)e++;else if(O.next==le&&e>=2){a>=3&&O.acceptToken(Me,-2);break}else e=0;O.advance()}});function Ba(O){for(;O;O=O.parent)if(O.name=="svg"||O.name=="math")return!0;return!1}const Ja=new Y((O,e)=>{if(O.next==We&&O.peek(1)==le){let a=e.dialectEnabled(qa)||Ba(e.context);O.acceptToken(a?ba:Fe,2)}else O.next==le&&O.acceptToken(Fe,1)});function _e(O,e,a){let t=2+O.length;return new Y(r=>{for(let s=0,i=0,o=0;;o++){if(r.next<0){o&&r.acceptToken(e);break}if(s==0&&r.next==GO||s==1&&r.next==We||s>=2&&si?r.acceptToken(e,-i):r.acceptToken(a,-(i-2));break}else if((r.next==10||r.next==13)&&o){r.acceptToken(e,1);break}else s=i=0;r.advance()}})}const La=_e("script",Sa,$a),Ka=_e("style",ma,ga),Fa=_e("textarea",Pa,Za),Ma=B({"Text RawText":l.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":l.angleBracket,TagName:l.tagName,"MismatchedCloseTag/TagName":[l.tagName,l.invalid],AttributeName:l.attributeName,"AttributeValue UnquotedAttributeValue":l.attributeValue,Is:l.definitionOperator,"EntityReference CharacterReference":l.character,Comment:l.blockComment,ProcessingInst:l.processingInstruction,DoctypeDecl:l.documentMeta}),Ha=T.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:Ia,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[Ma],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let Q=o.type.id;if(Q==va)return fe(o,n,a);if(Q==Ta)return fe(o,n,t);if(Q==Wa)return fe(o,n,r);if(Q==jO&&s.length){let d=o.node,c=d.firstChild,f=c&&rO(c,n),p;if(f){for(let u of s)if(u.tag==f&&(!u.attrs||u.attrs(p||(p=EO(d,n))))){let $=d.lastChild,m=$.type.id==Ua?$.from:d.to;if(m>c.to)return{parser:u.parser,overlay:[{from:c.to,to:m}]}}}}if(i&&Q==zO){let d=o.node,c;if(c=d.firstChild){let f=i[n.read(c.from,c.to)];if(f)for(let p of f){if(p.tagName&&p.tagName!=rO(d.parent,n))continue;let u=d.lastChild;if(u.type.id==Xe){let $=u.from+1,m=u.lastChild,X=u.to-(m&&m.isError?0:1);if(X>$)return{parser:p.parser,overlay:[{from:$,to:X}]}}else if(u.type.id==RO)return{parser:p.parser,overlay:[{from:u.from,to:u.to}]}}}}return null})}const er=96,iO=1,Or=97,tr=98,sO=2,IO=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],ar=58,rr=40,NO=95,ir=91,te=45,sr=46,or=35,lr=37,nr=38,cr=92,Qr=10;function ne(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function pr(O){return O>=48&&O<=57}const dr=new Y((O,e)=>{for(let a=!1,t=0,r=0;;r++){let{next:s}=O;if(ne(s)||s==te||s==NO||a&&pr(s))!a&&(s!=te||r>0)&&(a=!0),t===r&&s==te&&t++,O.advance();else if(s==cr&&O.peek(1)!=Qr)O.advance(),O.next>-1&&O.advance(),a=!0;else{a&&O.acceptToken(s==rr?Or:t==2&&e.canShift(sO)?sO:tr);break}}}),hr=new Y(O=>{if(IO.includes(O.peek(-1))){let{next:e}=O;(ne(e)||e==NO||e==or||e==sr||e==ir||e==ar||e==te||e==nr)&&O.acceptToken(er)}}),ur=new Y(O=>{if(!IO.includes(O.peek(-1))){let{next:e}=O;if(e==lr&&(O.advance(),O.acceptToken(iO)),ne(e)){do O.advance();while(ne(O.next));O.acceptToken(iO)}}}),fr=B({"AtKeyword import charset namespace keyframes media supports":l.definitionKeyword,"from to selector":l.keyword,NamespaceName:l.namespace,KeyframeName:l.labelName,KeyframeRangeName:l.operatorKeyword,TagName:l.tagName,ClassName:l.className,PseudoClassName:l.constant(l.className),IdName:l.labelName,"FeatureName PropertyName":l.propertyName,AttributeName:l.attributeName,NumberLiteral:l.number,KeywordQuery:l.keyword,UnaryQueryOp:l.operatorKeyword,"CallTag ValueName":l.atom,VariableName:l.variableName,Callee:l.operatorKeyword,Unit:l.unit,"UniversalSelector NestingSelector":l.definitionOperator,MatchOp:l.compareOperator,"ChildOp SiblingOp, LogicOp":l.logicOperator,BinOp:l.arithmeticOperator,Important:l.modifier,Comment:l.blockComment,ColorLiteral:l.color,"ParenthesizedContent StringLiteral":l.string,":":l.punctuation,"PseudoOp #":l.derefOperator,"; ,":l.separator,"( )":l.paren,"[ ]":l.squareBracket,"{ }":l.brace}),Sr={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},$r={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},mr={__proto__:null,not:128,only:128},gr=T.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[hr,ur,dr,1,2,3,4,new se("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:O=>Sr[O]||-1},{term:56,get:O=>$r[O]||-1},{term:98,get:O=>mr[O]||-1}],tokenPrec:1169});let Se=null;function $e(){if(!Se&&typeof document=="object"&&document.body){let{style:O}=document.body,e=[],a=new Set;for(let t in O)t!="cssText"&&t!="cssFloat"&&typeof O[t]=="string"&&(/[A-Z]/.test(t)&&(t=t.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),a.has(t)||(e.push(t),a.add(t)));Se=e.sort().map(t=>({type:"property",label:t}))}return Se||[]}const oO=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(O=>({type:"class",label:O})),lO=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(O=>({type:"keyword",label:O})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(O=>({type:"constant",label:O}))),Pr=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(O=>({type:"type",label:O})),v=/^(\w[\w-]*|-\w[\w-]*|)$/,Zr=/^-(-[\w-]*)?$/;function br(O,e){var a;if((O.name=="("||O.type.isError)&&(O=O.parent||O),O.name!="ArgList")return!1;let t=(a=O.parent)===null||a===void 0?void 0:a.firstChild;return(t==null?void 0:t.name)!="Callee"?!1:e.sliceString(t.from,t.to)=="var"}const nO=new xO,Xr=["Declaration"];function Yr(O){for(let e=O;;){if(e.type.isTop)return e;if(!(e=e.parent))return O}}function DO(O,e,a){if(e.to-e.from>4096){let t=nO.get(e);if(t)return t;let r=[],s=new Set,i=e.cursor(ve.IncludeAnonymous);if(i.firstChild())do for(let o of DO(O,i.node,a))s.has(o.label)||(s.add(o.label),r.push(o));while(i.nextSibling());return nO.set(e,r),r}else{let t=[],r=new Set;return e.cursor().iterate(s=>{var i;if(a(s)&&s.matchContext(Xr)&&((i=s.node.nextSibling)===null||i===void 0?void 0:i.name)==":"){let o=O.sliceString(s.from,s.to);r.has(o)||(r.add(o),t.push({label:o,type:"variable"}))}}),t}}const xr=O=>e=>{let{state:a,pos:t}=e,r=R(a).resolveInner(t,-1),s=r.type.isError&&r.from==r.to-1&&a.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:$e(),validFor:v};if(r.name=="ValueName")return{from:r.from,options:lO,validFor:v};if(r.name=="PseudoClassName")return{from:r.from,options:oO,validFor:v};if(O(r)||(e.explicit||s)&&br(r,a.doc))return{from:O(r)||s?r.from:t,options:DO(a.doc,Yr(r),O),validFor:Zr};if(r.name=="TagName"){for(let{parent:n}=r;n;n=n.parent)if(n.name=="Block")return{from:r.from,options:$e(),validFor:v};return{from:r.from,options:Pr,validFor:v}}if(!e.explicit)return null;let i=r.resolve(t),o=i.childBefore(t);return o&&o.name==":"&&i.name=="PseudoClassSelector"?{from:t,options:oO,validFor:v}:o&&o.name==":"&&i.name=="Declaration"||i.name=="ArgList"?{from:t,options:lO,validFor:v}:i.name=="Block"||i.name=="Styles"?{from:t,options:$e(),validFor:v}:null},kr=xr(O=>O.name=="VariableName"),ce=J.define({name:"css",parser:gr.configure({props:[L.add({Declaration:C()}),K.add({"Block KeyframeList":Te})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function wr(){return new F(ce,ce.data.of({autocomplete:kr}))}const yr=308,cO=1,vr=2,Tr=309,Wr=311,_r=312,Ur=3,Cr=4,qr=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],BO=125,jr=59,QO=47,zr=42,Rr=43,Vr=45,Gr=new WO({start:!1,shift(O,e){return e==Ur||e==Cr||e==Wr?O:e==_r},strict:!1}),Er=new Y((O,e)=>{let{next:a}=O;(a==BO||a==-1||e.context)&&O.acceptToken(Tr)},{contextual:!0,fallback:!0}),Ar=new Y((O,e)=>{let{next:a}=O,t;qr.indexOf(a)>-1||a==QO&&((t=O.peek(1))==QO||t==zr)||a!=BO&&a!=jr&&a!=-1&&!e.context&&O.acceptToken(yr)},{contextual:!0}),Ir=new Y((O,e)=>{let{next:a}=O;if((a==Rr||a==Vr)&&(O.advance(),a==O.next)){O.advance();let t=!e.context&&e.canShift(cO);O.acceptToken(t?cO:vr)}},{contextual:!0}),Nr=B({"get set async static":l.modifier,"for while do if else switch try catch finally return throw break continue default case":l.controlKeyword,"in of await yield void typeof delete instanceof":l.operatorKeyword,"let var const using function class extends":l.definitionKeyword,"import export from":l.moduleKeyword,"with debugger as new":l.keyword,TemplateString:l.special(l.string),super:l.atom,BooleanLiteral:l.bool,this:l.self,null:l.null,Star:l.modifier,VariableName:l.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":l.function(l.variableName),VariableDefinition:l.definition(l.variableName),Label:l.labelName,PropertyName:l.propertyName,PrivatePropertyName:l.special(l.propertyName),"CallExpression/MemberExpression/PropertyName":l.function(l.propertyName),"FunctionDeclaration/VariableDefinition":l.function(l.definition(l.variableName)),"ClassDeclaration/VariableDefinition":l.definition(l.className),PropertyDefinition:l.definition(l.propertyName),PrivatePropertyDefinition:l.definition(l.special(l.propertyName)),UpdateOp:l.updateOperator,"LineComment Hashbang":l.lineComment,BlockComment:l.blockComment,Number:l.number,String:l.string,Escape:l.escape,ArithOp:l.arithmeticOperator,LogicOp:l.logicOperator,BitOp:l.bitwiseOperator,CompareOp:l.compareOperator,RegExp:l.regexp,Equals:l.definitionOperator,Arrow:l.function(l.punctuation),": Spread":l.punctuation,"( )":l.paren,"[ ]":l.squareBracket,"{ }":l.brace,"InterpolationStart InterpolationEnd":l.special(l.brace),".":l.derefOperator,", ;":l.separator,"@":l.meta,TypeName:l.typeName,TypeDefinition:l.definition(l.typeName),"type enum interface implements namespace module declare":l.definitionKeyword,"abstract global Privacy readonly override":l.modifier,"is keyof unique infer":l.operatorKeyword,JSXAttributeValue:l.attributeValue,JSXText:l.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":l.angleBracket,"JSXIdentifier JSXNameSpacedName":l.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":l.attributeName,"JSXBuiltin/JSXIdentifier":l.standard(l.tagName)}),Dr={__proto__:null,export:16,as:21,from:29,default:32,async:37,function:38,extends:48,this:52,true:60,false:60,null:72,void:76,typeof:80,super:98,new:132,delete:148,yield:157,await:161,class:166,public:223,private:223,protected:223,readonly:225,instanceof:244,satisfies:247,in:248,const:250,import:282,keyof:337,unique:341,infer:347,is:383,abstract:403,implements:405,type:407,let:410,var:412,using:415,interface:421,enum:425,namespace:431,module:433,declare:437,global:441,for:460,of:469,while:472,with:476,do:480,if:484,else:486,switch:490,case:496,try:502,catch:506,finally:510,return:514,throw:518,break:522,continue:526,debugger:530},Br={__proto__:null,async:119,get:121,set:123,declare:183,public:185,private:185,protected:185,static:187,abstract:189,override:191,readonly:197,accessor:199,new:387},Jr={__proto__:null,"<":139},Lr=T.deserialize({version:14,states:"$RQSO'#CcO>cQSO'#HZO>kQSO'#HaO>kQSO'#HcO`QUO'#HeO>kQSO'#HgO>kQSO'#HjO>pQSO'#HpO>uQ(C]O'#HvO%[QUO'#HxO?QQ(C]O'#HzO?]Q(C]O'#H|O9kQ(C[O'#IOO?hQ(CjO'#CgO@jQWO'#DgQOQSOOO%[QUO'#D}OAQQSO'#EQO:RQ,UO'#EhOA]QSO'#EhOAhQ`O'#F`OOQQ'#Ce'#CeOOQ(CW'#Dl'#DlOOQ(CW'#Jm'#JmO%[QUO'#JmOOQO'#Jq'#JqOOQO'#Ia'#IaOBhQWO'#EaOOQ(CW'#E`'#E`OCdQ(C`O'#EaOCnQWO'#ETOOQO'#Jp'#JpODSQWO'#JqOEaQWO'#ETOCnQWO'#EaPEnO?MpO'#C`POOO)CDt)CDtOOOO'#IW'#IWOEyOpO,59SOOQ(CY,59S,59SOOOO'#IX'#IXOFXO!bO,59SO%[QUO'#D^OOOO'#IZ'#IZOFgO07`O,59vOOQ(CY,59v,59vOFuQUO'#I[OGYQSO'#JkOI[QbO'#JkO+}QUO'#JkOIcQSO,59|OIyQSO'#EjOJWQSO'#JyOJcQSO'#JxOJcQSO'#JxOJkQSO,5;WOJpQSO'#JwOOQ(CY,5:X,5:XOJwQUO,5:XOLxQ(CjO,5:cOMiQSO,5:kONSQ(C[O'#JvONZQSO'#JuO9ZQSO'#JuONoQSO'#JuONwQSO,5;VON|QSO'#JuO!#UQbO'#JjOOQ(CY'#Cg'#CgO%[QUO'#EPO!#tQ`O,5:pOOQO'#Jr'#JrOOQO-ElOOQQ'#J_'#J_OOQQ,5>m,5>mOOQQ-EpQSO'#HPO9aQSO'#HRO!CgQSO'#HRO:RQ,UO'#HTO!ClQSO'#HTOOQQ,5=i,5=iO!CqQSO'#HUO!DSQSO'#CmO!DXQSO,58}O!DcQSO,58}O!FhQUO,58}OOQQ,58},58}O!FxQ(C[O,58}O%[QUO,58}O!ITQUO'#H]OOQQ'#H^'#H^OOQQ'#H_'#H_O`QUO,5=uO!IkQSO,5=uO`QUO,5={O`QUO,5=}O!IpQSO,5>PO`QUO,5>RO!IuQSO,5>UO!IzQUO,5>[OOQQ,5>b,5>bO%[QUO,5>bO9kQ(C[O,5>dOOQQ,5>f,5>fO!NUQSO,5>fOOQQ,5>h,5>hO!NUQSO,5>hOOQQ,5>j,5>jO!NZQWO'#DYO%[QUO'#JmO!NxQWO'#JmO# gQWO'#DhO# xQWO'#DhO#$ZQUO'#DhO#$bQSO'#JlO#$jQSO,5:RO#$oQSO'#EnO#$}QSO'#JzO#%VQSO,5;XO#%[QWO'#DhO#%iQWO'#ESOOQ(CY,5:l,5:lO%[QUO,5:lO#%pQSO,5:lO>pQSO,5;SO!@}QWO,5;SO!AVQ,UO,5;SO:RQ,UO,5;SO#%xQSO,5@XO#%}Q!LQO,5:pOOQO-E<_-E<_O#'TQ(C`O,5:{OCnQWO,5:oO#'_QWO,5:oOCnQWO,5:{O!@rQ(C[O,5:oOOQ(CW'#Ed'#EdOOQO,5:{,5:{O%[QUO,5:{O#'lQ(C[O,5:{O#'wQ(C[O,5:{O!@}QWO,5:oOOQO,5;R,5;RO#(VQ(C[O,5:{POOO'#IU'#IUP#(kO?MpO,58zPOOO,58z,58zOOOO-EvO+}QUO,5>vOOQO,5>|,5>|O#)VQUO'#I[OOQO-EpQ(CjO1G0yO#>wQ(CjO1G0yO#@oQ(CjO1G0yO#CoQ$IUO'#CgO#EmQ$IUO1G1[O#EtQ$IUO'#JjO!,lQSO1G1bO#FUQ(CjO,5?SOOQ(CW-EkQSO1G3kO$1UQUO1G3mO$5YQUO'#HlOOQQ1G3p1G3pO$5gQSO'#HrO>pQSO'#HtOOQQ1G3v1G3vO$5oQUO1G3vO9kQ(C[O1G3|OOQQ1G4O1G4OOOQ(CW'#GX'#GXO9kQ(C[O1G4QO9kQ(C[O1G4SO$9vQSO,5@XO!*fQUO,5;YO9ZQSO,5;YO>pQSO,5:SO!*fQUO,5:SO!@}QWO,5:SO$9{Q$IUO,5:SOOQO,5;Y,5;YO$:VQWO'#I]O$:mQSO,5@WOOQ(CY1G/m1G/mO$:uQWO'#IcO$;PQSO,5@fOOQ(CW1G0s1G0sO# xQWO,5:SOOQO'#I`'#I`O$;XQWO,5:nOOQ(CY,5:n,5:nO#%sQSO1G0WOOQ(CY1G0W1G0WO%[QUO1G0WOOQ(CY1G0n1G0nO>pQSO1G0nO!@}QWO1G0nO!AVQ,UO1G0nOOQ(CW1G5s1G5sO!@rQ(C[O1G0ZOOQO1G0g1G0gO%[QUO1G0gO$;`Q(C[O1G0gO$;kQ(C[O1G0gO!@}QWO1G0ZOCnQWO1G0ZO$;yQ(C[O1G0gOOQO1G0Z1G0ZO$<_Q(CjO1G0gPOOO-EvO$<{QSO1G5qO$=TQSO1G6OO$=]QbO1G6PO9ZQSO,5>|O$=gQ(CjO1G5|O%[QUO1G5|O$=wQ(C[O1G5|O$>YQSO1G5{O$>YQSO1G5{O9ZQSO1G5{O$>bQSO,5?PO9ZQSO,5?POOQO,5?P,5?PO$>vQSO,5?PO$'TQSO,5?POOQO-EWOOQQ,5>W,5>WO%[QUO'#HmO%6UQSO'#HoOOQQ,5>^,5>^O9ZQSO,5>^OOQQ,5>`,5>`OOQQ7+)b7+)bOOQQ7+)h7+)hOOQQ7+)l7+)lOOQQ7+)n7+)nO%6ZQWO1G5sO%6oQ$IUO1G0tO%6yQSO1G0tOOQO1G/n1G/nO%7UQ$IUO1G/nO>pQSO1G/nO!*fQUO'#DhOOQO,5>w,5>wOOQO-E},5>}OOQO-EpQSO7+&YO!@}QWO7+&YOOQO7+%u7+%uO$<_Q(CjO7+&ROOQO7+&R7+&RO%[QUO7+&RO%7`Q(C[O7+&RO!@rQ(C[O7+%uO!@}QWO7+%uO%7kQ(C[O7+&RO%7yQ(CjO7++hO%[QUO7++hO%8ZQSO7++gO%8ZQSO7++gOOQO1G4k1G4kO9ZQSO1G4kO%8cQSO1G4kOOQO7+%z7+%zO#%sQSO<xOOQO-E<[-E<[O%DoQbO,5>yO%[QUO,5>yOOQO-E<]-E<]O%DyQSO1G5uOOQ(CY<XOOQQ,5>Z,5>ZO&4ZQSO1G3xO9ZQSO7+&`O!*fQUO7+&`OOQO7+%Y7+%YO&4`Q$IUO1G6PO>pQSO7+%YOOQ(CY<pQSO<qQbO1G4eO&>{Q$IUO7+&ZO&APQ$IUO,5=QO&CWQ$IUO,5=SO&ChQ$IUO,5=QO&CxQ$IUO,5=SO&DYQ$IUO,59oO&F]Q$IUO,5pQSO7+)dO'%_QSO<{AN>{O%[QUOAN?XOOQO<a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#IpP#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:Gr,nodeProps:[["group",-26,7,15,17,63,200,204,208,209,211,214,217,227,229,235,237,239,241,244,250,256,258,260,262,264,266,267,"Statement",-32,11,12,26,29,30,36,46,49,50,52,57,65,73,77,79,81,82,104,105,114,115,132,135,137,138,139,140,142,143,163,164,166,"Expression",-23,25,27,31,35,37,39,167,169,171,172,174,175,176,178,179,180,182,183,184,194,196,198,199,"Type",-3,85,97,103,"ClassItem"],["openedBy",32,"InterpolationStart",51,"[",55,"{",70,"(",144,"JSXStartTag",156,"JSXStartTag JSXStartCloseTag"],["closedBy",34,"InterpolationEnd",45,"]",56,"}",71,")",145,"JSXSelfCloseEndTag JSXEndTag",161,"JSXEndTag"]],propSources:[Nr],skippedNodes:[0,3,4,270],repeatNodeCount:37,tokenData:"$Fl(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Nu!`!a$#a!a!b$(n!b!c$,m!c!}Er!}#O$-w#O#P$/R#P#Q$4j#Q#R$5t#R#SEr#S#T$7R#T#o$8]#o#p$s#r#s$@P#s$f%Z$f$g+g$g#BYEr#BY#BZ$AZ#BZ$ISEr$IS$I_$AZ$I_$I|Er$I|$I}$Df$I}$JO$Df$JO$JTEr$JT$JU$AZ$JU$KVEr$KV$KW$AZ$KW&FUEr&FU&FV$AZ&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AZ?HUOEr(n%d_$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$e&j'}pOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'}pOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'}p(Q!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$e&j'}p(Q!b's(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(O#S$e&j't(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$e&j'}p(Q!b't(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$e&j!m$Ip'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'|$(n$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$e&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$`#t$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$`#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$`#t$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ(Q!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$`#t(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hh$e&j'}p(Q!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXUS$e&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSUSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWUS(Q!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]US$e&j'}pOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWUS'}pOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYUS'}p(Q!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$e&j!SSOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$e&j!SSO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!SSOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!SS#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$e&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$e&j(Q!b!SSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(Q!b!SSOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(Q!b!SSOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(Q!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$e&j(Q!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$e&j'}p(Q!bm$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#Dr[O]||-1},{term:334,get:O=>Br[O]||-1},{term:68,get:O=>Jr[O]||-1}],tokenPrec:14574}),JO=[P("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),P("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),P("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),P("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),P("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),P(`try { \${} } catch (\${error}) { \${} diff --git a/ui/dist/assets/ConfirmEmailChangeDocs-72e04e00.js b/ui/dist/assets/ConfirmEmailChangeDocs-b207e4ce.js similarity index 97% rename from ui/dist/assets/ConfirmEmailChangeDocs-72e04e00.js rename to ui/dist/assets/ConfirmEmailChangeDocs-b207e4ce.js index a8c36d6f..421cbfbb 100644 --- a/ui/dist/assets/ConfirmEmailChangeDocs-72e04e00.js +++ b/ui/dist/assets/ConfirmEmailChangeDocs-b207e4ce.js @@ -1,4 +1,4 @@ -import{S as Pe,i as Se,s as Oe,O as Y,e as r,w as v,b as k,c as Ce,f as b,g as d,h as n,m as $e,x as j,P as _e,Q as ye,k as Re,R as Te,n as Ee,t as ee,a as te,o as m,d as we,C as qe,p as Ae,r as H,u as Be,N as Ue}from"./index-3b554c68.js";import{S as De}from"./SdkTabs-88bdaa1d.js";function he(o,l,s){const a=o.slice();return a[5]=l[s],a}function ke(o,l,s){const a=o.slice();return a[5]=l[s],a}function ge(o,l){let s,a=l[5].code+"",_,u,i,p;function f(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),_=v(a),u=k(),b(s,"class","tab-item"),H(s,"active",l[1]===l[5].code),this.first=s},m(C,$){d(C,s,$),n(s,_),n(s,u),i||(p=Be(s,"click",f),i=!0)},p(C,$){l=C,$&4&&a!==(a=l[5].code+"")&&j(_,a),$&6&&H(s,"active",l[1]===l[5].code)},d(C){C&&m(s),i=!1,p()}}}function ve(o,l){let s,a,_,u;return a=new Ue({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),Ce(a.$$.fragment),_=k(),b(s,"class","tab-item"),H(s,"active",l[1]===l[5].code),this.first=s},m(i,p){d(i,s,p),$e(a,s,null),n(s,_),u=!0},p(i,p){l=i;const f={};p&4&&(f.content=l[5].body),a.$set(f),(!u||p&6)&&H(s,"active",l[1]===l[5].code)},i(i){u||(ee(a.$$.fragment,i),u=!0)},o(i){te(a.$$.fragment,i),u=!1},d(i){i&&m(s),we(a)}}}function Ne(o){var pe,fe;let l,s,a=o[0].name+"",_,u,i,p,f,C,$,D=o[0].name+"",F,le,se,I,L,w,Q,y,z,P,N,ae,K,R,ne,G,M=o[0].name+"",J,oe,V,T,X,E,Z,q,x,S,A,g=[],ie=new Map,ce,B,h=[],re=new Map,O;w=new De({props:{js:` +import{S as Pe,i as Se,s as Oe,O as Y,e as r,w as v,b as k,c as Ce,f as b,g as d,h as n,m as $e,x as j,P as _e,Q as ye,k as Re,R as Te,n as Ee,t as ee,a as te,o as m,d as we,C as qe,p as Ae,r as H,u as Be,N as Ue}from"./index-26bf667a.js";import{S as De}from"./SdkTabs-27205987.js";function he(o,l,s){const a=o.slice();return a[5]=l[s],a}function ke(o,l,s){const a=o.slice();return a[5]=l[s],a}function ge(o,l){let s,a=l[5].code+"",_,u,i,p;function f(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),_=v(a),u=k(),b(s,"class","tab-item"),H(s,"active",l[1]===l[5].code),this.first=s},m(C,$){d(C,s,$),n(s,_),n(s,u),i||(p=Be(s,"click",f),i=!0)},p(C,$){l=C,$&4&&a!==(a=l[5].code+"")&&j(_,a),$&6&&H(s,"active",l[1]===l[5].code)},d(C){C&&m(s),i=!1,p()}}}function ve(o,l){let s,a,_,u;return a=new Ue({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),Ce(a.$$.fragment),_=k(),b(s,"class","tab-item"),H(s,"active",l[1]===l[5].code),this.first=s},m(i,p){d(i,s,p),$e(a,s,null),n(s,_),u=!0},p(i,p){l=i;const f={};p&4&&(f.content=l[5].body),a.$set(f),(!u||p&6)&&H(s,"active",l[1]===l[5].code)},i(i){u||(ee(a.$$.fragment,i),u=!0)},o(i){te(a.$$.fragment,i),u=!1},d(i){i&&m(s),we(a)}}}function Ne(o){var pe,fe;let l,s,a=o[0].name+"",_,u,i,p,f,C,$,D=o[0].name+"",F,le,se,I,L,w,Q,y,z,P,N,ae,K,R,ne,G,M=o[0].name+"",J,oe,V,T,X,E,Z,q,x,S,A,g=[],ie=new Map,ce,B,h=[],re=new Map,O;w=new De({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/ConfirmPasswordResetDocs-f2dc5193.js b/ui/dist/assets/ConfirmPasswordResetDocs-41e48ec4.js similarity index 98% rename from ui/dist/assets/ConfirmPasswordResetDocs-f2dc5193.js rename to ui/dist/assets/ConfirmPasswordResetDocs-41e48ec4.js index 271b4f0f..90518910 100644 --- a/ui/dist/assets/ConfirmPasswordResetDocs-f2dc5193.js +++ b/ui/dist/assets/ConfirmPasswordResetDocs-41e48ec4.js @@ -1,4 +1,4 @@ -import{S as Ne,i as $e,s as Ce,O as K,e as c,w,b as k,c as Re,f as b,g as r,h as n,m as Ae,x as U,P as we,Q as Ee,k as ye,R as De,n as Te,t as ee,a as te,o as p,d as Oe,C as qe,p as Be,r as j,u as Me,N as Fe}from"./index-3b554c68.js";import{S as Ie}from"./SdkTabs-88bdaa1d.js";function Se(o,l,s){const a=o.slice();return a[5]=l[s],a}function Pe(o,l,s){const a=o.slice();return a[5]=l[s],a}function We(o,l){let s,a=l[5].code+"",_,m,i,u;function f(){return l[4](l[5])}return{key:o,first:null,c(){s=c("button"),_=w(a),m=k(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(S,P){r(S,s,P),n(s,_),n(s,m),i||(u=Me(s,"click",f),i=!0)},p(S,P){l=S,P&4&&a!==(a=l[5].code+"")&&U(_,a),P&6&&j(s,"active",l[1]===l[5].code)},d(S){S&&p(s),i=!1,u()}}}function ge(o,l){let s,a,_,m;return a=new Fe({props:{content:l[5].body}}),{key:o,first:null,c(){s=c("div"),Re(a.$$.fragment),_=k(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(i,u){r(i,s,u),Ae(a,s,null),n(s,_),m=!0},p(i,u){l=i;const f={};u&4&&(f.content=l[5].body),a.$set(f),(!m||u&6)&&j(s,"active",l[1]===l[5].code)},i(i){m||(ee(a.$$.fragment,i),m=!0)},o(i){te(a.$$.fragment,i),m=!1},d(i){i&&p(s),Oe(a)}}}function Ke(o){var ue,fe,me,be;let l,s,a=o[0].name+"",_,m,i,u,f,S,P,q=o[0].name+"",H,le,se,L,Q,W,z,O,G,g,B,ae,M,N,oe,J,F=o[0].name+"",V,ne,X,$,Y,C,Z,E,x,R,y,v=[],ie=new Map,de,D,h=[],ce=new Map,A;W=new Ie({props:{js:` +import{S as Ne,i as $e,s as Ce,O as K,e as c,w,b as k,c as Re,f as b,g as r,h as n,m as Ae,x as U,P as we,Q as Ee,k as ye,R as De,n as Te,t as ee,a as te,o as p,d as Oe,C as qe,p as Be,r as j,u as Me,N as Fe}from"./index-26bf667a.js";import{S as Ie}from"./SdkTabs-27205987.js";function Se(o,l,s){const a=o.slice();return a[5]=l[s],a}function Pe(o,l,s){const a=o.slice();return a[5]=l[s],a}function We(o,l){let s,a=l[5].code+"",_,m,i,u;function f(){return l[4](l[5])}return{key:o,first:null,c(){s=c("button"),_=w(a),m=k(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(S,P){r(S,s,P),n(s,_),n(s,m),i||(u=Me(s,"click",f),i=!0)},p(S,P){l=S,P&4&&a!==(a=l[5].code+"")&&U(_,a),P&6&&j(s,"active",l[1]===l[5].code)},d(S){S&&p(s),i=!1,u()}}}function ge(o,l){let s,a,_,m;return a=new Fe({props:{content:l[5].body}}),{key:o,first:null,c(){s=c("div"),Re(a.$$.fragment),_=k(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(i,u){r(i,s,u),Ae(a,s,null),n(s,_),m=!0},p(i,u){l=i;const f={};u&4&&(f.content=l[5].body),a.$set(f),(!m||u&6)&&j(s,"active",l[1]===l[5].code)},i(i){m||(ee(a.$$.fragment,i),m=!0)},o(i){te(a.$$.fragment,i),m=!1},d(i){i&&p(s),Oe(a)}}}function Ke(o){var ue,fe,me,be;let l,s,a=o[0].name+"",_,m,i,u,f,S,P,q=o[0].name+"",H,le,se,L,Q,W,z,O,G,g,B,ae,M,N,oe,J,F=o[0].name+"",V,ne,X,$,Y,C,Z,E,x,R,y,v=[],ie=new Map,de,D,h=[],ce=new Map,A;W=new Ie({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/ConfirmVerificationDocs-a38c2d9c.js b/ui/dist/assets/ConfirmVerificationDocs-cdbe814c.js similarity index 97% rename from ui/dist/assets/ConfirmVerificationDocs-a38c2d9c.js rename to ui/dist/assets/ConfirmVerificationDocs-cdbe814c.js index 271b6486..8d3921ea 100644 --- a/ui/dist/assets/ConfirmVerificationDocs-a38c2d9c.js +++ b/ui/dist/assets/ConfirmVerificationDocs-cdbe814c.js @@ -1,4 +1,4 @@ -import{S as Se,i as Te,s as Be,O as D,e as r,w as g,b as k,c as ye,f as h,g as f,h as n,m as Ce,x as H,P as ke,Q as Re,k as qe,R as Oe,n as Ee,t as x,a as ee,o as d,d as Pe,C as Ne,p as Ve,r as F,u as Ke,N as Me}from"./index-3b554c68.js";import{S as Ae}from"./SdkTabs-88bdaa1d.js";function ve(o,l,s){const a=o.slice();return a[5]=l[s],a}function ge(o,l,s){const a=o.slice();return a[5]=l[s],a}function we(o,l){let s,a=l[5].code+"",b,m,i,p;function u(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),b=g(a),m=k(),h(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(w,$){f(w,s,$),n(s,b),n(s,m),i||(p=Ke(s,"click",u),i=!0)},p(w,$){l=w,$&4&&a!==(a=l[5].code+"")&&H(b,a),$&6&&F(s,"active",l[1]===l[5].code)},d(w){w&&d(s),i=!1,p()}}}function $e(o,l){let s,a,b,m;return a=new Me({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),ye(a.$$.fragment),b=k(),h(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(i,p){f(i,s,p),Ce(a,s,null),n(s,b),m=!0},p(i,p){l=i;const u={};p&4&&(u.content=l[5].body),a.$set(u),(!m||p&6)&&F(s,"active",l[1]===l[5].code)},i(i){m||(x(a.$$.fragment,i),m=!0)},o(i){ee(a.$$.fragment,i),m=!1},d(i){i&&d(s),Pe(a)}}}function Ue(o){var fe,de,pe,ue;let l,s,a=o[0].name+"",b,m,i,p,u,w,$,K=o[0].name+"",I,te,L,y,Q,T,z,C,M,le,A,B,se,G,U=o[0].name+"",J,ae,W,R,X,q,Y,O,Z,P,E,v=[],oe=new Map,ne,N,_=[],ie=new Map,S;y=new Ae({props:{js:` +import{S as Se,i as Te,s as Be,O as D,e as r,w as g,b as k,c as ye,f as h,g as f,h as n,m as Ce,x as H,P as ke,Q as Re,k as qe,R as Oe,n as Ee,t as x,a as ee,o as d,d as Pe,C as Ne,p as Ve,r as F,u as Ke,N as Me}from"./index-26bf667a.js";import{S as Ae}from"./SdkTabs-27205987.js";function ve(o,l,s){const a=o.slice();return a[5]=l[s],a}function ge(o,l,s){const a=o.slice();return a[5]=l[s],a}function we(o,l){let s,a=l[5].code+"",b,m,i,p;function u(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),b=g(a),m=k(),h(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(w,$){f(w,s,$),n(s,b),n(s,m),i||(p=Ke(s,"click",u),i=!0)},p(w,$){l=w,$&4&&a!==(a=l[5].code+"")&&H(b,a),$&6&&F(s,"active",l[1]===l[5].code)},d(w){w&&d(s),i=!1,p()}}}function $e(o,l){let s,a,b,m;return a=new Me({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),ye(a.$$.fragment),b=k(),h(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(i,p){f(i,s,p),Ce(a,s,null),n(s,b),m=!0},p(i,p){l=i;const u={};p&4&&(u.content=l[5].body),a.$set(u),(!m||p&6)&&F(s,"active",l[1]===l[5].code)},i(i){m||(x(a.$$.fragment,i),m=!0)},o(i){ee(a.$$.fragment,i),m=!1},d(i){i&&d(s),Pe(a)}}}function Ue(o){var fe,de,pe,ue;let l,s,a=o[0].name+"",b,m,i,p,u,w,$,K=o[0].name+"",I,te,L,y,Q,T,z,C,M,le,A,B,se,G,U=o[0].name+"",J,ae,W,R,X,q,Y,O,Z,P,E,v=[],oe=new Map,ne,N,_=[],ie=new Map,S;y=new Ae({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/CreateApiDocs-7a13198d.js b/ui/dist/assets/CreateApiDocs-8252105a.js similarity index 98% rename from ui/dist/assets/CreateApiDocs-7a13198d.js rename to ui/dist/assets/CreateApiDocs-8252105a.js index 613a3a0b..d16d8188 100644 --- a/ui/dist/assets/CreateApiDocs-7a13198d.js +++ b/ui/dist/assets/CreateApiDocs-8252105a.js @@ -1,4 +1,4 @@ -import{S as qt,i as Ot,s as Mt,C as Q,O as ne,N as Tt,e as i,w as _,b as u,c as _e,f as v,g as r,h as n,m as he,x,P as Be,Q as ht,k as Ht,R as Lt,n as Pt,t as ue,a as fe,o as d,d as ke,p as Ft,r as ye,u as Rt,y as ae}from"./index-3b554c68.js";import{S as At}from"./SdkTabs-88bdaa1d.js";import{F as Bt}from"./FieldsQueryParam-e878558e.js";function kt(o,e,t){const a=o.slice();return a[8]=e[t],a}function yt(o,e,t){const a=o.slice();return a[8]=e[t],a}function vt(o,e,t){const a=o.slice();return a[13]=e[t],a}function gt(o){let e;return{c(){e=i("p"),e.innerHTML="Requires admin Authorization:TOKEN header",v(e,"class","txt-hint txt-sm txt-right")},m(t,a){r(t,e,a)},d(t){t&&d(e)}}}function wt(o){let e,t,a,f,m,c,p,y,S,T,w,H,D,E,P,I,j,B,$,N,q,g,b;function O(h,C){var ee,K;return(K=(ee=h[0])==null?void 0:ee.options)!=null&&K.requireEmail?Dt:jt}let z=O(o),F=z(o);return{c(){e=i("tr"),e.innerHTML='Auth fields',t=u(),a=i("tr"),a.innerHTML=`
Optional username
String The username of the auth record. +import{S as qt,i as Ot,s as Mt,C as Q,O as ne,N as Tt,e as i,w as _,b as u,c as _e,f as v,g as r,h as n,m as he,x,P as Be,Q as ht,k as Ht,R as Lt,n as Pt,t as ue,a as fe,o as d,d as ke,p as Ft,r as ye,u as Rt,y as ae}from"./index-26bf667a.js";import{S as At}from"./SdkTabs-27205987.js";import{F as Bt}from"./FieldsQueryParam-c4b1abdd.js";function kt(o,e,t){const a=o.slice();return a[8]=e[t],a}function yt(o,e,t){const a=o.slice();return a[8]=e[t],a}function vt(o,e,t){const a=o.slice();return a[13]=e[t],a}function gt(o){let e;return{c(){e=i("p"),e.innerHTML="Requires admin Authorization:TOKEN header",v(e,"class","txt-hint txt-sm txt-right")},m(t,a){r(t,e,a)},d(t){t&&d(e)}}}function wt(o){let e,t,a,f,m,c,p,y,S,T,w,H,D,E,P,I,j,B,$,N,q,g,b;function O(h,C){var ee,K;return(K=(ee=h[0])==null?void 0:ee.options)!=null&&K.requireEmail?Dt:jt}let z=O(o),F=z(o);return{c(){e=i("tr"),e.innerHTML='Auth fields',t=u(),a=i("tr"),a.innerHTML=`
Optional username
String The username of the auth record.
If not set, it will be auto generated.`,f=u(),m=i("tr"),c=i("td"),p=i("div"),F.c(),y=u(),S=i("span"),S.textContent="email",T=u(),w=i("td"),w.innerHTML='String',H=u(),D=i("td"),D.textContent="Auth record email address.",E=u(),P=i("tr"),P.innerHTML='
Optional emailVisibility
Boolean Whether to show/hide the auth record email when fetching the record data.',I=u(),j=i("tr"),j.innerHTML='
Required password
String Auth record password.',B=u(),$=i("tr"),$.innerHTML='
Required passwordConfirm
String Auth record password confirmation.',N=u(),q=i("tr"),q.innerHTML=`
Optional verified
Boolean Indicates whether the auth record is verified or not.
diff --git a/ui/dist/assets/DeleteApiDocs-7f9b6a98.js b/ui/dist/assets/DeleteApiDocs-db45baf1.js similarity index 97% rename from ui/dist/assets/DeleteApiDocs-7f9b6a98.js rename to ui/dist/assets/DeleteApiDocs-db45baf1.js index e32bc2b2..3f8cb9c8 100644 --- a/ui/dist/assets/DeleteApiDocs-7f9b6a98.js +++ b/ui/dist/assets/DeleteApiDocs-db45baf1.js @@ -1,4 +1,4 @@ -import{S as Re,i as Pe,s as Ee,O as j,e as c,w as y,b as k,c as De,f as m,g as p,h as i,m as Ce,x as ee,P as he,Q as Oe,k as Te,R as Be,n as Ie,t as te,a as le,o as u,d as we,C as Ae,p as Me,r as N,u as Se,N as qe}from"./index-3b554c68.js";import{S as He}from"./SdkTabs-88bdaa1d.js";function ke(a,l,s){const o=a.slice();return o[6]=l[s],o}function ge(a,l,s){const o=a.slice();return o[6]=l[s],o}function ve(a){let l;return{c(){l=c("p"),l.innerHTML="Requires admin Authorization:TOKEN header",m(l,"class","txt-hint txt-sm txt-right")},m(s,o){p(s,l,o)},d(s){s&&u(l)}}}function ye(a,l){let s,o,h;function d(){return l[5](l[6])}return{key:a,first:null,c(){s=c("button"),s.textContent=`${l[6].code} `,m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(n,r){p(n,s,r),o||(h=Se(s,"click",d),o=!0)},p(n,r){l=n,r&20&&N(s,"active",l[2]===l[6].code)},d(n){n&&u(s),o=!1,h()}}}function $e(a,l){let s,o,h,d;return o=new qe({props:{content:l[6].body}}),{key:a,first:null,c(){s=c("div"),De(o.$$.fragment),h=k(),m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(n,r){p(n,s,r),Ce(o,s,null),i(s,h),d=!0},p(n,r){l=n,(!d||r&20)&&N(s,"active",l[2]===l[6].code)},i(n){d||(te(o.$$.fragment,n),d=!0)},o(n){le(o.$$.fragment,n),d=!1},d(n){n&&u(s),we(o)}}}function Le(a){var ue,me;let l,s,o=a[0].name+"",h,d,n,r,$,D,z,S=a[0].name+"",F,se,K,C,Q,E,G,g,q,ae,H,P,oe,J,L=a[0].name+"",V,ne,W,ie,X,O,Y,T,Z,B,x,w,I,v=[],ce=new Map,de,A,b=[],re=new Map,R;C=new He({props:{js:` +import{S as Re,i as Pe,s as Ee,O as j,e as c,w as y,b as k,c as De,f as m,g as p,h as i,m as Ce,x as ee,P as he,Q as Oe,k as Te,R as Be,n as Ie,t as te,a as le,o as u,d as we,C as Ae,p as Me,r as N,u as Se,N as qe}from"./index-26bf667a.js";import{S as He}from"./SdkTabs-27205987.js";function ke(a,l,s){const o=a.slice();return o[6]=l[s],o}function ge(a,l,s){const o=a.slice();return o[6]=l[s],o}function ve(a){let l;return{c(){l=c("p"),l.innerHTML="Requires admin Authorization:TOKEN header",m(l,"class","txt-hint txt-sm txt-right")},m(s,o){p(s,l,o)},d(s){s&&u(l)}}}function ye(a,l){let s,o,h;function d(){return l[5](l[6])}return{key:a,first:null,c(){s=c("button"),s.textContent=`${l[6].code} `,m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(n,r){p(n,s,r),o||(h=Se(s,"click",d),o=!0)},p(n,r){l=n,r&20&&N(s,"active",l[2]===l[6].code)},d(n){n&&u(s),o=!1,h()}}}function $e(a,l){let s,o,h,d;return o=new qe({props:{content:l[6].body}}),{key:a,first:null,c(){s=c("div"),De(o.$$.fragment),h=k(),m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(n,r){p(n,s,r),Ce(o,s,null),i(s,h),d=!0},p(n,r){l=n,(!d||r&20)&&N(s,"active",l[2]===l[6].code)},i(n){d||(te(o.$$.fragment,n),d=!0)},o(n){le(o.$$.fragment,n),d=!1},d(n){n&&u(s),we(o)}}}function Le(a){var ue,me;let l,s,o=a[0].name+"",h,d,n,r,$,D,z,S=a[0].name+"",F,se,K,C,Q,E,G,g,q,ae,H,P,oe,J,L=a[0].name+"",V,ne,W,ie,X,O,Y,T,Z,B,x,w,I,v=[],ce=new Map,de,A,b=[],re=new Map,R;C=new He({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${a[3]}'); diff --git a/ui/dist/assets/FieldsQueryParam-e878558e.js b/ui/dist/assets/FieldsQueryParam-c4b1abdd.js similarity index 96% rename from ui/dist/assets/FieldsQueryParam-e878558e.js rename to ui/dist/assets/FieldsQueryParam-c4b1abdd.js index b9d27175..7ef6884c 100644 --- a/ui/dist/assets/FieldsQueryParam-e878558e.js +++ b/ui/dist/assets/FieldsQueryParam-c4b1abdd.js @@ -1,4 +1,4 @@ -import{S as J,i as O,s as P,N as Q,e as t,b as c,w as i,c as R,f as j,g as z,h as e,m as A,x as D,t as G,a as K,o as U,d as V}from"./index-3b554c68.js";function W(f){let n,o,u,d,v,s,p,w,h,y,r,F,_,S,b,E,C,a,$,L,q,H,M,N,m,T,k,B,x;return r=new Q({props:{content:"?fields=*,"+f[0]+"expand.relField.name"}}),{c(){n=t("tr"),o=t("td"),o.textContent="fields",u=c(),d=t("td"),d.innerHTML='String',v=c(),s=t("td"),p=t("p"),w=i(`Comma separated string of the fields to return in the JSON response +import{S as J,i as O,s as P,N as Q,e as t,b as c,w as i,c as R,f as j,g as z,h as e,m as A,x as D,t as G,a as K,o as U,d as V}from"./index-26bf667a.js";function W(f){let n,o,u,d,v,s,p,w,h,y,r,F,_,S,b,E,C,a,$,L,q,H,M,N,m,T,k,B,x;return r=new Q({props:{content:"?fields=*,"+f[0]+"expand.relField.name"}}),{c(){n=t("tr"),o=t("td"),o.textContent="fields",u=c(),d=t("td"),d.innerHTML='String',v=c(),s=t("td"),p=t("p"),w=i(`Comma separated string of the fields to return in the JSON response `),h=t("em"),h.textContent="(by default returns all fields)",y=i(`. Ex.: `),R(r.$$.fragment),F=c(),_=t("p"),_.innerHTML="* targets all keys from the specific depth level.",S=c(),b=t("p"),b.textContent="In addition, the following field modifiers are also supported:",E=c(),C=t("ul"),a=t("li"),$=t("code"),$.textContent=":excerpt(maxLength, withEllipsis?)",L=c(),q=t("br"),H=i(` Returns a short plain text version of the field string value. diff --git a/ui/dist/assets/FilterAutocompleteInput-e50206fe.js b/ui/dist/assets/FilterAutocompleteInput-a4e1e466.js similarity index 99% rename from ui/dist/assets/FilterAutocompleteInput-e50206fe.js rename to ui/dist/assets/FilterAutocompleteInput-a4e1e466.js index 6ed3a9b6..281b7427 100644 --- a/ui/dist/assets/FilterAutocompleteInput-e50206fe.js +++ b/ui/dist/assets/FilterAutocompleteInput-a4e1e466.js @@ -1 +1 @@ -import{S as se,i as ae,s as le,e as ue,f as ce,g as de,y as M,o as fe,J as he,K as ge,L as pe,I as ye,C as h,M as me}from"./index-3b554c68.js";import{E as C,a as q,h as ke,b as xe,c as be,d as we,e as Ee,s as Se,f as Ke,g as Ce,r as qe,i as Re,k as Ie,j as Le,l as ve,m as Ae,n as De,o as Oe,p as _e,q as Y,C as L,S as Be,t as Me,u as He}from"./index-9ee652b3.js";function Fe(e){Z(e,"start");var r={},n=e.languageData||{},p=!1;for(var y in e)if(y!=n&&e.hasOwnProperty(y))for(var g=r[y]=[],s=e[y],o=0;o2&&s.token&&typeof s.token!="string"){n.pending=[];for(var a=2;a-1)return null;var y=n.indent.length-1,g=e[n.state];e:for(;;){for(var s=0;sn(21,p=t));const y=pe();let{id:g=""}=r,{value:s=""}=r,{disabled:o=!1}=r,{placeholder:l=""}=r,{baseCollection:a=null}=r,{singleLine:b=!1}=r,{extraAutocompleteKeys:v=[]}=r,{disableRequestKeys:E=!1}=r,{disableIndirectCollectionsKeys:S=!1}=r,f,w,A=o,H=new L,F=new L,T=new L,U=new L,R=[],W=[],N=[],J=[],I="",D="";function O(){f==null||f.focus()}let _=null;function j(){clearTimeout(_),_=setTimeout(()=>{R=$(p),J=ee(),W=E?[]:te(),N=S?[]:ne()},300)}function $(t){let i=t.slice();return a&&h.pushOrReplaceByKey(i,a,"id"),i}function P(){w==null||w.dispatchEvent(new CustomEvent("change",{detail:{value:s},bubbles:!0}))}function V(){if(!g)return;const t=document.querySelectorAll('[for="'+g+'"]');for(let i of t)i.removeEventListener("click",O)}function G(){if(!g)return;V();const t=document.querySelectorAll('[for="'+g+'"]');for(let i of t)i.addEventListener("click",O)}function K(t,i="",u=0){var m,x,Q;let c=R.find(k=>k.name==t||k.id==t);if(!c||u>=4)return[];let d=h.getAllCollectionIdentifiers(c,i);for(const k of(c==null?void 0:c.schema)||[]){const B=i+k.name;if(k.type==="relation"&&((m=k.options)!=null&&m.collectionId)){const X=K(k.options.collectionId,B+".",u+1);X.length&&(d=d.concat(X))}k.type==="select"&&((x=k.options)==null?void 0:x.maxSelect)!=1&&d.push(B+":each"),((Q=k.options)==null?void 0:Q.maxSelect)!=1&&["select","file","relation"].includes(k.type)&&d.push(B+":length")}return d}function ee(){return K(a==null?void 0:a.name)}function te(){const t=[];t.push("@request.method"),t.push("@request.query."),t.push("@request.data."),t.push("@request.headers."),t.push("@request.auth.id"),t.push("@request.auth.collectionId"),t.push("@request.auth.collectionName"),t.push("@request.auth.verified"),t.push("@request.auth.username"),t.push("@request.auth.email"),t.push("@request.auth.emailVisibility"),t.push("@request.auth.created"),t.push("@request.auth.updated");const i=R.filter(c=>c.type==="auth");for(const c of i){const d=K(c.id,"@request.auth.");for(const m of d)h.pushUnique(t,m)}const u=["created","updated"];if(a!=null&&a.id){const c=K(a.name,"@request.data.");for(const d of c){t.push(d);const m=d.split(".");m.length===3&&m[2].indexOf(":")===-1&&!u.includes(m[2])&&t.push(d+":isset")}}return t}function ne(){const t=[];for(const i of R){const u="@collection."+i.name+".",c=K(i.name,u);for(const d of c)t.push(d)}return t}function re(t=!0,i=!0){let u=[].concat(v);return u=u.concat(J||[]),t&&(u=u.concat(W||[])),i&&(u=u.concat(N||[])),u.sort(function(c,d){return d.length-c.length}),u}function ie(t){var m;let i=t.matchBefore(/[\'\"\@\w\.]*/);if(i&&i.from==i.to&&!t.explicit)return null;let u=He(t.state).resolveInner(t.pos,-1);if(((m=u==null?void 0:u.type)==null?void 0:m.name)=="comment")return null;let c=[{label:"false"},{label:"true"},{label:"@now"},{label:"@second"},{label:"@minute"},{label:"@hour"},{label:"@year"},{label:"@day"},{label:"@month"},{label:"@weekday"},{label:"@todayStart"},{label:"@todayEnd"},{label:"@monthStart"},{label:"@monthEnd"},{label:"@yearStart"},{label:"@yearEnd"}];S||c.push({label:"@collection.*",apply:"@collection."});const d=re(!E,!E&&i.text.startsWith("@c"));for(const x of d)c.push({label:x.endsWith(".")?x+"*":x,apply:x});return{from:i.from,options:c}}function z(){return Be.define(Fe({start:[{regex:/true|false|null/,token:"atom"},{regex:/\/\/.*/,token:"comment"},{regex:/"(?:[^\\]|\\.)*?(?:"|$)/,token:"string"},{regex:/'(?:[^\\]|\\.)*?(?:'|$)/,token:"string"},{regex:/0x[a-f\d]+|[-+]?(?:\.\d+|\d+\.?\d*)(?:e[-+]?\d+)?/i,token:"number"},{regex:/\&\&|\|\||\=|\!\=|\~|\!\~|\>|\<|\>\=|\<\=/,token:"operator"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0},{regex:/\w+[\w\.]*\w+/,token:"keyword"},{regex:h.escapeRegExp("@now"),token:"keyword"},{regex:h.escapeRegExp("@second"),token:"keyword"},{regex:h.escapeRegExp("@minute"),token:"keyword"},{regex:h.escapeRegExp("@hour"),token:"keyword"},{regex:h.escapeRegExp("@year"),token:"keyword"},{regex:h.escapeRegExp("@day"),token:"keyword"},{regex:h.escapeRegExp("@month"),token:"keyword"},{regex:h.escapeRegExp("@weekday"),token:"keyword"},{regex:h.escapeRegExp("@todayStart"),token:"keyword"},{regex:h.escapeRegExp("@todayEnd"),token:"keyword"},{regex:h.escapeRegExp("@monthStart"),token:"keyword"},{regex:h.escapeRegExp("@monthEnd"),token:"keyword"},{regex:h.escapeRegExp("@yearStart"),token:"keyword"},{regex:h.escapeRegExp("@yearEnd"),token:"keyword"},{regex:h.escapeRegExp("@request.method"),token:"keyword"}],meta:{lineComment:"//"}}))}ye(()=>{const t={key:"Enter",run:i=>{b&&y("submit",s)}};return G(),n(11,f=new C({parent:w,state:q.create({doc:s,extensions:[ke(),xe(),be(),we(),Ee(),q.allowMultipleSelections.of(!0),Se(Me,{fallback:!0}),Ke(),Ce(),qe(),Re(),Ie.of([t,...Le,...ve,Ae.find(i=>i.key==="Mod-d"),...De,...Oe]),C.lineWrapping,_e({override:[ie],icons:!1}),U.of(Y(l)),F.of(C.editable.of(!o)),T.of(q.readOnly.of(o)),H.of(z()),q.transactionFilter.of(i=>{var u,c,d;if(b&&i.newDoc.lines>1){if(!((d=(c=(u=i.changes)==null?void 0:u.inserted)==null?void 0:c.filter(m=>!!m.text.find(x=>x)))!=null&&d.length))return[];i.newDoc.text=[i.newDoc.text.join(" ")]}return i}),C.updateListener.of(i=>{!i.docChanged||o||(n(1,s=i.state.doc.toString()),P())})]})})),()=>{clearTimeout(_),V(),f==null||f.destroy()}});function oe(t){me[t?"unshift":"push"](()=>{w=t,n(0,w)})}return e.$$set=t=>{"id"in t&&n(2,g=t.id),"value"in t&&n(1,s=t.value),"disabled"in t&&n(3,o=t.disabled),"placeholder"in t&&n(4,l=t.placeholder),"baseCollection"in t&&n(5,a=t.baseCollection),"singleLine"in t&&n(6,b=t.singleLine),"extraAutocompleteKeys"in t&&n(7,v=t.extraAutocompleteKeys),"disableRequestKeys"in t&&n(8,E=t.disableRequestKeys),"disableIndirectCollectionsKeys"in t&&n(9,S=t.disableIndirectCollectionsKeys)},e.$$.update=()=>{e.$$.dirty[0]&32&&n(13,I=Ve(a)),e.$$.dirty[0]&25352&&!o&&(D!=I||E!==-1||S!==-1)&&(n(14,D=I),j()),e.$$.dirty[0]&4&&g&&G(),e.$$.dirty[0]&2080&&f&&a!=null&&a.schema&&f.dispatch({effects:[H.reconfigure(z())]}),e.$$.dirty[0]&6152&&f&&A!=o&&(f.dispatch({effects:[F.reconfigure(C.editable.of(!o)),T.reconfigure(q.readOnly.of(o))]}),n(12,A=o),P()),e.$$.dirty[0]&2050&&f&&s!=f.state.doc.toString()&&f.dispatch({changes:{from:0,to:f.state.doc.length,insert:s}}),e.$$.dirty[0]&2064&&f&&typeof l<"u"&&f.dispatch({effects:[U.reconfigure(Y(l))]})},[w,s,g,o,l,a,b,v,E,S,O,f,A,I,D,oe]}class Xe extends se{constructor(r){super(),ae(this,r,Ge,Pe,le,{id:2,value:1,disabled:3,placeholder:4,baseCollection:5,singleLine:6,extraAutocompleteKeys:7,disableRequestKeys:8,disableIndirectCollectionsKeys:9,focus:10},null,[-1,-1])}get focus(){return this.$$.ctx[10]}}export{Xe as default}; +import{S as se,i as ae,s as le,e as ue,f as ce,g as de,y as M,o as fe,J as he,K as ge,L as pe,I as ye,C as h,M as me}from"./index-26bf667a.js";import{E as C,a as q,h as ke,b as xe,c as be,d as we,e as Ee,s as Se,f as Ke,g as Ce,r as qe,i as Re,k as Ie,j as Le,l as ve,m as Ae,n as De,o as Oe,p as _e,q as Y,C as L,S as Be,t as Me,u as He}from"./index-9ee652b3.js";function Fe(e){Z(e,"start");var r={},n=e.languageData||{},p=!1;for(var y in e)if(y!=n&&e.hasOwnProperty(y))for(var g=r[y]=[],s=e[y],o=0;o2&&s.token&&typeof s.token!="string"){n.pending=[];for(var a=2;a-1)return null;var y=n.indent.length-1,g=e[n.state];e:for(;;){for(var s=0;sn(21,p=t));const y=pe();let{id:g=""}=r,{value:s=""}=r,{disabled:o=!1}=r,{placeholder:l=""}=r,{baseCollection:a=null}=r,{singleLine:b=!1}=r,{extraAutocompleteKeys:v=[]}=r,{disableRequestKeys:E=!1}=r,{disableIndirectCollectionsKeys:S=!1}=r,f,w,A=o,H=new L,F=new L,T=new L,U=new L,R=[],W=[],N=[],J=[],I="",D="";function O(){f==null||f.focus()}let _=null;function j(){clearTimeout(_),_=setTimeout(()=>{R=$(p),J=ee(),W=E?[]:te(),N=S?[]:ne()},300)}function $(t){let i=t.slice();return a&&h.pushOrReplaceByKey(i,a,"id"),i}function P(){w==null||w.dispatchEvent(new CustomEvent("change",{detail:{value:s},bubbles:!0}))}function V(){if(!g)return;const t=document.querySelectorAll('[for="'+g+'"]');for(let i of t)i.removeEventListener("click",O)}function G(){if(!g)return;V();const t=document.querySelectorAll('[for="'+g+'"]');for(let i of t)i.addEventListener("click",O)}function K(t,i="",u=0){var m,x,Q;let c=R.find(k=>k.name==t||k.id==t);if(!c||u>=4)return[];let d=h.getAllCollectionIdentifiers(c,i);for(const k of(c==null?void 0:c.schema)||[]){const B=i+k.name;if(k.type==="relation"&&((m=k.options)!=null&&m.collectionId)){const X=K(k.options.collectionId,B+".",u+1);X.length&&(d=d.concat(X))}k.type==="select"&&((x=k.options)==null?void 0:x.maxSelect)!=1&&d.push(B+":each"),((Q=k.options)==null?void 0:Q.maxSelect)!=1&&["select","file","relation"].includes(k.type)&&d.push(B+":length")}return d}function ee(){return K(a==null?void 0:a.name)}function te(){const t=[];t.push("@request.method"),t.push("@request.query."),t.push("@request.data."),t.push("@request.headers."),t.push("@request.auth.id"),t.push("@request.auth.collectionId"),t.push("@request.auth.collectionName"),t.push("@request.auth.verified"),t.push("@request.auth.username"),t.push("@request.auth.email"),t.push("@request.auth.emailVisibility"),t.push("@request.auth.created"),t.push("@request.auth.updated");const i=R.filter(c=>c.type==="auth");for(const c of i){const d=K(c.id,"@request.auth.");for(const m of d)h.pushUnique(t,m)}const u=["created","updated"];if(a!=null&&a.id){const c=K(a.name,"@request.data.");for(const d of c){t.push(d);const m=d.split(".");m.length===3&&m[2].indexOf(":")===-1&&!u.includes(m[2])&&t.push(d+":isset")}}return t}function ne(){const t=[];for(const i of R){const u="@collection."+i.name+".",c=K(i.name,u);for(const d of c)t.push(d)}return t}function re(t=!0,i=!0){let u=[].concat(v);return u=u.concat(J||[]),t&&(u=u.concat(W||[])),i&&(u=u.concat(N||[])),u.sort(function(c,d){return d.length-c.length}),u}function ie(t){var m;let i=t.matchBefore(/[\'\"\@\w\.]*/);if(i&&i.from==i.to&&!t.explicit)return null;let u=He(t.state).resolveInner(t.pos,-1);if(((m=u==null?void 0:u.type)==null?void 0:m.name)=="comment")return null;let c=[{label:"false"},{label:"true"},{label:"@now"},{label:"@second"},{label:"@minute"},{label:"@hour"},{label:"@year"},{label:"@day"},{label:"@month"},{label:"@weekday"},{label:"@todayStart"},{label:"@todayEnd"},{label:"@monthStart"},{label:"@monthEnd"},{label:"@yearStart"},{label:"@yearEnd"}];S||c.push({label:"@collection.*",apply:"@collection."});const d=re(!E,!E&&i.text.startsWith("@c"));for(const x of d)c.push({label:x.endsWith(".")?x+"*":x,apply:x});return{from:i.from,options:c}}function z(){return Be.define(Fe({start:[{regex:/true|false|null/,token:"atom"},{regex:/\/\/.*/,token:"comment"},{regex:/"(?:[^\\]|\\.)*?(?:"|$)/,token:"string"},{regex:/'(?:[^\\]|\\.)*?(?:'|$)/,token:"string"},{regex:/0x[a-f\d]+|[-+]?(?:\.\d+|\d+\.?\d*)(?:e[-+]?\d+)?/i,token:"number"},{regex:/\&\&|\|\||\=|\!\=|\~|\!\~|\>|\<|\>\=|\<\=/,token:"operator"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0},{regex:/\w+[\w\.]*\w+/,token:"keyword"},{regex:h.escapeRegExp("@now"),token:"keyword"},{regex:h.escapeRegExp("@second"),token:"keyword"},{regex:h.escapeRegExp("@minute"),token:"keyword"},{regex:h.escapeRegExp("@hour"),token:"keyword"},{regex:h.escapeRegExp("@year"),token:"keyword"},{regex:h.escapeRegExp("@day"),token:"keyword"},{regex:h.escapeRegExp("@month"),token:"keyword"},{regex:h.escapeRegExp("@weekday"),token:"keyword"},{regex:h.escapeRegExp("@todayStart"),token:"keyword"},{regex:h.escapeRegExp("@todayEnd"),token:"keyword"},{regex:h.escapeRegExp("@monthStart"),token:"keyword"},{regex:h.escapeRegExp("@monthEnd"),token:"keyword"},{regex:h.escapeRegExp("@yearStart"),token:"keyword"},{regex:h.escapeRegExp("@yearEnd"),token:"keyword"},{regex:h.escapeRegExp("@request.method"),token:"keyword"}],meta:{lineComment:"//"}}))}ye(()=>{const t={key:"Enter",run:i=>{b&&y("submit",s)}};return G(),n(11,f=new C({parent:w,state:q.create({doc:s,extensions:[ke(),xe(),be(),we(),Ee(),q.allowMultipleSelections.of(!0),Se(Me,{fallback:!0}),Ke(),Ce(),qe(),Re(),Ie.of([t,...Le,...ve,Ae.find(i=>i.key==="Mod-d"),...De,...Oe]),C.lineWrapping,_e({override:[ie],icons:!1}),U.of(Y(l)),F.of(C.editable.of(!o)),T.of(q.readOnly.of(o)),H.of(z()),q.transactionFilter.of(i=>{var u,c,d;if(b&&i.newDoc.lines>1){if(!((d=(c=(u=i.changes)==null?void 0:u.inserted)==null?void 0:c.filter(m=>!!m.text.find(x=>x)))!=null&&d.length))return[];i.newDoc.text=[i.newDoc.text.join(" ")]}return i}),C.updateListener.of(i=>{!i.docChanged||o||(n(1,s=i.state.doc.toString()),P())})]})})),()=>{clearTimeout(_),V(),f==null||f.destroy()}});function oe(t){me[t?"unshift":"push"](()=>{w=t,n(0,w)})}return e.$$set=t=>{"id"in t&&n(2,g=t.id),"value"in t&&n(1,s=t.value),"disabled"in t&&n(3,o=t.disabled),"placeholder"in t&&n(4,l=t.placeholder),"baseCollection"in t&&n(5,a=t.baseCollection),"singleLine"in t&&n(6,b=t.singleLine),"extraAutocompleteKeys"in t&&n(7,v=t.extraAutocompleteKeys),"disableRequestKeys"in t&&n(8,E=t.disableRequestKeys),"disableIndirectCollectionsKeys"in t&&n(9,S=t.disableIndirectCollectionsKeys)},e.$$.update=()=>{e.$$.dirty[0]&32&&n(13,I=Ve(a)),e.$$.dirty[0]&25352&&!o&&(D!=I||E!==-1||S!==-1)&&(n(14,D=I),j()),e.$$.dirty[0]&4&&g&&G(),e.$$.dirty[0]&2080&&f&&a!=null&&a.schema&&f.dispatch({effects:[H.reconfigure(z())]}),e.$$.dirty[0]&6152&&f&&A!=o&&(f.dispatch({effects:[F.reconfigure(C.editable.of(!o)),T.reconfigure(q.readOnly.of(o))]}),n(12,A=o),P()),e.$$.dirty[0]&2050&&f&&s!=f.state.doc.toString()&&f.dispatch({changes:{from:0,to:f.state.doc.length,insert:s}}),e.$$.dirty[0]&2064&&f&&typeof l<"u"&&f.dispatch({effects:[U.reconfigure(Y(l))]})},[w,s,g,o,l,a,b,v,E,S,O,f,A,I,D,oe]}class Xe extends se{constructor(r){super(),ae(this,r,Ge,Pe,le,{id:2,value:1,disabled:3,placeholder:4,baseCollection:5,singleLine:6,extraAutocompleteKeys:7,disableRequestKeys:8,disableIndirectCollectionsKeys:9,focus:10},null,[-1,-1])}get focus(){return this.$$.ctx[10]}}export{Xe as default}; diff --git a/ui/dist/assets/ListApiDocs-be6f6f24.js b/ui/dist/assets/ListApiDocs-9cc6bb77.js similarity index 99% rename from ui/dist/assets/ListApiDocs-be6f6f24.js rename to ui/dist/assets/ListApiDocs-9cc6bb77.js index 042aac1f..c123b7c7 100644 --- a/ui/dist/assets/ListApiDocs-be6f6f24.js +++ b/ui/dist/assets/ListApiDocs-9cc6bb77.js @@ -1,4 +1,4 @@ -import{S as Ze,i as tl,s as el,e,b as s,E as sl,f as a,g as u,u as ll,y as Qe,o as m,w as _,h as t,N as Fe,O as se,c as Qt,m as Ut,x as ke,P as Ue,Q as nl,k as ol,R as al,n as il,t as $t,a as Ct,d as jt,T as rl,C as ve,p as cl,r as Le}from"./index-3b554c68.js";import{S as dl}from"./SdkTabs-88bdaa1d.js";import{F as pl}from"./FieldsQueryParam-e878558e.js";function fl(d){let n,o,i;return{c(){n=e("span"),n.textContent="Show details",o=s(),i=e("i"),a(n,"class","txt"),a(i,"class","ri-arrow-down-s-line")},m(f,h){u(f,n,h),u(f,o,h),u(f,i,h)},d(f){f&&(m(n),m(o),m(i))}}}function ul(d){let n,o,i;return{c(){n=e("span"),n.textContent="Hide details",o=s(),i=e("i"),a(n,"class","txt"),a(i,"class","ri-arrow-up-s-line")},m(f,h){u(f,n,h),u(f,o,h),u(f,i,h)},d(f){f&&(m(n),m(o),m(i))}}}function je(d){let n,o,i,f,h,r,b,$,C,g,p,tt,kt,zt,E,Kt,H,rt,R,et,ne,Q,U,oe,ct,yt,lt,vt,ae,dt,pt,st,N,Jt,Ft,y,nt,Lt,Vt,At,j,ot,Tt,Wt,Pt,F,ft,Rt,ie,ut,re,M,Ot,at,St,O,mt,ce,z,Et,Xt,Nt,de,q,Yt,K,ht,pe,I,fe,B,ue,P,qt,J,bt,me,gt,he,x,Dt,it,Ht,be,Mt,Zt,V,_t,ge,It,_e,wt,we,W,G,xe,xt,te,X,ee,L,Y,S,Bt,$e,Z,v,Gt;return{c(){n=e("p"),n.innerHTML=`The syntax basically follows the format +import{S as Ze,i as tl,s as el,e,b as s,E as sl,f as a,g as u,u as ll,y as Qe,o as m,w as _,h as t,N as Fe,O as se,c as Qt,m as Ut,x as ke,P as Ue,Q as nl,k as ol,R as al,n as il,t as $t,a as Ct,d as jt,T as rl,C as ve,p as cl,r as Le}from"./index-26bf667a.js";import{S as dl}from"./SdkTabs-27205987.js";import{F as pl}from"./FieldsQueryParam-c4b1abdd.js";function fl(d){let n,o,i;return{c(){n=e("span"),n.textContent="Show details",o=s(),i=e("i"),a(n,"class","txt"),a(i,"class","ri-arrow-down-s-line")},m(f,h){u(f,n,h),u(f,o,h),u(f,i,h)},d(f){f&&(m(n),m(o),m(i))}}}function ul(d){let n,o,i;return{c(){n=e("span"),n.textContent="Hide details",o=s(),i=e("i"),a(n,"class","txt"),a(i,"class","ri-arrow-up-s-line")},m(f,h){u(f,n,h),u(f,o,h),u(f,i,h)},d(f){f&&(m(n),m(o),m(i))}}}function je(d){let n,o,i,f,h,r,b,$,C,g,p,tt,kt,zt,E,Kt,H,rt,R,et,ne,Q,U,oe,ct,yt,lt,vt,ae,dt,pt,st,N,Jt,Ft,y,nt,Lt,Vt,At,j,ot,Tt,Wt,Pt,F,ft,Rt,ie,ut,re,M,Ot,at,St,O,mt,ce,z,Et,Xt,Nt,de,q,Yt,K,ht,pe,I,fe,B,ue,P,qt,J,bt,me,gt,he,x,Dt,it,Ht,be,Mt,Zt,V,_t,ge,It,_e,wt,we,W,G,xe,xt,te,X,ee,L,Y,S,Bt,$e,Z,v,Gt;return{c(){n=e("p"),n.innerHTML=`The syntax basically follows the format OPERAND OPERATOR OPERAND, where:`,o=s(),i=e("ul"),f=e("li"),f.innerHTML=`OPERAND - could be any of the above field literal, string (single or double quoted), number, null, true, false`,h=s(),r=e("li"),b=e("code"),b.textContent="OPERATOR",$=_(` - is one of: `),C=e("br"),g=s(),p=e("ul"),tt=e("li"),kt=e("code"),kt.textContent="=",zt=s(),E=e("span"),E.textContent="Equal",Kt=s(),H=e("li"),rt=e("code"),rt.textContent="!=",R=s(),et=e("span"),et.textContent="NOT equal",ne=s(),Q=e("li"),U=e("code"),U.textContent=">",oe=s(),ct=e("span"),ct.textContent="Greater than",yt=s(),lt=e("li"),vt=e("code"),vt.textContent=">=",ae=s(),dt=e("span"),dt.textContent="Greater than or equal",pt=s(),st=e("li"),N=e("code"),N.textContent="<",Jt=s(),Ft=e("span"),Ft.textContent="Less than",y=s(),nt=e("li"),Lt=e("code"),Lt.textContent="<=",Vt=s(),At=e("span"),At.textContent="Less than or equal",j=s(),ot=e("li"),Tt=e("code"),Tt.textContent="~",Wt=s(),Pt=e("span"),Pt.textContent=`Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for diff --git a/ui/dist/assets/ListExternalAuthsDocs-6814fc58.js b/ui/dist/assets/ListExternalAuthsDocs-3cadeb8f.js similarity index 97% rename from ui/dist/assets/ListExternalAuthsDocs-6814fc58.js rename to ui/dist/assets/ListExternalAuthsDocs-3cadeb8f.js index 34fa64f9..8e283575 100644 --- a/ui/dist/assets/ListExternalAuthsDocs-6814fc58.js +++ b/ui/dist/assets/ListExternalAuthsDocs-3cadeb8f.js @@ -1,4 +1,4 @@ -import{S as ze,i as Qe,s as Ue,O as F,e as i,w as v,b as m,c as pe,f as b,g as c,h as a,m as ue,x as N,P as Oe,Q as je,k as Fe,R as Ne,n as Ge,t as G,a as K,o as d,d as me,C as Ke,p as Je,r as J,u as Ve,N as Xe}from"./index-3b554c68.js";import{S as Ye}from"./SdkTabs-88bdaa1d.js";import{F as Ze}from"./FieldsQueryParam-e878558e.js";function De(o,l,s){const n=o.slice();return n[5]=l[s],n}function He(o,l,s){const n=o.slice();return n[5]=l[s],n}function Re(o,l){let s,n=l[5].code+"",f,_,r,u;function h(){return l[4](l[5])}return{key:o,first:null,c(){s=i("button"),f=v(n),_=m(),b(s,"class","tab-item"),J(s,"active",l[1]===l[5].code),this.first=s},m(w,y){c(w,s,y),a(s,f),a(s,_),r||(u=Ve(s,"click",h),r=!0)},p(w,y){l=w,y&4&&n!==(n=l[5].code+"")&&N(f,n),y&6&&J(s,"active",l[1]===l[5].code)},d(w){w&&d(s),r=!1,u()}}}function We(o,l){let s,n,f,_;return n=new Xe({props:{content:l[5].body}}),{key:o,first:null,c(){s=i("div"),pe(n.$$.fragment),f=m(),b(s,"class","tab-item"),J(s,"active",l[1]===l[5].code),this.first=s},m(r,u){c(r,s,u),ue(n,s,null),a(s,f),_=!0},p(r,u){l=r;const h={};u&4&&(h.content=l[5].body),n.$set(h),(!_||u&6)&&J(s,"active",l[1]===l[5].code)},i(r){_||(G(n.$$.fragment,r),_=!0)},o(r){K(n.$$.fragment,r),_=!1},d(r){r&&d(s),me(n)}}}function xe(o){var Ce,Se,Ee,Ie;let l,s,n=o[0].name+"",f,_,r,u,h,w,y,R=o[0].name+"",V,be,fe,X,Y,P,Z,I,x,$,W,he,z,T,_e,ee,Q=o[0].name+"",te,ke,le,ve,ge,U,se,B,ae,q,oe,L,ne,A,ie,$e,ce,E,de,M,re,C,O,g=[],we=new Map,ye,D,k=[],Pe=new Map,S;P=new Ye({props:{js:` +import{S as ze,i as Qe,s as Ue,O as F,e as i,w as v,b as m,c as pe,f as b,g as c,h as a,m as ue,x as N,P as Oe,Q as je,k as Fe,R as Ne,n as Ge,t as G,a as K,o as d,d as me,C as Ke,p as Je,r as J,u as Ve,N as Xe}from"./index-26bf667a.js";import{S as Ye}from"./SdkTabs-27205987.js";import{F as Ze}from"./FieldsQueryParam-c4b1abdd.js";function De(o,l,s){const n=o.slice();return n[5]=l[s],n}function He(o,l,s){const n=o.slice();return n[5]=l[s],n}function Re(o,l){let s,n=l[5].code+"",f,_,r,u;function h(){return l[4](l[5])}return{key:o,first:null,c(){s=i("button"),f=v(n),_=m(),b(s,"class","tab-item"),J(s,"active",l[1]===l[5].code),this.first=s},m(w,y){c(w,s,y),a(s,f),a(s,_),r||(u=Ve(s,"click",h),r=!0)},p(w,y){l=w,y&4&&n!==(n=l[5].code+"")&&N(f,n),y&6&&J(s,"active",l[1]===l[5].code)},d(w){w&&d(s),r=!1,u()}}}function We(o,l){let s,n,f,_;return n=new Xe({props:{content:l[5].body}}),{key:o,first:null,c(){s=i("div"),pe(n.$$.fragment),f=m(),b(s,"class","tab-item"),J(s,"active",l[1]===l[5].code),this.first=s},m(r,u){c(r,s,u),ue(n,s,null),a(s,f),_=!0},p(r,u){l=r;const h={};u&4&&(h.content=l[5].body),n.$set(h),(!_||u&6)&&J(s,"active",l[1]===l[5].code)},i(r){_||(G(n.$$.fragment,r),_=!0)},o(r){K(n.$$.fragment,r),_=!1},d(r){r&&d(s),me(n)}}}function xe(o){var Ce,Se,Ee,Ie;let l,s,n=o[0].name+"",f,_,r,u,h,w,y,R=o[0].name+"",V,be,fe,X,Y,P,Z,I,x,$,W,he,z,T,_e,ee,Q=o[0].name+"",te,ke,le,ve,ge,U,se,B,ae,q,oe,L,ne,A,ie,$e,ce,E,de,M,re,C,O,g=[],we=new Map,ye,D,k=[],Pe=new Map,S;P=new Ye({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/PageAdminConfirmPasswordReset-3f83e2fb.js b/ui/dist/assets/PageAdminConfirmPasswordReset-f7ab4776.js similarity index 98% rename from ui/dist/assets/PageAdminConfirmPasswordReset-3f83e2fb.js rename to ui/dist/assets/PageAdminConfirmPasswordReset-f7ab4776.js index 67402d51..d23e8225 100644 --- a/ui/dist/assets/PageAdminConfirmPasswordReset-3f83e2fb.js +++ b/ui/dist/assets/PageAdminConfirmPasswordReset-f7ab4776.js @@ -1,2 +1,2 @@ -import{S as E,i as G,s as I,F as K,c as R,m as A,t as B,a as N,d as T,C as M,q as J,e as _,w as P,b as k,f,r as L,g as b,h as c,u as j,v as O,j as Q,l as U,o as w,A as V,p as W,B as X,D as Y,x as Z,z as q}from"./index-3b554c68.js";function y(i){let e,n,s;return{c(){e=P("for "),n=_("strong"),s=P(i[3]),f(n,"class","txt-nowrap")},m(l,t){b(l,e,t),b(l,n,t),c(n,s)},p(l,t){t&8&&Z(s,l[3])},d(l){l&&(w(e),w(n))}}}function x(i){let e,n,s,l,t,u,p,d;return{c(){e=_("label"),n=P("New password"),l=k(),t=_("input"),f(e,"for",s=i[8]),f(t,"type","password"),f(t,"id",u=i[8]),t.required=!0,t.autofocus=!0},m(r,a){b(r,e,a),c(e,n),b(r,l,a),b(r,t,a),q(t,i[0]),t.focus(),p||(d=j(t,"input",i[6]),p=!0)},p(r,a){a&256&&s!==(s=r[8])&&f(e,"for",s),a&256&&u!==(u=r[8])&&f(t,"id",u),a&1&&t.value!==r[0]&&q(t,r[0])},d(r){r&&(w(e),w(l),w(t)),p=!1,d()}}}function ee(i){let e,n,s,l,t,u,p,d;return{c(){e=_("label"),n=P("New password confirm"),l=k(),t=_("input"),f(e,"for",s=i[8]),f(t,"type","password"),f(t,"id",u=i[8]),t.required=!0},m(r,a){b(r,e,a),c(e,n),b(r,l,a),b(r,t,a),q(t,i[1]),p||(d=j(t,"input",i[7]),p=!0)},p(r,a){a&256&&s!==(s=r[8])&&f(e,"for",s),a&256&&u!==(u=r[8])&&f(t,"id",u),a&2&&t.value!==r[1]&&q(t,r[1])},d(r){r&&(w(e),w(l),w(t)),p=!1,d()}}}function te(i){let e,n,s,l,t,u,p,d,r,a,g,S,C,v,h,F,z,m=i[3]&&y(i);return u=new J({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:o})=>({8:o}),({uniqueId:o})=>o?256:0]},$$scope:{ctx:i}}}),d=new J({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:o})=>({8:o}),({uniqueId:o})=>o?256:0]},$$scope:{ctx:i}}}),{c(){e=_("form"),n=_("div"),s=_("h4"),l=P(`Reset your admin password +import{S as E,i as G,s as I,F as K,c as R,m as A,t as B,a as N,d as T,C as M,q as J,e as _,w as P,b as k,f,r as L,g as b,h as c,u as j,v as O,j as Q,l as U,o as w,A as V,p as W,B as X,D as Y,x as Z,z as q}from"./index-26bf667a.js";function y(i){let e,n,s;return{c(){e=P("for "),n=_("strong"),s=P(i[3]),f(n,"class","txt-nowrap")},m(l,t){b(l,e,t),b(l,n,t),c(n,s)},p(l,t){t&8&&Z(s,l[3])},d(l){l&&(w(e),w(n))}}}function x(i){let e,n,s,l,t,u,p,d;return{c(){e=_("label"),n=P("New password"),l=k(),t=_("input"),f(e,"for",s=i[8]),f(t,"type","password"),f(t,"id",u=i[8]),t.required=!0,t.autofocus=!0},m(r,a){b(r,e,a),c(e,n),b(r,l,a),b(r,t,a),q(t,i[0]),t.focus(),p||(d=j(t,"input",i[6]),p=!0)},p(r,a){a&256&&s!==(s=r[8])&&f(e,"for",s),a&256&&u!==(u=r[8])&&f(t,"id",u),a&1&&t.value!==r[0]&&q(t,r[0])},d(r){r&&(w(e),w(l),w(t)),p=!1,d()}}}function ee(i){let e,n,s,l,t,u,p,d;return{c(){e=_("label"),n=P("New password confirm"),l=k(),t=_("input"),f(e,"for",s=i[8]),f(t,"type","password"),f(t,"id",u=i[8]),t.required=!0},m(r,a){b(r,e,a),c(e,n),b(r,l,a),b(r,t,a),q(t,i[1]),p||(d=j(t,"input",i[7]),p=!0)},p(r,a){a&256&&s!==(s=r[8])&&f(e,"for",s),a&256&&u!==(u=r[8])&&f(t,"id",u),a&2&&t.value!==r[1]&&q(t,r[1])},d(r){r&&(w(e),w(l),w(t)),p=!1,d()}}}function te(i){let e,n,s,l,t,u,p,d,r,a,g,S,C,v,h,F,z,m=i[3]&&y(i);return u=new J({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:o})=>({8:o}),({uniqueId:o})=>o?256:0]},$$scope:{ctx:i}}}),d=new J({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:o})=>({8:o}),({uniqueId:o})=>o?256:0]},$$scope:{ctx:i}}}),{c(){e=_("form"),n=_("div"),s=_("h4"),l=P(`Reset your admin password `),m&&m.c(),t=k(),R(u.$$.fragment),p=k(),R(d.$$.fragment),r=k(),a=_("button"),g=_("span"),g.textContent="Set new password",S=k(),C=_("div"),v=_("a"),v.textContent="Back to login",f(s,"class","m-b-xs"),f(n,"class","content txt-center m-b-sm"),f(g,"class","txt"),f(a,"type","submit"),f(a,"class","btn btn-lg btn-block"),a.disabled=i[2],L(a,"btn-loading",i[2]),f(e,"class","m-b-base"),f(v,"href","/login"),f(v,"class","link-hint"),f(C,"class","content txt-center")},m(o,$){b(o,e,$),c(e,n),c(n,s),c(s,l),m&&m.m(s,null),c(e,t),A(u,e,null),c(e,p),A(d,e,null),c(e,r),c(e,a),c(a,g),b(o,S,$),b(o,C,$),c(C,v),h=!0,F||(z=[j(e,"submit",O(i[4])),Q(U.call(null,v))],F=!0)},p(o,$){o[3]?m?m.p(o,$):(m=y(o),m.c(),m.m(s,null)):m&&(m.d(1),m=null);const D={};$&769&&(D.$$scope={dirty:$,ctx:o}),u.$set(D);const H={};$&770&&(H.$$scope={dirty:$,ctx:o}),d.$set(H),(!h||$&4)&&(a.disabled=o[2]),(!h||$&4)&&L(a,"btn-loading",o[2])},i(o){h||(B(u.$$.fragment,o),B(d.$$.fragment,o),h=!0)},o(o){N(u.$$.fragment,o),N(d.$$.fragment,o),h=!1},d(o){o&&(w(e),w(S),w(C)),m&&m.d(),T(u),T(d),F=!1,V(z)}}}function se(i){let e,n;return e=new K({props:{$$slots:{default:[te]},$$scope:{ctx:i}}}),{c(){R(e.$$.fragment)},m(s,l){A(e,s,l),n=!0},p(s,[l]){const t={};l&527&&(t.$$scope={dirty:l,ctx:s}),e.$set(t)},i(s){n||(B(e.$$.fragment,s),n=!0)},o(s){N(e.$$.fragment,s),n=!1},d(s){T(e,s)}}}function le(i,e,n){let s,{params:l}=e,t="",u="",p=!1;async function d(){if(!p){n(2,p=!0);try{await W.admins.confirmPasswordReset(l==null?void 0:l.token,t,u),X("Successfully set a new admin password."),Y("/")}catch(g){W.error(g)}n(2,p=!1)}}function r(){t=this.value,n(0,t)}function a(){u=this.value,n(1,u)}return i.$$set=g=>{"params"in g&&n(5,l=g.params)},i.$$.update=()=>{i.$$.dirty&32&&n(3,s=M.getJWTPayload(l==null?void 0:l.token).email||"")},[t,u,p,s,d,l,r,a]}class ae extends E{constructor(e){super(),G(this,e,le,se,I,{params:5})}}export{ae as default}; diff --git a/ui/dist/assets/PageAdminRequestPasswordReset-fabf61d9.js b/ui/dist/assets/PageAdminRequestPasswordReset-24a89844.js similarity index 98% rename from ui/dist/assets/PageAdminRequestPasswordReset-fabf61d9.js rename to ui/dist/assets/PageAdminRequestPasswordReset-24a89844.js index 58185077..3916984c 100644 --- a/ui/dist/assets/PageAdminRequestPasswordReset-fabf61d9.js +++ b/ui/dist/assets/PageAdminRequestPasswordReset-24a89844.js @@ -1 +1 @@ -import{S as M,i as T,s as j,F as z,c as R,m as S,t as w,a as y,d as E,b as v,e as _,f as p,g,h as d,j as A,l as B,k as N,n as D,o as k,p as C,q as G,r as F,u as H,v as I,w as h,x as J,y as P,z as L}from"./index-3b554c68.js";function K(u){let e,s,n,l,t,o,c,m,r,a,b,f;return l=new G({props:{class:"form-field required",name:"email",$$slots:{default:[Q,({uniqueId:i})=>({5:i}),({uniqueId:i})=>i?32:0]},$$scope:{ctx:u}}}),{c(){e=_("form"),s=_("div"),s.innerHTML='

Forgotten admin password

Enter the email associated with your account and we’ll send you a recovery link:

',n=v(),R(l.$$.fragment),t=v(),o=_("button"),c=_("i"),m=v(),r=_("span"),r.textContent="Send recovery link",p(s,"class","content txt-center m-b-sm"),p(c,"class","ri-mail-send-line"),p(r,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-lg btn-block"),o.disabled=u[1],F(o,"btn-loading",u[1]),p(e,"class","m-b-base")},m(i,$){g(i,e,$),d(e,s),d(e,n),S(l,e,null),d(e,t),d(e,o),d(o,c),d(o,m),d(o,r),a=!0,b||(f=H(e,"submit",I(u[3])),b=!0)},p(i,$){const q={};$&97&&(q.$$scope={dirty:$,ctx:i}),l.$set(q),(!a||$&2)&&(o.disabled=i[1]),(!a||$&2)&&F(o,"btn-loading",i[1])},i(i){a||(w(l.$$.fragment,i),a=!0)},o(i){y(l.$$.fragment,i),a=!1},d(i){i&&k(e),E(l),b=!1,f()}}}function O(u){let e,s,n,l,t,o,c,m,r;return{c(){e=_("div"),s=_("div"),s.innerHTML='',n=v(),l=_("div"),t=_("p"),o=h("Check "),c=_("strong"),m=h(u[0]),r=h(" for the recovery link."),p(s,"class","icon"),p(c,"class","txt-nowrap"),p(l,"class","content"),p(e,"class","alert alert-success")},m(a,b){g(a,e,b),d(e,s),d(e,n),d(e,l),d(l,t),d(t,o),d(t,c),d(c,m),d(t,r)},p(a,b){b&1&&J(m,a[0])},i:P,o:P,d(a){a&&k(e)}}}function Q(u){let e,s,n,l,t,o,c,m;return{c(){e=_("label"),s=h("Email"),l=v(),t=_("input"),p(e,"for",n=u[5]),p(t,"type","email"),p(t,"id",o=u[5]),t.required=!0,t.autofocus=!0},m(r,a){g(r,e,a),d(e,s),g(r,l,a),g(r,t,a),L(t,u[0]),t.focus(),c||(m=H(t,"input",u[4]),c=!0)},p(r,a){a&32&&n!==(n=r[5])&&p(e,"for",n),a&32&&o!==(o=r[5])&&p(t,"id",o),a&1&&t.value!==r[0]&&L(t,r[0])},d(r){r&&(k(e),k(l),k(t)),c=!1,m()}}}function U(u){let e,s,n,l,t,o,c,m;const r=[O,K],a=[];function b(f,i){return f[2]?0:1}return e=b(u),s=a[e]=r[e](u),{c(){s.c(),n=v(),l=_("div"),t=_("a"),t.textContent="Back to login",p(t,"href","/login"),p(t,"class","link-hint"),p(l,"class","content txt-center")},m(f,i){a[e].m(f,i),g(f,n,i),g(f,l,i),d(l,t),o=!0,c||(m=A(B.call(null,t)),c=!0)},p(f,i){let $=e;e=b(f),e===$?a[e].p(f,i):(N(),y(a[$],1,1,()=>{a[$]=null}),D(),s=a[e],s?s.p(f,i):(s=a[e]=r[e](f),s.c()),w(s,1),s.m(n.parentNode,n))},i(f){o||(w(s),o=!0)},o(f){y(s),o=!1},d(f){f&&(k(n),k(l)),a[e].d(f),c=!1,m()}}}function V(u){let e,s;return e=new z({props:{$$slots:{default:[U]},$$scope:{ctx:u}}}),{c(){R(e.$$.fragment)},m(n,l){S(e,n,l),s=!0},p(n,[l]){const t={};l&71&&(t.$$scope={dirty:l,ctx:n}),e.$set(t)},i(n){s||(w(e.$$.fragment,n),s=!0)},o(n){y(e.$$.fragment,n),s=!1},d(n){E(e,n)}}}function W(u,e,s){let n="",l=!1,t=!1;async function o(){if(!l){s(1,l=!0);try{await C.admins.requestPasswordReset(n),s(2,t=!0)}catch(m){C.error(m)}s(1,l=!1)}}function c(){n=this.value,s(0,n)}return[n,l,t,o,c]}class Y extends M{constructor(e){super(),T(this,e,W,V,j,{})}}export{Y as default}; +import{S as M,i as T,s as j,F as z,c as R,m as S,t as w,a as y,d as E,b as v,e as _,f as p,g,h as d,j as A,l as B,k as N,n as D,o as k,p as C,q as G,r as F,u as H,v as I,w as h,x as J,y as P,z as L}from"./index-26bf667a.js";function K(u){let e,s,n,l,t,o,c,m,r,a,b,f;return l=new G({props:{class:"form-field required",name:"email",$$slots:{default:[Q,({uniqueId:i})=>({5:i}),({uniqueId:i})=>i?32:0]},$$scope:{ctx:u}}}),{c(){e=_("form"),s=_("div"),s.innerHTML='

Forgotten admin password

Enter the email associated with your account and we’ll send you a recovery link:

',n=v(),R(l.$$.fragment),t=v(),o=_("button"),c=_("i"),m=v(),r=_("span"),r.textContent="Send recovery link",p(s,"class","content txt-center m-b-sm"),p(c,"class","ri-mail-send-line"),p(r,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-lg btn-block"),o.disabled=u[1],F(o,"btn-loading",u[1]),p(e,"class","m-b-base")},m(i,$){g(i,e,$),d(e,s),d(e,n),S(l,e,null),d(e,t),d(e,o),d(o,c),d(o,m),d(o,r),a=!0,b||(f=H(e,"submit",I(u[3])),b=!0)},p(i,$){const q={};$&97&&(q.$$scope={dirty:$,ctx:i}),l.$set(q),(!a||$&2)&&(o.disabled=i[1]),(!a||$&2)&&F(o,"btn-loading",i[1])},i(i){a||(w(l.$$.fragment,i),a=!0)},o(i){y(l.$$.fragment,i),a=!1},d(i){i&&k(e),E(l),b=!1,f()}}}function O(u){let e,s,n,l,t,o,c,m,r;return{c(){e=_("div"),s=_("div"),s.innerHTML='',n=v(),l=_("div"),t=_("p"),o=h("Check "),c=_("strong"),m=h(u[0]),r=h(" for the recovery link."),p(s,"class","icon"),p(c,"class","txt-nowrap"),p(l,"class","content"),p(e,"class","alert alert-success")},m(a,b){g(a,e,b),d(e,s),d(e,n),d(e,l),d(l,t),d(t,o),d(t,c),d(c,m),d(t,r)},p(a,b){b&1&&J(m,a[0])},i:P,o:P,d(a){a&&k(e)}}}function Q(u){let e,s,n,l,t,o,c,m;return{c(){e=_("label"),s=h("Email"),l=v(),t=_("input"),p(e,"for",n=u[5]),p(t,"type","email"),p(t,"id",o=u[5]),t.required=!0,t.autofocus=!0},m(r,a){g(r,e,a),d(e,s),g(r,l,a),g(r,t,a),L(t,u[0]),t.focus(),c||(m=H(t,"input",u[4]),c=!0)},p(r,a){a&32&&n!==(n=r[5])&&p(e,"for",n),a&32&&o!==(o=r[5])&&p(t,"id",o),a&1&&t.value!==r[0]&&L(t,r[0])},d(r){r&&(k(e),k(l),k(t)),c=!1,m()}}}function U(u){let e,s,n,l,t,o,c,m;const r=[O,K],a=[];function b(f,i){return f[2]?0:1}return e=b(u),s=a[e]=r[e](u),{c(){s.c(),n=v(),l=_("div"),t=_("a"),t.textContent="Back to login",p(t,"href","/login"),p(t,"class","link-hint"),p(l,"class","content txt-center")},m(f,i){a[e].m(f,i),g(f,n,i),g(f,l,i),d(l,t),o=!0,c||(m=A(B.call(null,t)),c=!0)},p(f,i){let $=e;e=b(f),e===$?a[e].p(f,i):(N(),y(a[$],1,1,()=>{a[$]=null}),D(),s=a[e],s?s.p(f,i):(s=a[e]=r[e](f),s.c()),w(s,1),s.m(n.parentNode,n))},i(f){o||(w(s),o=!0)},o(f){y(s),o=!1},d(f){f&&(k(n),k(l)),a[e].d(f),c=!1,m()}}}function V(u){let e,s;return e=new z({props:{$$slots:{default:[U]},$$scope:{ctx:u}}}),{c(){R(e.$$.fragment)},m(n,l){S(e,n,l),s=!0},p(n,[l]){const t={};l&71&&(t.$$scope={dirty:l,ctx:n}),e.$set(t)},i(n){s||(w(e.$$.fragment,n),s=!0)},o(n){y(e.$$.fragment,n),s=!1},d(n){E(e,n)}}}function W(u,e,s){let n="",l=!1,t=!1;async function o(){if(!l){s(1,l=!0);try{await C.admins.requestPasswordReset(n),s(2,t=!0)}catch(m){C.error(m)}s(1,l=!1)}}function c(){n=this.value,s(0,n)}return[n,l,t,o,c]}class Y extends M{constructor(e){super(),T(this,e,W,V,j,{})}}export{Y as default}; diff --git a/ui/dist/assets/PageOAuth2Redirect-18ed8ff3.js b/ui/dist/assets/PageOAuth2Redirect-0f04d5a1.js similarity index 86% rename from ui/dist/assets/PageOAuth2Redirect-18ed8ff3.js rename to ui/dist/assets/PageOAuth2Redirect-0f04d5a1.js index 5fe52c5f..c65ae051 100644 --- a/ui/dist/assets/PageOAuth2Redirect-18ed8ff3.js +++ b/ui/dist/assets/PageOAuth2Redirect-0f04d5a1.js @@ -1 +1 @@ -import{S as o,i as c,s as i,e as r,f as l,g as u,y as n,o as d,I as h}from"./index-3b554c68.js";function p(s){let t;return{c(){t=r("div"),t.innerHTML='

Auth completed.

You can close this window and go back to the app.
',l(t,"class","content txt-hint txt-center p-base")},m(e,a){u(e,t,a)},p:n,i:n,o:n,d(e){e&&d(t)}}}function f(s){return h(()=>{window.close()}),[]}class x extends o{constructor(t){super(),c(this,t,f,p,i,{})}}export{x as default}; +import{S as o,i as c,s as i,e as r,f as l,g as u,y as n,o as d,I as h}from"./index-26bf667a.js";function p(s){let t;return{c(){t=r("div"),t.innerHTML='

Auth completed.

You can close this window and go back to the app.
',l(t,"class","content txt-hint txt-center p-base")},m(e,a){u(e,t,a)},p:n,i:n,o:n,d(e){e&&d(t)}}}function f(s){return h(()=>{window.close()}),[]}class x extends o{constructor(t){super(),c(this,t,f,p,i,{})}}export{x as default}; diff --git a/ui/dist/assets/PageRecordConfirmEmailChange-db209470.js b/ui/dist/assets/PageRecordConfirmEmailChange-96f3613e.js similarity index 98% rename from ui/dist/assets/PageRecordConfirmEmailChange-db209470.js rename to ui/dist/assets/PageRecordConfirmEmailChange-96f3613e.js index c07efbef..3bbfe7c4 100644 --- a/ui/dist/assets/PageRecordConfirmEmailChange-db209470.js +++ b/ui/dist/assets/PageRecordConfirmEmailChange-96f3613e.js @@ -1,2 +1,2 @@ -import{S as G,i as I,s as J,F as M,c as S,m as L,t as h,a as v,d as z,C as N,E as R,g as _,k as W,n as Y,o as b,G as j,H as A,p as B,q as D,e as m,w as y,b as C,f as p,r as T,h as g,u as P,v as K,y as E,x as O,z as F}from"./index-3b554c68.js";function Q(i){let e,t,n,l,s,o,f,a,r,u,k,$,d=i[3]&&H(i);return o=new D({props:{class:"form-field required",name:"password",$$slots:{default:[V,({uniqueId:c})=>({8:c}),({uniqueId:c})=>c?256:0]},$$scope:{ctx:i}}}),{c(){e=m("form"),t=m("div"),n=m("h5"),l=y(`Type your password to confirm changing your email address +import{S as G,i as I,s as J,F as M,c as S,m as L,t as h,a as v,d as z,C as N,E as R,g as _,k as W,n as Y,o as b,G as j,H as A,p as B,q as D,e as m,w as y,b as C,f as p,r as T,h as g,u as P,v as K,y as E,x as O,z as F}from"./index-26bf667a.js";function Q(i){let e,t,n,l,s,o,f,a,r,u,k,$,d=i[3]&&H(i);return o=new D({props:{class:"form-field required",name:"password",$$slots:{default:[V,({uniqueId:c})=>({8:c}),({uniqueId:c})=>c?256:0]},$$scope:{ctx:i}}}),{c(){e=m("form"),t=m("div"),n=m("h5"),l=y(`Type your password to confirm changing your email address `),d&&d.c(),s=C(),S(o.$$.fragment),f=C(),a=m("button"),r=m("span"),r.textContent="Confirm new email",p(t,"class","content txt-center m-b-base"),p(r,"class","txt"),p(a,"type","submit"),p(a,"class","btn btn-lg btn-block"),a.disabled=i[1],T(a,"btn-loading",i[1])},m(c,w){_(c,e,w),g(e,t),g(t,n),g(n,l),d&&d.m(n,null),g(e,s),L(o,e,null),g(e,f),g(e,a),g(a,r),u=!0,k||($=P(e,"submit",K(i[4])),k=!0)},p(c,w){c[3]?d?d.p(c,w):(d=H(c),d.c(),d.m(n,null)):d&&(d.d(1),d=null);const q={};w&769&&(q.$$scope={dirty:w,ctx:c}),o.$set(q),(!u||w&2)&&(a.disabled=c[1]),(!u||w&2)&&T(a,"btn-loading",c[1])},i(c){u||(h(o.$$.fragment,c),u=!0)},o(c){v(o.$$.fragment,c),u=!1},d(c){c&&b(e),d&&d.d(),z(o),k=!1,$()}}}function U(i){let e,t,n,l,s;return{c(){e=m("div"),e.innerHTML='

Successfully changed the user email address.

You can now sign in with your new email address.

',t=C(),n=m("button"),n.textContent="Close",p(e,"class","alert alert-success"),p(n,"type","button"),p(n,"class","btn btn-transparent btn-block")},m(o,f){_(o,e,f),_(o,t,f),_(o,n,f),l||(s=P(n,"click",i[6]),l=!0)},p:E,i:E,o:E,d(o){o&&(b(e),b(t),b(n)),l=!1,s()}}}function H(i){let e,t,n;return{c(){e=y("to "),t=m("strong"),n=y(i[3]),p(t,"class","txt-nowrap")},m(l,s){_(l,e,s),_(l,t,s),g(t,n)},p(l,s){s&8&&O(n,l[3])},d(l){l&&(b(e),b(t))}}}function V(i){let e,t,n,l,s,o,f,a;return{c(){e=m("label"),t=y("Password"),l=C(),s=m("input"),p(e,"for",n=i[8]),p(s,"type","password"),p(s,"id",o=i[8]),s.required=!0,s.autofocus=!0},m(r,u){_(r,e,u),g(e,t),_(r,l,u),_(r,s,u),F(s,i[0]),s.focus(),f||(a=P(s,"input",i[7]),f=!0)},p(r,u){u&256&&n!==(n=r[8])&&p(e,"for",n),u&256&&o!==(o=r[8])&&p(s,"id",o),u&1&&s.value!==r[0]&&F(s,r[0])},d(r){r&&(b(e),b(l),b(s)),f=!1,a()}}}function X(i){let e,t,n,l;const s=[U,Q],o=[];function f(a,r){return a[2]?0:1}return e=f(i),t=o[e]=s[e](i),{c(){t.c(),n=R()},m(a,r){o[e].m(a,r),_(a,n,r),l=!0},p(a,r){let u=e;e=f(a),e===u?o[e].p(a,r):(W(),v(o[u],1,1,()=>{o[u]=null}),Y(),t=o[e],t?t.p(a,r):(t=o[e]=s[e](a),t.c()),h(t,1),t.m(n.parentNode,n))},i(a){l||(h(t),l=!0)},o(a){v(t),l=!1},d(a){a&&b(n),o[e].d(a)}}}function Z(i){let e,t;return e=new M({props:{nobranding:!0,$$slots:{default:[X]},$$scope:{ctx:i}}}),{c(){S(e.$$.fragment)},m(n,l){L(e,n,l),t=!0},p(n,[l]){const s={};l&527&&(s.$$scope={dirty:l,ctx:n}),e.$set(s)},i(n){t||(h(e.$$.fragment,n),t=!0)},o(n){v(e.$$.fragment,n),t=!1},d(n){z(e,n)}}}function x(i,e,t){let n,{params:l}=e,s="",o=!1,f=!1;async function a(){if(o)return;t(1,o=!0);const k=new j("../");try{const $=A(l==null?void 0:l.token);await k.collection($.collectionId).confirmEmailChange(l==null?void 0:l.token,s),t(2,f=!0)}catch($){B.error($)}t(1,o=!1)}const r=()=>window.close();function u(){s=this.value,t(0,s)}return i.$$set=k=>{"params"in k&&t(5,l=k.params)},i.$$.update=()=>{i.$$.dirty&32&&t(3,n=N.getJWTPayload(l==null?void 0:l.token).newEmail||"")},[s,o,f,n,a,l,r,u]}class te extends G{constructor(e){super(),I(this,e,x,Z,J,{params:5})}}export{te as default}; diff --git a/ui/dist/assets/PageRecordConfirmPasswordReset-d2ce212c.js b/ui/dist/assets/PageRecordConfirmPasswordReset-b2841fec.js similarity index 98% rename from ui/dist/assets/PageRecordConfirmPasswordReset-d2ce212c.js rename to ui/dist/assets/PageRecordConfirmPasswordReset-b2841fec.js index 09aee2e7..774e281b 100644 --- a/ui/dist/assets/PageRecordConfirmPasswordReset-d2ce212c.js +++ b/ui/dist/assets/PageRecordConfirmPasswordReset-b2841fec.js @@ -1,2 +1,2 @@ -import{S as J,i as M,s as W,F as Y,c as H,m as N,t as P,a as y,d as T,C as j,E as A,g as _,k as B,n as D,o as m,G as K,H as O,p as Q,q as E,e as b,w as q,b as C,f as p,r as G,h as w,u as S,v as U,y as F,x as V,z as R}from"./index-3b554c68.js";function X(a){let e,l,s,n,t,o,c,r,i,u,v,g,k,h,d=a[4]&&I(a);return o=new E({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:a}}}),r=new E({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:a}}}),{c(){e=b("form"),l=b("div"),s=b("h5"),n=q(`Reset your user password +import{S as J,i as M,s as W,F as Y,c as H,m as N,t as P,a as y,d as T,C as j,E as A,g as _,k as B,n as D,o as m,G as K,H as O,p as Q,q as E,e as b,w as q,b as C,f as p,r as G,h as w,u as S,v as U,y as F,x as V,z as R}from"./index-26bf667a.js";function X(a){let e,l,s,n,t,o,c,r,i,u,v,g,k,h,d=a[4]&&I(a);return o=new E({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:a}}}),r=new E({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:a}}}),{c(){e=b("form"),l=b("div"),s=b("h5"),n=q(`Reset your user password `),d&&d.c(),t=C(),H(o.$$.fragment),c=C(),H(r.$$.fragment),i=C(),u=b("button"),v=b("span"),v.textContent="Set new password",p(l,"class","content txt-center m-b-base"),p(v,"class","txt"),p(u,"type","submit"),p(u,"class","btn btn-lg btn-block"),u.disabled=a[2],G(u,"btn-loading",a[2])},m(f,$){_(f,e,$),w(e,l),w(l,s),w(s,n),d&&d.m(s,null),w(e,t),N(o,e,null),w(e,c),N(r,e,null),w(e,i),w(e,u),w(u,v),g=!0,k||(h=S(e,"submit",U(a[5])),k=!0)},p(f,$){f[4]?d?d.p(f,$):(d=I(f),d.c(),d.m(s,null)):d&&(d.d(1),d=null);const L={};$&3073&&(L.$$scope={dirty:$,ctx:f}),o.$set(L);const z={};$&3074&&(z.$$scope={dirty:$,ctx:f}),r.$set(z),(!g||$&4)&&(u.disabled=f[2]),(!g||$&4)&&G(u,"btn-loading",f[2])},i(f){g||(P(o.$$.fragment,f),P(r.$$.fragment,f),g=!0)},o(f){y(o.$$.fragment,f),y(r.$$.fragment,f),g=!1},d(f){f&&m(e),d&&d.d(),T(o),T(r),k=!1,h()}}}function Z(a){let e,l,s,n,t;return{c(){e=b("div"),e.innerHTML='

Successfully changed the user password.

You can now sign in with your new password.

',l=C(),s=b("button"),s.textContent="Close",p(e,"class","alert alert-success"),p(s,"type","button"),p(s,"class","btn btn-transparent btn-block")},m(o,c){_(o,e,c),_(o,l,c),_(o,s,c),n||(t=S(s,"click",a[7]),n=!0)},p:F,i:F,o:F,d(o){o&&(m(e),m(l),m(s)),n=!1,t()}}}function I(a){let e,l,s;return{c(){e=q("for "),l=b("strong"),s=q(a[4])},m(n,t){_(n,e,t),_(n,l,t),w(l,s)},p(n,t){t&16&&V(s,n[4])},d(n){n&&(m(e),m(l))}}}function x(a){let e,l,s,n,t,o,c,r;return{c(){e=b("label"),l=q("New password"),n=C(),t=b("input"),p(e,"for",s=a[10]),p(t,"type","password"),p(t,"id",o=a[10]),t.required=!0,t.autofocus=!0},m(i,u){_(i,e,u),w(e,l),_(i,n,u),_(i,t,u),R(t,a[0]),t.focus(),c||(r=S(t,"input",a[8]),c=!0)},p(i,u){u&1024&&s!==(s=i[10])&&p(e,"for",s),u&1024&&o!==(o=i[10])&&p(t,"id",o),u&1&&t.value!==i[0]&&R(t,i[0])},d(i){i&&(m(e),m(n),m(t)),c=!1,r()}}}function ee(a){let e,l,s,n,t,o,c,r;return{c(){e=b("label"),l=q("New password confirm"),n=C(),t=b("input"),p(e,"for",s=a[10]),p(t,"type","password"),p(t,"id",o=a[10]),t.required=!0},m(i,u){_(i,e,u),w(e,l),_(i,n,u),_(i,t,u),R(t,a[1]),c||(r=S(t,"input",a[9]),c=!0)},p(i,u){u&1024&&s!==(s=i[10])&&p(e,"for",s),u&1024&&o!==(o=i[10])&&p(t,"id",o),u&2&&t.value!==i[1]&&R(t,i[1])},d(i){i&&(m(e),m(n),m(t)),c=!1,r()}}}function te(a){let e,l,s,n;const t=[Z,X],o=[];function c(r,i){return r[3]?0:1}return e=c(a),l=o[e]=t[e](a),{c(){l.c(),s=A()},m(r,i){o[e].m(r,i),_(r,s,i),n=!0},p(r,i){let u=e;e=c(r),e===u?o[e].p(r,i):(B(),y(o[u],1,1,()=>{o[u]=null}),D(),l=o[e],l?l.p(r,i):(l=o[e]=t[e](r),l.c()),P(l,1),l.m(s.parentNode,s))},i(r){n||(P(l),n=!0)},o(r){y(l),n=!1},d(r){r&&m(s),o[e].d(r)}}}function se(a){let e,l;return e=new Y({props:{nobranding:!0,$$slots:{default:[te]},$$scope:{ctx:a}}}),{c(){H(e.$$.fragment)},m(s,n){N(e,s,n),l=!0},p(s,[n]){const t={};n&2079&&(t.$$scope={dirty:n,ctx:s}),e.$set(t)},i(s){l||(P(e.$$.fragment,s),l=!0)},o(s){y(e.$$.fragment,s),l=!1},d(s){T(e,s)}}}function le(a,e,l){let s,{params:n}=e,t="",o="",c=!1,r=!1;async function i(){if(c)return;l(2,c=!0);const k=new K("../");try{const h=O(n==null?void 0:n.token);await k.collection(h.collectionId).confirmPasswordReset(n==null?void 0:n.token,t,o),l(3,r=!0)}catch(h){Q.error(h)}l(2,c=!1)}const u=()=>window.close();function v(){t=this.value,l(0,t)}function g(){o=this.value,l(1,o)}return a.$$set=k=>{"params"in k&&l(6,n=k.params)},a.$$.update=()=>{a.$$.dirty&64&&l(4,s=j.getJWTPayload(n==null?void 0:n.token).email||"")},[t,o,c,r,s,i,n,u,v,g]}class oe extends J{constructor(e){super(),M(this,e,le,se,W,{params:6})}}export{oe as default}; diff --git a/ui/dist/assets/PageRecordConfirmVerification-bca816f3.js b/ui/dist/assets/PageRecordConfirmVerification-19057812.js similarity index 97% rename from ui/dist/assets/PageRecordConfirmVerification-bca816f3.js rename to ui/dist/assets/PageRecordConfirmVerification-19057812.js index 9f6bc499..b8d8cc81 100644 --- a/ui/dist/assets/PageRecordConfirmVerification-bca816f3.js +++ b/ui/dist/assets/PageRecordConfirmVerification-19057812.js @@ -1 +1 @@ -import{S as v,i as y,s as g,F as w,c as C,m as x,t as $,a as H,d as L,G as P,H as T,E as M,g as a,o as r,e as f,b as _,f as d,u as b,y as p}from"./index-3b554c68.js";function S(c){let t,s,e,n,l;return{c(){t=f("div"),t.innerHTML='

Invalid or expired verification token.

',s=_(),e=f("button"),e.textContent="Close",d(t,"class","alert alert-danger"),d(e,"type","button"),d(e,"class","btn btn-transparent btn-block")},m(i,o){a(i,t,o),a(i,s,o),a(i,e,o),n||(l=b(e,"click",c[4]),n=!0)},p,d(i){i&&(r(t),r(s),r(e)),n=!1,l()}}}function h(c){let t,s,e,n,l;return{c(){t=f("div"),t.innerHTML='

Successfully verified email address.

',s=_(),e=f("button"),e.textContent="Close",d(t,"class","alert alert-success"),d(e,"type","button"),d(e,"class","btn btn-transparent btn-block")},m(i,o){a(i,t,o),a(i,s,o),a(i,e,o),n||(l=b(e,"click",c[3]),n=!0)},p,d(i){i&&(r(t),r(s),r(e)),n=!1,l()}}}function F(c){let t;return{c(){t=f("div"),t.innerHTML='
Please wait...
',d(t,"class","txt-center")},m(s,e){a(s,t,e)},p,d(s){s&&r(t)}}}function I(c){let t;function s(l,i){return l[1]?F:l[0]?h:S}let e=s(c),n=e(c);return{c(){n.c(),t=M()},m(l,i){n.m(l,i),a(l,t,i)},p(l,i){e===(e=s(l))&&n?n.p(l,i):(n.d(1),n=e(l),n&&(n.c(),n.m(t.parentNode,t)))},d(l){l&&r(t),n.d(l)}}}function V(c){let t,s;return t=new w({props:{nobranding:!0,$$slots:{default:[I]},$$scope:{ctx:c}}}),{c(){C(t.$$.fragment)},m(e,n){x(t,e,n),s=!0},p(e,[n]){const l={};n&67&&(l.$$scope={dirty:n,ctx:e}),t.$set(l)},i(e){s||($(t.$$.fragment,e),s=!0)},o(e){H(t.$$.fragment,e),s=!1},d(e){L(t,e)}}}function q(c,t,s){let{params:e}=t,n=!1,l=!1;i();async function i(){s(1,l=!0);const u=new P("../");try{const m=T(e==null?void 0:e.token);await u.collection(m.collectionId).confirmVerification(e==null?void 0:e.token),s(0,n=!0)}catch{s(0,n=!1)}s(1,l=!1)}const o=()=>window.close(),k=()=>window.close();return c.$$set=u=>{"params"in u&&s(2,e=u.params)},[n,l,e,o,k]}class G extends v{constructor(t){super(),y(this,t,q,V,g,{params:2})}}export{G as default}; +import{S as v,i as y,s as g,F as w,c as C,m as x,t as $,a as H,d as L,G as P,H as T,E as M,g as a,o as r,e as f,b as _,f as d,u as b,y as p}from"./index-26bf667a.js";function S(c){let t,s,e,n,l;return{c(){t=f("div"),t.innerHTML='

Invalid or expired verification token.

',s=_(),e=f("button"),e.textContent="Close",d(t,"class","alert alert-danger"),d(e,"type","button"),d(e,"class","btn btn-transparent btn-block")},m(i,o){a(i,t,o),a(i,s,o),a(i,e,o),n||(l=b(e,"click",c[4]),n=!0)},p,d(i){i&&(r(t),r(s),r(e)),n=!1,l()}}}function h(c){let t,s,e,n,l;return{c(){t=f("div"),t.innerHTML='

Successfully verified email address.

',s=_(),e=f("button"),e.textContent="Close",d(t,"class","alert alert-success"),d(e,"type","button"),d(e,"class","btn btn-transparent btn-block")},m(i,o){a(i,t,o),a(i,s,o),a(i,e,o),n||(l=b(e,"click",c[3]),n=!0)},p,d(i){i&&(r(t),r(s),r(e)),n=!1,l()}}}function F(c){let t;return{c(){t=f("div"),t.innerHTML='
Please wait...
',d(t,"class","txt-center")},m(s,e){a(s,t,e)},p,d(s){s&&r(t)}}}function I(c){let t;function s(l,i){return l[1]?F:l[0]?h:S}let e=s(c),n=e(c);return{c(){n.c(),t=M()},m(l,i){n.m(l,i),a(l,t,i)},p(l,i){e===(e=s(l))&&n?n.p(l,i):(n.d(1),n=e(l),n&&(n.c(),n.m(t.parentNode,t)))},d(l){l&&r(t),n.d(l)}}}function V(c){let t,s;return t=new w({props:{nobranding:!0,$$slots:{default:[I]},$$scope:{ctx:c}}}),{c(){C(t.$$.fragment)},m(e,n){x(t,e,n),s=!0},p(e,[n]){const l={};n&67&&(l.$$scope={dirty:n,ctx:e}),t.$set(l)},i(e){s||($(t.$$.fragment,e),s=!0)},o(e){H(t.$$.fragment,e),s=!1},d(e){L(t,e)}}}function q(c,t,s){let{params:e}=t,n=!1,l=!1;i();async function i(){s(1,l=!0);const u=new P("../");try{const m=T(e==null?void 0:e.token);await u.collection(m.collectionId).confirmVerification(e==null?void 0:e.token),s(0,n=!0)}catch{s(0,n=!1)}s(1,l=!1)}const o=()=>window.close(),k=()=>window.close();return c.$$set=u=>{"params"in u&&s(2,e=u.params)},[n,l,e,o,k]}class G extends v{constructor(t){super(),y(this,t,q,V,g,{params:2})}}export{G as default}; diff --git a/ui/dist/assets/RealtimeApiDocs-1ecefb98.js b/ui/dist/assets/RealtimeApiDocs-7183eb7d.js similarity index 98% rename from ui/dist/assets/RealtimeApiDocs-1ecefb98.js rename to ui/dist/assets/RealtimeApiDocs-7183eb7d.js index 25f5cd09..9661654e 100644 --- a/ui/dist/assets/RealtimeApiDocs-1ecefb98.js +++ b/ui/dist/assets/RealtimeApiDocs-7183eb7d.js @@ -1,4 +1,4 @@ -import{S as re,i as ae,s as be,N as pe,C as P,e as p,w as y,b as a,c as se,f as u,g as s,h as I,m as ne,x as ue,t as ie,a as ce,o as n,d as le,p as me}from"./index-3b554c68.js";import{S as de}from"./SdkTabs-88bdaa1d.js";function he(t){var B,U,W,A,H,L,T,q,M,N,j,J;let i,m,c=t[0].name+"",b,d,k,h,D,f,_,l,S,$,C,g,w,v,E,r,R;return l=new de({props:{js:` +import{S as re,i as ae,s as be,N as pe,C as P,e as p,w as y,b as a,c as se,f as u,g as s,h as I,m as ne,x as ue,t as ie,a as ce,o as n,d as le,p as me}from"./index-26bf667a.js";import{S as de}from"./SdkTabs-27205987.js";function he(t){var B,U,W,A,H,L,T,q,M,N,j,J;let i,m,c=t[0].name+"",b,d,k,h,D,f,_,l,S,$,C,g,w,v,E,r,R;return l=new de({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${t[1]}'); diff --git a/ui/dist/assets/RequestEmailChangeDocs-b89a6cc3.js b/ui/dist/assets/RequestEmailChangeDocs-5b86baf4.js similarity index 98% rename from ui/dist/assets/RequestEmailChangeDocs-b89a6cc3.js rename to ui/dist/assets/RequestEmailChangeDocs-5b86baf4.js index d84b181f..55c848bb 100644 --- a/ui/dist/assets/RequestEmailChangeDocs-b89a6cc3.js +++ b/ui/dist/assets/RequestEmailChangeDocs-5b86baf4.js @@ -1,4 +1,4 @@ -import{S as Ee,i as Be,s as Se,O as L,e as r,w as v,b as k,c as Ce,f as b,g as d,h as n,m as ye,x as N,P as ve,Q as Re,k as Me,R as Ae,n as We,t as ee,a as te,o as m,d as Te,C as ze,p as He,r as F,u as Oe,N as Ue}from"./index-3b554c68.js";import{S as je}from"./SdkTabs-88bdaa1d.js";function we(o,l,a){const s=o.slice();return s[5]=l[a],s}function $e(o,l,a){const s=o.slice();return s[5]=l[a],s}function qe(o,l){let a,s=l[5].code+"",h,f,i,p;function u(){return l[4](l[5])}return{key:o,first:null,c(){a=r("button"),h=v(s),f=k(),b(a,"class","tab-item"),F(a,"active",l[1]===l[5].code),this.first=a},m($,q){d($,a,q),n(a,h),n(a,f),i||(p=Oe(a,"click",u),i=!0)},p($,q){l=$,q&4&&s!==(s=l[5].code+"")&&N(h,s),q&6&&F(a,"active",l[1]===l[5].code)},d($){$&&m(a),i=!1,p()}}}function Pe(o,l){let a,s,h,f;return s=new Ue({props:{content:l[5].body}}),{key:o,first:null,c(){a=r("div"),Ce(s.$$.fragment),h=k(),b(a,"class","tab-item"),F(a,"active",l[1]===l[5].code),this.first=a},m(i,p){d(i,a,p),ye(s,a,null),n(a,h),f=!0},p(i,p){l=i;const u={};p&4&&(u.content=l[5].body),s.$set(u),(!f||p&6)&&F(a,"active",l[1]===l[5].code)},i(i){f||(ee(s.$$.fragment,i),f=!0)},o(i){te(s.$$.fragment,i),f=!1},d(i){i&&m(a),Te(s)}}}function De(o){var pe,ue,be,fe;let l,a,s=o[0].name+"",h,f,i,p,u,$,q,z=o[0].name+"",I,le,K,P,Q,T,G,w,H,ae,O,E,se,J,U=o[0].name+"",V,oe,ne,j,X,B,Y,S,Z,R,x,C,M,g=[],ie=new Map,ce,A,_=[],re=new Map,y;P=new je({props:{js:` +import{S as Ee,i as Be,s as Se,O as L,e as r,w as v,b as k,c as Ce,f as b,g as d,h as n,m as ye,x as N,P as ve,Q as Re,k as Me,R as Ae,n as We,t as ee,a as te,o as m,d as Te,C as ze,p as He,r as F,u as Oe,N as Ue}from"./index-26bf667a.js";import{S as je}from"./SdkTabs-27205987.js";function we(o,l,a){const s=o.slice();return s[5]=l[a],s}function $e(o,l,a){const s=o.slice();return s[5]=l[a],s}function qe(o,l){let a,s=l[5].code+"",h,f,i,p;function u(){return l[4](l[5])}return{key:o,first:null,c(){a=r("button"),h=v(s),f=k(),b(a,"class","tab-item"),F(a,"active",l[1]===l[5].code),this.first=a},m($,q){d($,a,q),n(a,h),n(a,f),i||(p=Oe(a,"click",u),i=!0)},p($,q){l=$,q&4&&s!==(s=l[5].code+"")&&N(h,s),q&6&&F(a,"active",l[1]===l[5].code)},d($){$&&m(a),i=!1,p()}}}function Pe(o,l){let a,s,h,f;return s=new Ue({props:{content:l[5].body}}),{key:o,first:null,c(){a=r("div"),Ce(s.$$.fragment),h=k(),b(a,"class","tab-item"),F(a,"active",l[1]===l[5].code),this.first=a},m(i,p){d(i,a,p),ye(s,a,null),n(a,h),f=!0},p(i,p){l=i;const u={};p&4&&(u.content=l[5].body),s.$set(u),(!f||p&6)&&F(a,"active",l[1]===l[5].code)},i(i){f||(ee(s.$$.fragment,i),f=!0)},o(i){te(s.$$.fragment,i),f=!1},d(i){i&&m(a),Te(s)}}}function De(o){var pe,ue,be,fe;let l,a,s=o[0].name+"",h,f,i,p,u,$,q,z=o[0].name+"",I,le,K,P,Q,T,G,w,H,ae,O,E,se,J,U=o[0].name+"",V,oe,ne,j,X,B,Y,S,Z,R,x,C,M,g=[],ie=new Map,ce,A,_=[],re=new Map,y;P=new je({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/RequestPasswordResetDocs-a2af2bdb.js b/ui/dist/assets/RequestPasswordResetDocs-ffe8fb7c.js similarity index 97% rename from ui/dist/assets/RequestPasswordResetDocs-a2af2bdb.js rename to ui/dist/assets/RequestPasswordResetDocs-ffe8fb7c.js index 8bedc19d..b2d08c28 100644 --- a/ui/dist/assets/RequestPasswordResetDocs-a2af2bdb.js +++ b/ui/dist/assets/RequestPasswordResetDocs-ffe8fb7c.js @@ -1,4 +1,4 @@ -import{S as Pe,i as $e,s as qe,O as I,e as r,w as g,b as h,c as ve,f as b,g as d,h as n,m as ge,x as L,P as fe,Q as ye,k as Re,R as Be,n as Ce,t as x,a as ee,o as p,d as we,C as Se,p as Te,r as N,u as Me,N as Ae}from"./index-3b554c68.js";import{S as Ue}from"./SdkTabs-88bdaa1d.js";function be(o,s,l){const a=o.slice();return a[5]=s[l],a}function _e(o,s,l){const a=o.slice();return a[5]=s[l],a}function ke(o,s){let l,a=s[5].code+"",_,f,i,u;function m(){return s[4](s[5])}return{key:o,first:null,c(){l=r("button"),_=g(a),f=h(),b(l,"class","tab-item"),N(l,"active",s[1]===s[5].code),this.first=l},m(w,P){d(w,l,P),n(l,_),n(l,f),i||(u=Me(l,"click",m),i=!0)},p(w,P){s=w,P&4&&a!==(a=s[5].code+"")&&L(_,a),P&6&&N(l,"active",s[1]===s[5].code)},d(w){w&&p(l),i=!1,u()}}}function he(o,s){let l,a,_,f;return a=new Ae({props:{content:s[5].body}}),{key:o,first:null,c(){l=r("div"),ve(a.$$.fragment),_=h(),b(l,"class","tab-item"),N(l,"active",s[1]===s[5].code),this.first=l},m(i,u){d(i,l,u),ge(a,l,null),n(l,_),f=!0},p(i,u){s=i;const m={};u&4&&(m.content=s[5].body),a.$set(m),(!f||u&6)&&N(l,"active",s[1]===s[5].code)},i(i){f||(x(a.$$.fragment,i),f=!0)},o(i){ee(a.$$.fragment,i),f=!1},d(i){i&&p(l),we(a)}}}function je(o){var de,pe;let s,l,a=o[0].name+"",_,f,i,u,m,w,P,D=o[0].name+"",Q,te,z,$,G,B,J,q,H,se,O,C,le,K,E=o[0].name+"",V,ae,W,S,X,T,Y,M,Z,y,A,v=[],oe=new Map,ne,U,k=[],ie=new Map,R;$=new Ue({props:{js:` +import{S as Pe,i as $e,s as qe,O as I,e as r,w as g,b as h,c as ve,f as b,g as d,h as n,m as ge,x as L,P as fe,Q as ye,k as Re,R as Be,n as Ce,t as x,a as ee,o as p,d as we,C as Se,p as Te,r as N,u as Me,N as Ae}from"./index-26bf667a.js";import{S as Ue}from"./SdkTabs-27205987.js";function be(o,s,l){const a=o.slice();return a[5]=s[l],a}function _e(o,s,l){const a=o.slice();return a[5]=s[l],a}function ke(o,s){let l,a=s[5].code+"",_,f,i,u;function m(){return s[4](s[5])}return{key:o,first:null,c(){l=r("button"),_=g(a),f=h(),b(l,"class","tab-item"),N(l,"active",s[1]===s[5].code),this.first=l},m(w,P){d(w,l,P),n(l,_),n(l,f),i||(u=Me(l,"click",m),i=!0)},p(w,P){s=w,P&4&&a!==(a=s[5].code+"")&&L(_,a),P&6&&N(l,"active",s[1]===s[5].code)},d(w){w&&p(l),i=!1,u()}}}function he(o,s){let l,a,_,f;return a=new Ae({props:{content:s[5].body}}),{key:o,first:null,c(){l=r("div"),ve(a.$$.fragment),_=h(),b(l,"class","tab-item"),N(l,"active",s[1]===s[5].code),this.first=l},m(i,u){d(i,l,u),ge(a,l,null),n(l,_),f=!0},p(i,u){s=i;const m={};u&4&&(m.content=s[5].body),a.$set(m),(!f||u&6)&&N(l,"active",s[1]===s[5].code)},i(i){f||(x(a.$$.fragment,i),f=!0)},o(i){ee(a.$$.fragment,i),f=!1},d(i){i&&p(l),we(a)}}}function je(o){var de,pe;let s,l,a=o[0].name+"",_,f,i,u,m,w,P,D=o[0].name+"",Q,te,z,$,G,B,J,q,H,se,O,C,le,K,E=o[0].name+"",V,ae,W,S,X,T,Y,M,Z,y,A,v=[],oe=new Map,ne,U,k=[],ie=new Map,R;$=new Ue({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/RequestVerificationDocs-cc391425.js b/ui/dist/assets/RequestVerificationDocs-b8057f19.js similarity index 97% rename from ui/dist/assets/RequestVerificationDocs-cc391425.js rename to ui/dist/assets/RequestVerificationDocs-b8057f19.js index cc6368f3..a99305d7 100644 --- a/ui/dist/assets/RequestVerificationDocs-cc391425.js +++ b/ui/dist/assets/RequestVerificationDocs-b8057f19.js @@ -1,4 +1,4 @@ -import{S as qe,i as we,s as Pe,O as F,e as r,w as g,b as h,c as ve,f as b,g as d,h as n,m as ge,x as I,P as pe,Q as ye,k as Be,R as Ce,n as Se,t as x,a as ee,o as f,d as $e,C as Te,p as Re,r as L,u as Ve,N as Me}from"./index-3b554c68.js";import{S as Ae}from"./SdkTabs-88bdaa1d.js";function be(o,l,s){const a=o.slice();return a[5]=l[s],a}function _e(o,l,s){const a=o.slice();return a[5]=l[s],a}function ke(o,l){let s,a=l[5].code+"",_,p,i,u;function m(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),_=g(a),p=h(),b(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m($,q){d($,s,q),n(s,_),n(s,p),i||(u=Ve(s,"click",m),i=!0)},p($,q){l=$,q&4&&a!==(a=l[5].code+"")&&I(_,a),q&6&&L(s,"active",l[1]===l[5].code)},d($){$&&f(s),i=!1,u()}}}function he(o,l){let s,a,_,p;return a=new Me({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),ve(a.$$.fragment),_=h(),b(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m(i,u){d(i,s,u),ge(a,s,null),n(s,_),p=!0},p(i,u){l=i;const m={};u&4&&(m.content=l[5].body),a.$set(m),(!p||u&6)&&L(s,"active",l[1]===l[5].code)},i(i){p||(x(a.$$.fragment,i),p=!0)},o(i){ee(a.$$.fragment,i),p=!1},d(i){i&&f(s),$e(a)}}}function Ue(o){var de,fe;let l,s,a=o[0].name+"",_,p,i,u,m,$,q,j=o[0].name+"",N,te,Q,w,z,C,G,P,D,le,H,S,se,J,O=o[0].name+"",K,ae,W,T,X,R,Y,V,Z,y,M,v=[],oe=new Map,ne,A,k=[],ie=new Map,B;w=new Ae({props:{js:` +import{S as qe,i as we,s as Pe,O as F,e as r,w as g,b as h,c as ve,f as b,g as d,h as n,m as ge,x as I,P as pe,Q as ye,k as Be,R as Ce,n as Se,t as x,a as ee,o as f,d as $e,C as Te,p as Re,r as L,u as Ve,N as Me}from"./index-26bf667a.js";import{S as Ae}from"./SdkTabs-27205987.js";function be(o,l,s){const a=o.slice();return a[5]=l[s],a}function _e(o,l,s){const a=o.slice();return a[5]=l[s],a}function ke(o,l){let s,a=l[5].code+"",_,p,i,u;function m(){return l[4](l[5])}return{key:o,first:null,c(){s=r("button"),_=g(a),p=h(),b(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m($,q){d($,s,q),n(s,_),n(s,p),i||(u=Ve(s,"click",m),i=!0)},p($,q){l=$,q&4&&a!==(a=l[5].code+"")&&I(_,a),q&6&&L(s,"active",l[1]===l[5].code)},d($){$&&f(s),i=!1,u()}}}function he(o,l){let s,a,_,p;return a=new Me({props:{content:l[5].body}}),{key:o,first:null,c(){s=r("div"),ve(a.$$.fragment),_=h(),b(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m(i,u){d(i,s,u),ge(a,s,null),n(s,_),p=!0},p(i,u){l=i;const m={};u&4&&(m.content=l[5].body),a.$set(m),(!p||u&6)&&L(s,"active",l[1]===l[5].code)},i(i){p||(x(a.$$.fragment,i),p=!0)},o(i){ee(a.$$.fragment,i),p=!1},d(i){i&&f(s),$e(a)}}}function Ue(o){var de,fe;let l,s,a=o[0].name+"",_,p,i,u,m,$,q,j=o[0].name+"",N,te,Q,w,z,C,G,P,D,le,H,S,se,J,O=o[0].name+"",K,ae,W,T,X,R,Y,V,Z,y,M,v=[],oe=new Map,ne,A,k=[],ie=new Map,B;w=new Ae({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${o[3]}'); diff --git a/ui/dist/assets/SdkTabs-88bdaa1d.js b/ui/dist/assets/SdkTabs-27205987.js similarity index 98% rename from ui/dist/assets/SdkTabs-88bdaa1d.js rename to ui/dist/assets/SdkTabs-27205987.js index 8abf66e7..64df1a94 100644 --- a/ui/dist/assets/SdkTabs-88bdaa1d.js +++ b/ui/dist/assets/SdkTabs-27205987.js @@ -1 +1 @@ -import{S as B,i as F,s as J,O as j,e as v,b as S,f as h,g as w,h as m,P as D,Q as O,k as Q,R as Y,n as z,t as N,a as P,o as C,w as E,r as y,u as A,x as q,N as G,c as H,m as L,d as U}from"./index-3b554c68.js";function K(o,e,l){const s=o.slice();return s[6]=e[l],s}function R(o,e,l){const s=o.slice();return s[6]=e[l],s}function T(o,e){let l,s,g=e[6].title+"",r,i,n,k;function c(){return e[5](e[6])}return{key:o,first:null,c(){l=v("button"),s=v("div"),r=E(g),i=S(),h(s,"class","txt"),h(l,"class","tab-item svelte-1maocj6"),y(l,"active",e[1]===e[6].language),this.first=l},m(_,f){w(_,l,f),m(l,s),m(s,r),m(l,i),n||(k=A(l,"click",c),n=!0)},p(_,f){e=_,f&4&&g!==(g=e[6].title+"")&&q(r,g),f&6&&y(l,"active",e[1]===e[6].language)},d(_){_&&C(l),n=!1,k()}}}function I(o,e){let l,s,g,r,i,n,k=e[6].title+"",c,_,f,p,d;return s=new G({props:{language:e[6].language,content:e[6].content}}),{key:o,first:null,c(){l=v("div"),H(s.$$.fragment),g=S(),r=v("div"),i=v("em"),n=v("a"),c=E(k),_=E(" SDK"),p=S(),h(n,"href",f=e[6].url),h(n,"target","_blank"),h(n,"rel","noopener noreferrer"),h(i,"class","txt-sm txt-hint"),h(r,"class","txt-right"),h(l,"class","tab-item svelte-1maocj6"),y(l,"active",e[1]===e[6].language),this.first=l},m(b,t){w(b,l,t),L(s,l,null),m(l,g),m(l,r),m(r,i),m(i,n),m(n,c),m(n,_),m(l,p),d=!0},p(b,t){e=b;const a={};t&4&&(a.language=e[6].language),t&4&&(a.content=e[6].content),s.$set(a),(!d||t&4)&&k!==(k=e[6].title+"")&&q(c,k),(!d||t&4&&f!==(f=e[6].url))&&h(n,"href",f),(!d||t&6)&&y(l,"active",e[1]===e[6].language)},i(b){d||(N(s.$$.fragment,b),d=!0)},o(b){P(s.$$.fragment,b),d=!1},d(b){b&&C(l),U(s)}}}function V(o){let e,l,s=[],g=new Map,r,i,n=[],k=new Map,c,_,f=j(o[2]);const p=t=>t[6].language;for(let t=0;tt[6].language;for(let t=0;tl(1,n=c.language);return o.$$set=c=>{"class"in c&&l(0,g=c.class),"js"in c&&l(3,r=c.js),"dart"in c&&l(4,i=c.dart)},o.$$.update=()=>{o.$$.dirty&2&&n&&localStorage.setItem(M,n),o.$$.dirty&24&&l(2,s=[{title:"JavaScript",language:"javascript",content:r,url:"https://github.com/pocketbase/js-sdk"},{title:"Dart",language:"dart",content:i,url:"https://github.com/pocketbase/dart-sdk"}])},[g,n,s,r,i,k]}class Z extends B{constructor(e){super(),F(this,e,W,V,J,{class:0,js:3,dart:4})}}export{Z as S}; +import{S as B,i as F,s as J,O as j,e as v,b as S,f as h,g as w,h as m,P as D,Q as O,k as Q,R as Y,n as z,t as N,a as P,o as C,w as E,r as y,u as A,x as q,N as G,c as H,m as L,d as U}from"./index-26bf667a.js";function K(o,e,l){const s=o.slice();return s[6]=e[l],s}function R(o,e,l){const s=o.slice();return s[6]=e[l],s}function T(o,e){let l,s,g=e[6].title+"",r,i,n,k;function c(){return e[5](e[6])}return{key:o,first:null,c(){l=v("button"),s=v("div"),r=E(g),i=S(),h(s,"class","txt"),h(l,"class","tab-item svelte-1maocj6"),y(l,"active",e[1]===e[6].language),this.first=l},m(_,f){w(_,l,f),m(l,s),m(s,r),m(l,i),n||(k=A(l,"click",c),n=!0)},p(_,f){e=_,f&4&&g!==(g=e[6].title+"")&&q(r,g),f&6&&y(l,"active",e[1]===e[6].language)},d(_){_&&C(l),n=!1,k()}}}function I(o,e){let l,s,g,r,i,n,k=e[6].title+"",c,_,f,p,d;return s=new G({props:{language:e[6].language,content:e[6].content}}),{key:o,first:null,c(){l=v("div"),H(s.$$.fragment),g=S(),r=v("div"),i=v("em"),n=v("a"),c=E(k),_=E(" SDK"),p=S(),h(n,"href",f=e[6].url),h(n,"target","_blank"),h(n,"rel","noopener noreferrer"),h(i,"class","txt-sm txt-hint"),h(r,"class","txt-right"),h(l,"class","tab-item svelte-1maocj6"),y(l,"active",e[1]===e[6].language),this.first=l},m(b,t){w(b,l,t),L(s,l,null),m(l,g),m(l,r),m(r,i),m(i,n),m(n,c),m(n,_),m(l,p),d=!0},p(b,t){e=b;const a={};t&4&&(a.language=e[6].language),t&4&&(a.content=e[6].content),s.$set(a),(!d||t&4)&&k!==(k=e[6].title+"")&&q(c,k),(!d||t&4&&f!==(f=e[6].url))&&h(n,"href",f),(!d||t&6)&&y(l,"active",e[1]===e[6].language)},i(b){d||(N(s.$$.fragment,b),d=!0)},o(b){P(s.$$.fragment,b),d=!1},d(b){b&&C(l),U(s)}}}function V(o){let e,l,s=[],g=new Map,r,i,n=[],k=new Map,c,_,f=j(o[2]);const p=t=>t[6].language;for(let t=0;tt[6].language;for(let t=0;tl(1,n=c.language);return o.$$set=c=>{"class"in c&&l(0,g=c.class),"js"in c&&l(3,r=c.js),"dart"in c&&l(4,i=c.dart)},o.$$.update=()=>{o.$$.dirty&2&&n&&localStorage.setItem(M,n),o.$$.dirty&24&&l(2,s=[{title:"JavaScript",language:"javascript",content:r,url:"https://github.com/pocketbase/js-sdk"},{title:"Dart",language:"dart",content:i,url:"https://github.com/pocketbase/dart-sdk"}])},[g,n,s,r,i,k]}class Z extends B{constructor(e){super(),F(this,e,W,V,J,{class:0,js:3,dart:4})}}export{Z as S}; diff --git a/ui/dist/assets/UnlinkExternalAuthDocs-afa6f8a1.js b/ui/dist/assets/UnlinkExternalAuthDocs-b1470344.js similarity index 98% rename from ui/dist/assets/UnlinkExternalAuthDocs-afa6f8a1.js rename to ui/dist/assets/UnlinkExternalAuthDocs-b1470344.js index cf809119..14e695cb 100644 --- a/ui/dist/assets/UnlinkExternalAuthDocs-afa6f8a1.js +++ b/ui/dist/assets/UnlinkExternalAuthDocs-b1470344.js @@ -1,4 +1,4 @@ -import{S as Oe,i as De,s as Me,O as j,e as i,w as g,b as f,c as Be,f as b,g as d,h as a,m as Ue,x as I,P as Ae,Q as We,k as ze,R as He,n as Le,t as oe,a as ae,o as u,d as qe,C as Re,p as je,r as N,u as Ie,N as Ne}from"./index-3b554c68.js";import{S as Ke}from"./SdkTabs-88bdaa1d.js";function Ce(n,l,o){const s=n.slice();return s[5]=l[o],s}function Te(n,l,o){const s=n.slice();return s[5]=l[o],s}function Ee(n,l){let o,s=l[5].code+"",_,h,c,p;function m(){return l[4](l[5])}return{key:n,first:null,c(){o=i("button"),_=g(s),h=f(),b(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m($,P){d($,o,P),a(o,_),a(o,h),c||(p=Ie(o,"click",m),c=!0)},p($,P){l=$,P&4&&s!==(s=l[5].code+"")&&I(_,s),P&6&&N(o,"active",l[1]===l[5].code)},d($){$&&u(o),c=!1,p()}}}function Se(n,l){let o,s,_,h;return s=new Ne({props:{content:l[5].body}}),{key:n,first:null,c(){o=i("div"),Be(s.$$.fragment),_=f(),b(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m(c,p){d(c,o,p),Ue(s,o,null),a(o,_),h=!0},p(c,p){l=c;const m={};p&4&&(m.content=l[5].body),s.$set(m),(!h||p&6)&&N(o,"active",l[1]===l[5].code)},i(c){h||(oe(s.$$.fragment,c),h=!0)},o(c){ae(s.$$.fragment,c),h=!1},d(c){c&&u(o),qe(s)}}}function Qe(n){var _e,ke,ge,ve;let l,o,s=n[0].name+"",_,h,c,p,m,$,P,M=n[0].name+"",K,se,ne,Q,F,A,G,E,J,w,W,ie,z,y,ce,V,H=n[0].name+"",X,re,Y,de,Z,ue,L,x,S,ee,B,te,U,le,C,q,v=[],pe=new Map,me,O,k=[],be=new Map,T;A=new Ke({props:{js:` +import{S as Oe,i as De,s as Me,O as j,e as i,w as g,b as f,c as Be,f as b,g as d,h as a,m as Ue,x as I,P as Ae,Q as We,k as ze,R as He,n as Le,t as oe,a as ae,o as u,d as qe,C as Re,p as je,r as N,u as Ie,N as Ne}from"./index-26bf667a.js";import{S as Ke}from"./SdkTabs-27205987.js";function Ce(n,l,o){const s=n.slice();return s[5]=l[o],s}function Te(n,l,o){const s=n.slice();return s[5]=l[o],s}function Ee(n,l){let o,s=l[5].code+"",_,h,c,p;function m(){return l[4](l[5])}return{key:n,first:null,c(){o=i("button"),_=g(s),h=f(),b(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m($,P){d($,o,P),a(o,_),a(o,h),c||(p=Ie(o,"click",m),c=!0)},p($,P){l=$,P&4&&s!==(s=l[5].code+"")&&I(_,s),P&6&&N(o,"active",l[1]===l[5].code)},d($){$&&u(o),c=!1,p()}}}function Se(n,l){let o,s,_,h;return s=new Ne({props:{content:l[5].body}}),{key:n,first:null,c(){o=i("div"),Be(s.$$.fragment),_=f(),b(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m(c,p){d(c,o,p),Ue(s,o,null),a(o,_),h=!0},p(c,p){l=c;const m={};p&4&&(m.content=l[5].body),s.$set(m),(!h||p&6)&&N(o,"active",l[1]===l[5].code)},i(c){h||(oe(s.$$.fragment,c),h=!0)},o(c){ae(s.$$.fragment,c),h=!1},d(c){c&&u(o),qe(s)}}}function Qe(n){var _e,ke,ge,ve;let l,o,s=n[0].name+"",_,h,c,p,m,$,P,M=n[0].name+"",K,se,ne,Q,F,A,G,E,J,w,W,ie,z,y,ce,V,H=n[0].name+"",X,re,Y,de,Z,ue,L,x,S,ee,B,te,U,le,C,q,v=[],pe=new Map,me,O,k=[],be=new Map,T;A=new Ke({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${n[3]}'); diff --git a/ui/dist/assets/UpdateApiDocs-d73a6961.js b/ui/dist/assets/UpdateApiDocs-587bfa04.js similarity index 98% rename from ui/dist/assets/UpdateApiDocs-d73a6961.js rename to ui/dist/assets/UpdateApiDocs-587bfa04.js index 80e7863d..ad7c725d 100644 --- a/ui/dist/assets/UpdateApiDocs-d73a6961.js +++ b/ui/dist/assets/UpdateApiDocs-587bfa04.js @@ -1,4 +1,4 @@ -import{S as $t,i as Mt,s as qt,C as I,O as Z,N as Ot,e as r,w as b,b as f,c as he,f as v,g as i,h as s,m as ye,x as J,P as Ee,Q as _t,k as Ht,R as Rt,n as Dt,t as ce,a as pe,o as d,d as ke,p as Lt,r as ve,u as Pt,y as ee}from"./index-3b554c68.js";import{S as Ft}from"./SdkTabs-88bdaa1d.js";import{F as Nt}from"./FieldsQueryParam-e878558e.js";function ht(c,e,t){const n=c.slice();return n[8]=e[t],n}function yt(c,e,t){const n=c.slice();return n[8]=e[t],n}function kt(c,e,t){const n=c.slice();return n[13]=e[t],n}function vt(c){let e;return{c(){e=r("p"),e.innerHTML=`Note that in case of a password change all previously issued tokens for the current record +import{S as $t,i as Mt,s as qt,C as I,O as Z,N as Ot,e as r,w as b,b as f,c as he,f as v,g as i,h as s,m as ye,x as J,P as Ee,Q as _t,k as Ht,R as Rt,n as Dt,t as ce,a as pe,o as d,d as ke,p as Lt,r as ve,u as Pt,y as ee}from"./index-26bf667a.js";import{S as Ft}from"./SdkTabs-27205987.js";import{F as Nt}from"./FieldsQueryParam-c4b1abdd.js";function ht(c,e,t){const n=c.slice();return n[8]=e[t],n}function yt(c,e,t){const n=c.slice();return n[8]=e[t],n}function kt(c,e,t){const n=c.slice();return n[13]=e[t],n}function vt(c){let e;return{c(){e=r("p"),e.innerHTML=`Note that in case of a password change all previously issued tokens for the current record will be automatically invalidated and if you want your user to remain signed in you need to reauthenticate manually after the update call.`},m(t,n){i(t,e,n)},d(t){t&&d(e)}}}function gt(c){let e;return{c(){e=r("p"),e.innerHTML="Requires admin Authorization:TOKEN header",v(e,"class","txt-hint txt-sm txt-right")},m(t,n){i(t,e,n)},d(t){t&&d(e)}}}function wt(c){let e,t,n,u,m,o,p,h,w,S,g,$,P,E,M,U,F;return{c(){e=r("tr"),e.innerHTML='Auth fields',t=f(),n=r("tr"),n.innerHTML='
Optional username
String The username of the auth record.',u=f(),m=r("tr"),m.innerHTML=`
Optional email
String The auth record email address.
diff --git a/ui/dist/assets/ViewApiDocs-e0218a5d.js b/ui/dist/assets/ViewApiDocs-8aada62c.js similarity index 97% rename from ui/dist/assets/ViewApiDocs-e0218a5d.js rename to ui/dist/assets/ViewApiDocs-8aada62c.js index c1ec468d..c2b099e3 100644 --- a/ui/dist/assets/ViewApiDocs-e0218a5d.js +++ b/ui/dist/assets/ViewApiDocs-8aada62c.js @@ -1,4 +1,4 @@ -import{S as lt,i as nt,s as st,N as tt,O as K,e as o,w as _,b as m,c as W,f as b,g as r,h as l,m as X,x as ve,P as Je,Q as ot,k as at,R as it,n as rt,t as Q,a as U,o as d,d as Y,C as Ke,p as dt,r as Z,u as ct}from"./index-3b554c68.js";import{S as pt}from"./SdkTabs-88bdaa1d.js";import{F as ut}from"./FieldsQueryParam-e878558e.js";function We(a,n,s){const i=a.slice();return i[6]=n[s],i}function Xe(a,n,s){const i=a.slice();return i[6]=n[s],i}function Ye(a){let n;return{c(){n=o("p"),n.innerHTML="Requires admin Authorization:TOKEN header",b(n,"class","txt-hint txt-sm txt-right")},m(s,i){r(s,n,i)},d(s){s&&d(n)}}}function Ze(a,n){let s,i,v;function p(){return n[5](n[6])}return{key:a,first:null,c(){s=o("button"),s.textContent=`${n[6].code} `,b(s,"class","tab-item"),Z(s,"active",n[2]===n[6].code),this.first=s},m(c,f){r(c,s,f),i||(v=ct(s,"click",p),i=!0)},p(c,f){n=c,f&20&&Z(s,"active",n[2]===n[6].code)},d(c){c&&d(s),i=!1,v()}}}function et(a,n){let s,i,v,p;return i=new tt({props:{content:n[6].body}}),{key:a,first:null,c(){s=o("div"),W(i.$$.fragment),v=m(),b(s,"class","tab-item"),Z(s,"active",n[2]===n[6].code),this.first=s},m(c,f){r(c,s,f),X(i,s,null),l(s,v),p=!0},p(c,f){n=c,(!p||f&20)&&Z(s,"active",n[2]===n[6].code)},i(c){p||(Q(i.$$.fragment,c),p=!0)},o(c){U(i.$$.fragment,c),p=!1},d(c){c&&d(s),Y(i)}}}function ft(a){var je,Ve;let n,s,i=a[0].name+"",v,p,c,f,w,C,ee,j=a[0].name+"",te,$e,le,F,ne,x,se,$,V,ye,z,T,we,oe,G=a[0].name+"",ae,Ce,ie,Fe,re,B,de,A,ce,I,pe,R,ue,Re,M,O,fe,Oe,me,Pe,h,De,E,Te,Ee,Se,be,xe,_e,Be,Ae,Ie,he,Me,qe,S,ke,q,ge,P,H,y=[],He=new Map,Le,L,k=[],Ne=new Map,D;F=new pt({props:{js:` +import{S as lt,i as nt,s as st,N as tt,O as K,e as o,w as _,b as m,c as W,f as b,g as r,h as l,m as X,x as ve,P as Je,Q as ot,k as at,R as it,n as rt,t as Q,a as U,o as d,d as Y,C as Ke,p as dt,r as Z,u as ct}from"./index-26bf667a.js";import{S as pt}from"./SdkTabs-27205987.js";import{F as ut}from"./FieldsQueryParam-c4b1abdd.js";function We(a,n,s){const i=a.slice();return i[6]=n[s],i}function Xe(a,n,s){const i=a.slice();return i[6]=n[s],i}function Ye(a){let n;return{c(){n=o("p"),n.innerHTML="Requires admin Authorization:TOKEN header",b(n,"class","txt-hint txt-sm txt-right")},m(s,i){r(s,n,i)},d(s){s&&d(n)}}}function Ze(a,n){let s,i,v;function p(){return n[5](n[6])}return{key:a,first:null,c(){s=o("button"),s.textContent=`${n[6].code} `,b(s,"class","tab-item"),Z(s,"active",n[2]===n[6].code),this.first=s},m(c,f){r(c,s,f),i||(v=ct(s,"click",p),i=!0)},p(c,f){n=c,f&20&&Z(s,"active",n[2]===n[6].code)},d(c){c&&d(s),i=!1,v()}}}function et(a,n){let s,i,v,p;return i=new tt({props:{content:n[6].body}}),{key:a,first:null,c(){s=o("div"),W(i.$$.fragment),v=m(),b(s,"class","tab-item"),Z(s,"active",n[2]===n[6].code),this.first=s},m(c,f){r(c,s,f),X(i,s,null),l(s,v),p=!0},p(c,f){n=c,(!p||f&20)&&Z(s,"active",n[2]===n[6].code)},i(c){p||(Q(i.$$.fragment,c),p=!0)},o(c){U(i.$$.fragment,c),p=!1},d(c){c&&d(s),Y(i)}}}function ft(a){var je,Ve;let n,s,i=a[0].name+"",v,p,c,f,w,C,ee,j=a[0].name+"",te,$e,le,F,ne,x,se,$,V,ye,z,T,we,oe,G=a[0].name+"",ae,Ce,ie,Fe,re,B,de,A,ce,I,pe,R,ue,Re,M,O,fe,Oe,me,Pe,h,De,E,Te,Ee,Se,be,xe,_e,Be,Ae,Ie,he,Me,qe,S,ke,q,ge,P,H,y=[],He=new Map,Le,L,k=[],Ne=new Map,D;F=new pt({props:{js:` import PocketBase from 'pocketbase'; const pb = new PocketBase('${a[3]}'); diff --git a/ui/dist/assets/index-3b554c68.js b/ui/dist/assets/index-26bf667a.js similarity index 99% rename from ui/dist/assets/index-3b554c68.js rename to ui/dist/assets/index-26bf667a.js index 6475bd48..ed56c246 100644 --- a/ui/dist/assets/index-3b554c68.js +++ b/ui/dist/assets/index-26bf667a.js @@ -4,14 +4,14 @@ var xb=Object.defineProperty;var e0=(n,e,t)=>e in n?xb(n,e,{enumerable:!0,config }`,c=`__svelte_${f0(f)}_${r}`,d=Tg(n),{stylesheet:m,rules:h}=yo.get(d)||c0(d,n);h[c]||(h[c]=!0,m.insertRule(`@keyframes ${c} ${f}`,m.cssRules.length));const _=n.style.animation||"";return n.style.animation=`${_?`${_}, `:""}${c} ${i}ms linear ${l}ms 1 both`,ko+=1,c}function as(n,e){const t=(n.style.animation||"").split(", "),i=t.filter(e?s=>s.indexOf(e)<0:s=>s.indexOf("__svelte")===-1),l=t.length-i.length;l&&(n.style.animation=i.join(", "),ko-=l,ko||d0())}function d0(){da(()=>{ko||(yo.forEach(n=>{const{ownerNode:e}=n.stylesheet;e&&v(e)}),yo.clear())})}function p0(n,e,t,i){if(!e)return Q;const l=n.getBoundingClientRect();if(e.left===l.left&&e.right===l.right&&e.top===l.top&&e.bottom===l.bottom)return Q;const{delay:s=0,duration:o=300,easing:r=ks,start:a=jo()+s,end:u=a+o,tick:f=Q,css:c}=t(n,{from:e,to:l},i);let d=!0,m=!1,h;function _(){c&&(h=rs(n,0,1,o,s,r,c)),s||(m=!0)}function g(){c&&as(n,h),d=!1}return Ho(k=>{if(!m&&k>=a&&(m=!0),m&&k>=u&&(f(1,0),g()),!d)return!1;if(m){const S=k-a,T=0+1*r(S/o);f(T,1-T)}return!0}),_(),f(0,1),g}function m0(n){const e=getComputedStyle(n);if(e.position!=="absolute"&&e.position!=="fixed"){const{width:t,height:i}=e,l=n.getBoundingClientRect();n.style.position="absolute",n.style.width=t,n.style.height=i,Mg(n,l)}}function Mg(n,e){const t=n.getBoundingClientRect();if(e.left!==t.left||e.top!==t.top){const i=getComputedStyle(n),l=i.transform==="none"?"":i.transform;n.style.transform=`${l} translate(${e.left-t.left}px, ${e.top-t.top}px)`}}let us;function di(n){us=n}function vs(){if(!us)throw new Error("Function called outside component initialization");return us}function Vt(n){vs().$$.on_mount.push(n)}function h0(n){vs().$$.after_update.push(n)}function ws(n){vs().$$.on_destroy.push(n)}function ot(){const n=vs();return(e,t,{cancelable:i=!1}={})=>{const l=n.$$.callbacks[e];if(l){const s=Cg(e,t,{cancelable:i});return l.slice().forEach(o=>{o.call(n,s)}),!s.defaultPrevented}return!0}}function Ae(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const hl=[],te=[];let gl=[];const jr=[],Og=Promise.resolve();let Hr=!1;function Dg(){Hr||(Hr=!0,Og.then(pa))}function Qt(){return Dg(),Og}function Ke(n){gl.push(n)}function ye(n){jr.push(n)}const ir=new Set;let cl=0;function pa(){if(cl!==0)return;const n=us;do{try{for(;cln.indexOf(i)===-1?e.push(i):t.push(i)),t.forEach(i=>i()),gl=e}let Fl;function ma(){return Fl||(Fl=Promise.resolve(),Fl.then(()=>{Fl=null})),Fl}function Gi(n,e,t){n.dispatchEvent(Cg(`${e?"intro":"outro"}${t}`))}const oo=new Set;let ei;function oe(){ei={r:0,c:[],p:ei}}function re(){ei.r||we(ei.c),ei=ei.p}function A(n,e){n&&n.i&&(oo.delete(n),n.i(e))}function I(n,e,t,i){if(n&&n.o){if(oo.has(n))return;oo.add(n),ei.c.push(()=>{oo.delete(n),i&&(t&&n.d(1),i())}),n.o(e)}else i&&i()}const ha={duration:0};function Eg(n,e,t){const i={direction:"in"};let l=e(n,t,i),s=!1,o,r,a=0;function u(){o&&as(n,o)}function f(){const{delay:d=0,duration:m=300,easing:h=ks,tick:_=Q,css:g}=l||ha;g&&(o=rs(n,0,1,m,d,h,g,a++)),_(0,1);const k=jo()+d,S=k+m;r&&r.abort(),s=!0,Ke(()=>Gi(n,!0,"start")),r=Ho(T=>{if(s){if(T>=S)return _(1,0),Gi(n,!0,"end"),u(),s=!1;if(T>=k){const $=h((T-k)/m);_($,1-$)}}return s})}let c=!1;return{start(){c||(c=!0,as(n),$t(l)?(l=l(i),ma().then(f)):f())},invalidate(){c=!1},end(){s&&(u(),s=!1)}}}function _a(n,e,t){const i={direction:"out"};let l=e(n,t,i),s=!0,o;const r=ei;r.r+=1;let a;function u(){const{delay:f=0,duration:c=300,easing:d=ks,tick:m=Q,css:h}=l||ha;h&&(o=rs(n,1,0,c,f,d,h));const _=jo()+f,g=_+c;Ke(()=>Gi(n,!1,"start")),"inert"in n&&(a=n.inert,n.inert=!0),Ho(k=>{if(s){if(k>=g)return m(0,1),Gi(n,!1,"end"),--r.r||we(r.c),!1;if(k>=_){const S=d((k-_)/c);m(1-S,S)}}return s})}return $t(l)?ma().then(()=>{l=l(i),u()}):u(),{end(f){f&&"inert"in n&&(n.inert=a),f&&l.tick&&l.tick(1,0),s&&(o&&as(n,o),s=!1)}}}function Pe(n,e,t,i){let s=e(n,t,{direction:"both"}),o=i?0:1,r=null,a=null,u=null,f;function c(){u&&as(n,u)}function d(h,_){const g=h.b-o;return _*=Math.abs(g),{a:o,b:h.b,d:g,duration:_,start:h.start,end:h.start+_,group:h.group}}function m(h){const{delay:_=0,duration:g=300,easing:k=ks,tick:S=Q,css:T}=s||ha,$={start:jo()+_,b:h};h||($.group=ei,ei.r+=1),"inert"in n&&(h?f!==void 0&&(n.inert=f):(f=n.inert,n.inert=!0)),r||a?a=$:(T&&(c(),u=rs(n,o,h,g,_,k,T)),h&&S(0,1),r=d($,g),Ke(()=>Gi(n,h,"start")),Ho(C=>{if(a&&C>a.start&&(r=d(a,g),a=null,Gi(n,r.b,"start"),T&&(c(),u=rs(n,o,r.b,r.duration,0,k,s.css))),r){if(C>=r.end)S(o=r.b,1-o),Gi(n,r.b,"end"),a||(r.b?c():--r.group.r||we(r.group.c)),r=null;else if(C>=r.start){const D=C-r.start;o=r.a+r.d*k(D/r.duration),S(o,1-o)}}return!!(r||a)}))}return{run(h){$t(s)?ma().then(()=>{s=s({direction:h?"in":"out"}),m(h)}):m(h)},end(){c(),r=a=null}}}function lu(n,e){const t=e.token={};function i(l,s,o,r){if(e.token!==t)return;e.resolved=r;let a=e.ctx;o!==void 0&&(a=a.slice(),a[o]=r);const u=l&&(e.current=l)(a);let f=!1;e.block&&(e.blocks?e.blocks.forEach((c,d)=>{d!==s&&c&&(oe(),I(c,1,1,()=>{e.blocks[d]===c&&(e.blocks[d]=null)}),re())}):e.block.d(1),u.c(),A(u,1),u.m(e.mount(),e.anchor),f=!0),e.block=u,e.blocks&&(e.blocks[s]=u),f&&pa()}if(t0(n)){const l=vs();if(n.then(s=>{di(l),i(e.then,1,e.value,s),di(null)},s=>{if(di(l),i(e.catch,2,e.error,s),di(null),!e.hasCatch)throw s}),e.current!==e.pending)return i(e.pending,0),!0}else{if(e.current!==e.then)return i(e.then,1,e.value,n),!0;e.resolved=n}}function b0(n,e,t){const i=e.slice(),{resolved:l}=n;n.current===n.then&&(i[n.value]=l),n.current===n.catch&&(i[n.error]=l),n.block.p(i,t)}function pe(n){return(n==null?void 0:n.length)!==void 0?n:Array.from(n)}function Li(n,e){n.d(1),e.delete(n.key)}function Lt(n,e){I(n,1,1,()=>{e.delete(n.key)})}function y0(n,e){n.f(),Lt(n,e)}function dt(n,e,t,i,l,s,o,r,a,u,f,c){let d=n.length,m=s.length,h=d;const _={};for(;h--;)_[n[h].key]=h;const g=[],k=new Map,S=new Map,T=[];for(h=m;h--;){const O=c(l,s,h),E=t(O);let L=o.get(E);L?i&&T.push(()=>L.p(O,e)):(L=u(E,O),L.c()),k.set(E,g[h]=L),E in _&&S.set(E,Math.abs(h-_[E]))}const $=new Set,C=new Set;function D(O){A(O,1),O.m(r,f),o.set(O.key,O),f=O.first,m--}for(;d&&m;){const O=g[m-1],E=n[d-1],L=O.key,F=E.key;O===E?(f=O.first,d--,m--):k.has(F)?!o.has(L)||$.has(L)?D(O):C.has(F)?d--:S.get(L)>S.get(F)?(C.add(L),D(O)):($.add(F),d--):(a(E,o),d--)}for(;d--;){const O=n[d];k.has(O.key)||a(O,o)}for(;m;)D(g[m-1]);return we(T),g}function pt(n,e){const t={},i={},l={$$scope:1};let s=n.length;for(;s--;){const o=n[s],r=e[s];if(r){for(const a in o)a in r||(i[a]=1);for(const a in r)l[a]||(t[a]=r[a],l[a]=1);n[s]=r}else for(const a in o)l[a]=1}for(const o in i)o in t||(t[o]=void 0);return t}function Tt(n){return typeof n=="object"&&n!==null?n:{}}function be(n,e,t){const i=n.$$.props[e];i!==void 0&&(n.$$.bound[i]=t,t(n.$$.ctx[i]))}function V(n){n&&n.c()}function H(n,e,t){const{fragment:i,after_update:l}=n.$$;i&&i.m(e,t),Ke(()=>{const s=n.$$.on_mount.map(vg).filter($t);n.$$.on_destroy?n.$$.on_destroy.push(...s):we(s),n.$$.on_mount=[]}),l.forEach(Ke)}function z(n,e){const t=n.$$;t.fragment!==null&&(g0(t.after_update),we(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function k0(n,e){n.$$.dirty[0]===-1&&(hl.push(n),Dg(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<{const h=m.length?m[0]:d;return u.ctx&&l(u.ctx[c],u.ctx[c]=h)&&(!u.skip_bound&&u.bound[c]&&u.bound[c](h),f&&k0(n,c)),d}):[],u.update(),f=!0,we(u.before_update),u.fragment=i?i(u.ctx):!1,e.target){if(e.hydrate){const c=a0(e.target);u.fragment&&u.fragment.l(c),c.forEach(v)}else u.fragment&&u.fragment.c();e.intro&&A(n.$$.fragment),H(n,e.target,e.anchor),pa()}di(a)}class ge{constructor(){Ue(this,"$$");Ue(this,"$$set")}$destroy(){z(this,1),this.$destroy=Q}$on(e,t){if(!$t(t))return Q;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const l=i.indexOf(t);l!==-1&&i.splice(l,1)}}$set(e){this.$$set&&!n0(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const v0="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(v0);function Ft(n){if(!n)throw Error("Parameter args is required");if(!n.component==!n.asyncComponent)throw Error("One and only one of component and asyncComponent is required");if(n.component&&(n.asyncComponent=()=>Promise.resolve(n.component)),typeof n.asyncComponent!="function")throw Error("Parameter asyncComponent must be a function");if(n.conditions){Array.isArray(n.conditions)||(n.conditions=[n.conditions]);for(let t=0;t{i.delete(u),i.size===0&&t&&(t(),t=null)}}return{set:l,update:s,subscribe:o}}function Ig(n,e,t){const i=!Array.isArray(n),l=i?[n]:n;if(!l.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const s=e.length<2;return Ag(t,(o,r)=>{let a=!1;const u=[];let f=0,c=Q;const d=()=>{if(f)return;c();const h=e(i?u[0]:u,o,r);s?o(h):c=$t(h)?h:Q},m=l.map((h,_)=>ca(h,g=>{u[_]=g,f&=~(1<<_),a&&d()},()=>{f|=1<<_}));return a=!0,d(),function(){we(m),c(),a=!1}})}function Lg(n,e){if(n instanceof RegExp)return{keys:!1,pattern:n};var t,i,l,s,o=[],r="",a=n.split("/");for(a[0]||a.shift();l=a.shift();)t=l[0],t==="*"?(o.push("wild"),r+="/(.*)"):t===":"?(i=l.indexOf("?",1),s=l.indexOf(".",1),o.push(l.substring(1,~i?i:~s?s:l.length)),r+=~i&&!~s?"(?:/([^/]+?))?":"/([^/]+?)",~s&&(r+=(~i?"?":"")+"\\"+l.substring(s))):r+="/"+l;return{keys:o,pattern:new RegExp("^"+r+(e?"(?=$|/)":"/?$"),"i")}}function w0(n){let e,t,i;const l=[n[2]];var s=n[0];function o(r,a){let u={};if(a!==void 0&&a&4)u=pt(l,[Tt(r[2])]);else for(let f=0;f{z(u,1)}),re()}s?(e=Ot(s,o(r,a)),e.$on("routeEvent",r[7]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,t.parentNode,t)):e=null}else if(s){const u=a&4?pt(l,[Tt(r[2])]):{};e.$set(u)}},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&I(e.$$.fragment,r),i=!1},d(r){r&&v(t),e&&z(e,r)}}}function S0(n){let e,t,i;const l=[{params:n[1]},n[2]];var s=n[0];function o(r,a){let u={};if(a!==void 0&&a&6)u=pt(l,[a&2&&{params:r[1]},a&4&&Tt(r[2])]);else for(let f=0;f{z(u,1)}),re()}s?(e=Ot(s,o(r,a)),e.$on("routeEvent",r[6]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,t.parentNode,t)):e=null}else if(s){const u=a&6?pt(l,[a&2&&{params:r[1]},a&4&&Tt(r[2])]):{};e.$set(u)}},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&I(e.$$.fragment,r),i=!1},d(r){r&&v(t),e&&z(e,r)}}}function $0(n){let e,t,i,l;const s=[S0,w0],o=[];function r(a,u){return a[1]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,[u]){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}function su(){const n=window.location.href.indexOf("#/");let e=n>-1?window.location.href.substr(n+1):"/";const t=e.indexOf("?");let i="";return t>-1&&(i=e.substr(t+1),e=e.substr(0,t)),{location:e,querystring:i}}const zo=Ag(null,function(e){e(su());const t=()=>{e(su())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}});Ig(zo,n=>n.location);const Vo=Ig(zo,n=>n.querystring),ou=Dn(void 0);async function nl(n){if(!n||n.length<1||n.charAt(0)!="/"&&n.indexOf("#/")!==0)throw Error("Invalid parameter location");await Qt();const e=(n.charAt(0)=="#"?"":"#")+n;try{const t={...history.state};delete t.__svelte_spa_router_scrollX,delete t.__svelte_spa_router_scrollY,window.history.replaceState(t,void 0,e)}catch{console.warn("Caught exception while replacing the current page. If you're running this in the Svelte REPL, please note that the `replace` method might not work in this environment.")}window.dispatchEvent(new Event("hashchange"))}function ln(n,e){if(e=au(e),!n||!n.tagName||n.tagName.toLowerCase()!="a")throw Error('Action "link" can only be used with tags');return ru(n,e),{update(t){t=au(t),ru(n,t)}}}function T0(n){n?window.scrollTo(n.__svelte_spa_router_scrollX,n.__svelte_spa_router_scrollY):window.scrollTo(0,0)}function ru(n,e){let t=e.href||n.getAttribute("href");if(t&&t.charAt(0)=="/")t="#"+t;else if(!t||t.length<2||t.slice(0,2)!="#/")throw Error('Invalid value for "href" attribute: '+t);n.setAttribute("href",t),n.addEventListener("click",i=>{i.preventDefault(),e.disabled||C0(i.currentTarget.getAttribute("href"))})}function au(n){return n&&typeof n=="string"?{href:n}:n||{}}function C0(n){history.replaceState({...history.state,__svelte_spa_router_scrollX:window.scrollX,__svelte_spa_router_scrollY:window.scrollY},void 0),window.location.hash=n}function M0(n,e,t){let{routes:i={}}=e,{prefix:l=""}=e,{restoreScrollState:s=!1}=e;class o{constructor(C,D){if(!D||typeof D!="function"&&(typeof D!="object"||D._sveltesparouter!==!0))throw Error("Invalid component object");if(!C||typeof C=="string"&&(C.length<1||C.charAt(0)!="/"&&C.charAt(0)!="*")||typeof C=="object"&&!(C instanceof RegExp))throw Error('Invalid value for "path" argument - strings must start with / or *');const{pattern:O,keys:E}=Lg(C);this.path=C,typeof D=="object"&&D._sveltesparouter===!0?(this.component=D.component,this.conditions=D.conditions||[],this.userData=D.userData,this.props=D.props||{}):(this.component=()=>Promise.resolve(D),this.conditions=[],this.props={}),this._pattern=O,this._keys=E}match(C){if(l){if(typeof l=="string")if(C.startsWith(l))C=C.substr(l.length)||"/";else return null;else if(l instanceof RegExp){const L=C.match(l);if(L&&L[0])C=C.substr(L[0].length)||"/";else return null}}const D=this._pattern.exec(C);if(D===null)return null;if(this._keys===!1)return D;const O={};let E=0;for(;E{r.push(new o(C,$))}):Object.keys(i).forEach($=>{r.push(new o($,i[$]))});let a=null,u=null,f={};const c=ot();async function d($,C){await Qt(),c($,C)}let m=null,h=null;s&&(h=$=>{$.state&&($.state.__svelte_spa_router_scrollY||$.state.__svelte_spa_router_scrollX)?m=$.state:m=null},window.addEventListener("popstate",h),h0(()=>{T0(m)}));let _=null,g=null;const k=zo.subscribe(async $=>{_=$;let C=0;for(;C{ou.set(u)});return}t(0,a=null),g=null,ou.set(void 0)});ws(()=>{k(),h&&window.removeEventListener("popstate",h)});function S($){Ae.call(this,n,$)}function T($){Ae.call(this,n,$)}return n.$$set=$=>{"routes"in $&&t(3,i=$.routes),"prefix"in $&&t(4,l=$.prefix),"restoreScrollState"in $&&t(5,s=$.restoreScrollState)},n.$$.update=()=>{n.$$.dirty&32&&(history.scrollRestoration=s?"manual":"auto")},[a,u,f,i,l,s,S,T]}class O0 extends ge{constructor(e){super(),_e(this,e,M0,$0,he,{routes:3,prefix:4,restoreScrollState:5})}}const ro=[];let Pg;function Ng(n){const e=n.pattern.test(Pg);uu(n,n.className,e),uu(n,n.inactiveClassName,!e)}function uu(n,e,t){(e||"").split(" ").forEach(i=>{i&&(n.node.classList.remove(i),t&&n.node.classList.add(i))})}zo.subscribe(n=>{Pg=n.location+(n.querystring?"?"+n.querystring:""),ro.map(Ng)});function Pn(n,e){if(e&&(typeof e=="string"||typeof e=="object"&&e instanceof RegExp)?e={path:e}:e=e||{},!e.path&&n.hasAttribute("href")&&(e.path=n.getAttribute("href"),e.path&&e.path.length>1&&e.path.charAt(0)=="#"&&(e.path=e.path.substring(1))),e.className||(e.className="active"),!e.path||typeof e.path=="string"&&(e.path.length<1||e.path.charAt(0)!="/"&&e.path.charAt(0)!="*"))throw Error('Invalid value for "path" argument');const{pattern:t}=typeof e.path=="string"?Lg(e.path):{pattern:e.path},i={node:n,className:e.className,inactiveClassName:e.inactiveClassName,pattern:t};return ro.push(i),Ng(i),{destroy(){ro.splice(ro.indexOf(i),1)}}}const D0="modulepreload",E0=function(n,e){return new URL(n,e).href},fu={},rt=function(e,t,i){if(!t||t.length===0)return e();const l=document.getElementsByTagName("link");return Promise.all(t.map(s=>{if(s=E0(s,i),s in fu)return;fu[s]=!0;const o=s.endsWith(".css"),r=o?'[rel="stylesheet"]':"";if(!!i)for(let f=l.length-1;f>=0;f--){const c=l[f];if(c.href===s&&(!o||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${r}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":D0,o||(u.as="script",u.crossOrigin=""),u.href=s,document.head.appendChild(u),o)return new Promise((f,c)=>{u.addEventListener("load",f),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>e()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};class qn extends Error{constructor(e){var t,i,l,s;super("ClientResponseError"),this.url="",this.status=0,this.response={},this.isAbort=!1,this.originalError=null,Object.setPrototypeOf(this,qn.prototype),e!==null&&typeof e=="object"&&(this.url=typeof e.url=="string"?e.url:"",this.status=typeof e.status=="number"?e.status:0,this.isAbort=!!e.isAbort,this.originalError=e.originalError,e.response!==null&&typeof e.response=="object"?this.response=e.response:e.data!==null&&typeof e.data=="object"?this.response=e.data:this.response={}),this.originalError||e instanceof qn||(this.originalError=e),typeof DOMException<"u"&&e instanceof DOMException&&(this.isAbort=!0),this.name="ClientResponseError "+this.status,this.message=(t=this.response)==null?void 0:t.message,this.message||(this.isAbort?this.message="The request was autocancelled. You can find more info in https://github.com/pocketbase/js-sdk#auto-cancellation.":(s=(l=(i=this.originalError)==null?void 0:i.cause)==null?void 0:l.message)!=null&&s.includes("ECONNREFUSED ::1")?this.message="Failed to connect to the PocketBase server. Try changing the SDK URL from localhost to 127.0.0.1 (https://github.com/pocketbase/js-sdk/issues/21).":this.message="Something went wrong while processing your request.")}get data(){return this.response}toJSON(){return{...this}}}const Ls=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function A0(n,e){const t={};if(typeof n!="string")return t;const i=Object.assign({},e||{}).decode||I0;let l=0;for(;l0&&(!t.exp||t.exp-e>Date.now()/1e3))}Fg=typeof atob=="function"?atob:n=>{let e=String(n).replace(/=+$/,"");if(e.length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var t,i,l=0,s=0,o="";i=e.charAt(s++);~i&&(t=l%4?64*t+i:i,l++%4)?o+=String.fromCharCode(255&t>>(-2*l&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return o};const du="pb_auth";class P0{constructor(){this.baseToken="",this.baseModel=null,this._onChangeCallbacks=[]}get token(){return this.baseToken}get model(){return this.baseModel}get isValid(){return!ga(this.token)}get isAdmin(){return ao(this.token).type==="admin"}get isAuthRecord(){return ao(this.token).type==="authRecord"}save(e,t){this.baseToken=e||"",this.baseModel=t||null,this.triggerChange()}clear(){this.baseToken="",this.baseModel=null,this.triggerChange()}loadFromCookie(e,t=du){const i=A0(e||"")[t]||"";let l={};try{l=JSON.parse(i),(typeof l===null||typeof l!="object"||Array.isArray(l))&&(l={})}catch{}this.save(l.token||"",l.model||null)}exportToCookie(e,t=du){var a,u;const i={secure:!0,sameSite:!0,httpOnly:!0,path:"/"},l=ao(this.token);i.expires=l!=null&&l.exp?new Date(1e3*l.exp):new Date("1970-01-01"),e=Object.assign({},i,e);const s={token:this.token,model:this.model?JSON.parse(JSON.stringify(this.model)):null};let o=cu(t,JSON.stringify(s),e);const r=typeof Blob<"u"?new Blob([o]).size:o.length;if(s.model&&r>4096){s.model={id:(a=s==null?void 0:s.model)==null?void 0:a.id,email:(u=s==null?void 0:s.model)==null?void 0:u.email};const f=["collectionId","username","verified"];for(const c in this.model)f.includes(c)&&(s.model[c]=this.model[c]);o=cu(t,JSON.stringify(s),e)}return o}onChange(e,t=!1){return this._onChangeCallbacks.push(e),t&&e(this.token,this.model),()=>{for(let i=this._onChangeCallbacks.length-1;i>=0;i--)if(this._onChangeCallbacks[i]==e)return delete this._onChangeCallbacks[i],void this._onChangeCallbacks.splice(i,1)}}triggerChange(){for(const e of this._onChangeCallbacks)e&&e(this.token,this.model)}}class Rg extends P0{constructor(e="pocketbase_auth"){super(),this.storageFallback={},this.storageKey=e,this._bindStorageEvent()}get token(){return(this._storageGet(this.storageKey)||{}).token||""}get model(){return(this._storageGet(this.storageKey)||{}).model||null}save(e,t){this._storageSet(this.storageKey,{token:e,model:t}),super.save(e,t)}clear(){this._storageRemove(this.storageKey),super.clear()}_storageGet(e){if(typeof window<"u"&&(window!=null&&window.localStorage)){const t=window.localStorage.getItem(e)||"";try{return JSON.parse(t)}catch{return t}}return this.storageFallback[e]}_storageSet(e,t){if(typeof window<"u"&&(window!=null&&window.localStorage)){let i=t;typeof t!="string"&&(i=JSON.stringify(t)),window.localStorage.setItem(e,i)}else this.storageFallback[e]=t}_storageRemove(e){var t;typeof window<"u"&&(window!=null&&window.localStorage)&&((t=window.localStorage)==null||t.removeItem(e)),delete this.storageFallback[e]}_bindStorageEvent(){typeof window<"u"&&(window!=null&&window.localStorage)&&window.addEventListener&&window.addEventListener("storage",e=>{if(e.key!=this.storageKey)return;const t=this._storageGet(this.storageKey)||{};super.save(t.token||"",t.model||null)})}}class il{constructor(e){this.client=e}}class N0 extends il{getAll(e){return e=Object.assign({method:"GET"},e),this.client.send("/api/settings",e)}update(e,t){return t=Object.assign({method:"PATCH",body:e},t),this.client.send("/api/settings",t)}testS3(e="storage",t){return t=Object.assign({method:"POST",body:{filesystem:e}},t),this.client.send("/api/settings/test/s3",t).then(()=>!0)}testEmail(e,t,i){return i=Object.assign({method:"POST",body:{email:e,template:t}},i),this.client.send("/api/settings/test/email",i).then(()=>!0)}generateAppleClientSecret(e,t,i,l,s,o){return o=Object.assign({method:"POST",body:{clientId:e,teamId:t,keyId:i,privateKey:l,duration:s}},o),this.client.send("/api/settings/apple/generate-client-secret",o)}}class ba extends il{decode(e){return e}getFullList(e,t){if(typeof e=="number")return this._getFullList(e,t);let i=500;return(t=Object.assign({},e,t)).batch&&(i=t.batch,delete t.batch),this._getFullList(i,t)}getList(e=1,t=30,i){return(i=Object.assign({method:"GET"},i)).query=Object.assign({page:e,perPage:t},i.query),this.client.send(this.baseCrudPath,i).then(l=>{var s;return l.items=((s=l.items)==null?void 0:s.map(o=>this.decode(o)))||[],l})}getFirstListItem(e,t){return(t=Object.assign({requestKey:"one_by_filter_"+this.baseCrudPath+"_"+e},t)).query=Object.assign({filter:e,skipTotal:1},t.query),this.getList(1,1,t).then(i=>{var l;if(!((l=i==null?void 0:i.items)!=null&&l.length))throw new qn({status:404,data:{code:404,message:"The requested resource wasn't found.",data:{}}});return i.items[0]})}getOne(e,t){return t=Object.assign({method:"GET"},t),this.client.send(this.baseCrudPath+"/"+encodeURIComponent(e),t).then(i=>this.decode(i))}create(e,t){return t=Object.assign({method:"POST",body:e},t),this.client.send(this.baseCrudPath,t).then(i=>this.decode(i))}update(e,t,i){return i=Object.assign({method:"PATCH",body:t},i),this.client.send(this.baseCrudPath+"/"+encodeURIComponent(e),i).then(l=>this.decode(l))}delete(e,t){return t=Object.assign({method:"DELETE"},t),this.client.send(this.baseCrudPath+"/"+encodeURIComponent(e),t).then(()=>!0)}_getFullList(e=500,t){(t=t||{}).query=Object.assign({skipTotal:1},t.query);let i=[],l=async s=>this.getList(s,e||500,t).then(o=>{const r=o.items;return i=i.concat(r),r.length==o.perPage?l(s+1):i});return l(1)}}function wn(n,e,t,i){const l=i!==void 0;return l||t!==void 0?l?(console.warn(n),e.body=Object.assign({},e.body,t),e.query=Object.assign({},e.query,i),e):Object.assign(e,t):e}function lr(n){var e;(e=n._resetAutoRefresh)==null||e.call(n)}class F0 extends ba{get baseCrudPath(){return"/api/admins"}update(e,t,i){return super.update(e,t,i).then(l=>{var s,o;return((s=this.client.authStore.model)==null?void 0:s.id)===l.id&&((o=this.client.authStore.model)==null?void 0:o.collectionId)===void 0&&this.client.authStore.save(this.client.authStore.token,l),l})}delete(e,t){return super.delete(e,t).then(i=>{var l,s;return i&&((l=this.client.authStore.model)==null?void 0:l.id)===e&&((s=this.client.authStore.model)==null?void 0:s.collectionId)===void 0&&this.client.authStore.clear(),i})}authResponse(e){const t=this.decode((e==null?void 0:e.admin)||{});return e!=null&&e.token&&(e!=null&&e.admin)&&this.client.authStore.save(e.token,t),Object.assign({},e,{token:(e==null?void 0:e.token)||"",admin:t})}async authWithPassword(e,t,i,l){let s={method:"POST",body:{identity:e,password:t}};s=wn("This form of authWithPassword(email, pass, body?, query?) is deprecated. Consider replacing it with authWithPassword(email, pass, options?).",s,i,l);const o=s.autoRefreshThreshold;delete s.autoRefreshThreshold,s.autoRefresh||lr(this.client);let r=await this.client.send(this.baseCrudPath+"/auth-with-password",s);return r=this.authResponse(r),o&&function(u,f,c,d){lr(u);const m=u.beforeSend,h=u.authStore.model,_=u.authStore.onChange((g,k)=>{(!g||(k==null?void 0:k.id)!=(h==null?void 0:h.id)||(k!=null&&k.collectionId||h!=null&&h.collectionId)&&(k==null?void 0:k.collectionId)!=(h==null?void 0:h.collectionId))&&lr(u)});u._resetAutoRefresh=function(){_(),u.beforeSend=m,delete u._resetAutoRefresh},u.beforeSend=async(g,k)=>{var C;const S=u.authStore.token;if((C=k.query)!=null&&C.autoRefresh)return m?m(g,k):{url:g,sendOptions:k};let T=u.authStore.isValid;if(T&&ga(u.authStore.token,f))try{await c()}catch{T=!1}T||await d();const $=k.headers||{};for(let D in $)if(D.toLowerCase()=="authorization"&&S==$[D]&&u.authStore.token){$[D]=u.authStore.token;break}return k.headers=$,m?m(g,k):{url:g,sendOptions:k}}}(this.client,o,()=>this.authRefresh({autoRefresh:!0}),()=>this.authWithPassword(e,t,Object.assign({autoRefresh:!0},s))),r}authRefresh(e,t){let i={method:"POST"};return i=wn("This form of authRefresh(body?, query?) is deprecated. Consider replacing it with authRefresh(options?).",i,e,t),this.client.send(this.baseCrudPath+"/auth-refresh",i).then(this.authResponse.bind(this))}requestPasswordReset(e,t,i){let l={method:"POST",body:{email:e}};return l=wn("This form of requestPasswordReset(email, body?, query?) is deprecated. Consider replacing it with requestPasswordReset(email, options?).",l,t,i),this.client.send(this.baseCrudPath+"/request-password-reset",l).then(()=>!0)}confirmPasswordReset(e,t,i,l,s){let o={method:"POST",body:{token:e,password:t,passwordConfirm:i}};return o=wn("This form of confirmPasswordReset(resetToken, password, passwordConfirm, body?, query?) is deprecated. Consider replacing it with confirmPasswordReset(resetToken, password, passwordConfirm, options?).",o,l,s),this.client.send(this.baseCrudPath+"/confirm-password-reset",o).then(()=>!0)}}const R0=["requestKey","$cancelKey","$autoCancel","fetch","headers","body","query","params","cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","window"];function qg(n){if(n){n.query=n.query||{};for(let e in n)R0.includes(e)||(n.query[e]=n[e],delete n[e])}}class jg extends il{constructor(){super(...arguments),this.clientId="",this.eventSource=null,this.subscriptions={},this.lastSentSubscriptions=[],this.maxConnectTimeout=15e3,this.reconnectAttempts=0,this.maxReconnectAttempts=1/0,this.predefinedReconnectIntervals=[200,300,500,1e3,1200,1500,2e3],this.pendingConnects=[]}get isConnected(){return!!this.eventSource&&!!this.clientId&&!this.pendingConnects.length}async subscribe(e,t,i){var o;if(!e)throw new Error("topic must be set.");let l=e;if(i){qg(i);const r="options="+encodeURIComponent(JSON.stringify({query:i.query,headers:i.headers}));l+=(l.includes("?")?"&":"?")+r}const s=function(r){const a=r;let u;try{u=JSON.parse(a==null?void 0:a.data)}catch{}t(u||{})};return this.subscriptions[l]||(this.subscriptions[l]=[]),this.subscriptions[l].push(s),this.isConnected?this.subscriptions[l].length===1?await this.submitSubscriptions():(o=this.eventSource)==null||o.addEventListener(l,s):await this.connect(),async()=>this.unsubscribeByTopicAndListener(e,s)}async unsubscribe(e){var i;let t=!1;if(e){const l=this.getSubscriptionsByTopic(e);for(let s in l)if(this.hasSubscriptionListeners(s)){for(let o of this.subscriptions[s])(i=this.eventSource)==null||i.removeEventListener(s,o);delete this.subscriptions[s],t||(t=!0)}}else this.subscriptions={};this.hasSubscriptionListeners()?t&&await this.submitSubscriptions():this.disconnect()}async unsubscribeByPrefix(e){var i;let t=!1;for(let l in this.subscriptions)if((l+"?").startsWith(e)){t=!0;for(let s of this.subscriptions[l])(i=this.eventSource)==null||i.removeEventListener(l,s);delete this.subscriptions[l]}t&&(this.hasSubscriptionListeners()?await this.submitSubscriptions():this.disconnect())}async unsubscribeByTopicAndListener(e,t){var s;let i=!1;const l=this.getSubscriptionsByTopic(e);for(let o in l){if(!Array.isArray(this.subscriptions[o])||!this.subscriptions[o].length)continue;let r=!1;for(let a=this.subscriptions[o].length-1;a>=0;a--)this.subscriptions[o][a]===t&&(r=!0,delete this.subscriptions[o][a],this.subscriptions[o].splice(a,1),(s=this.eventSource)==null||s.removeEventListener(o,t));r&&(this.subscriptions[o].length||delete this.subscriptions[o],i||this.hasSubscriptionListeners(o)||(i=!0))}this.hasSubscriptionListeners()?i&&await this.submitSubscriptions():this.disconnect()}hasSubscriptionListeners(e){var t,i;if(this.subscriptions=this.subscriptions||{},e)return!!((t=this.subscriptions[e])!=null&&t.length);for(let l in this.subscriptions)if((i=this.subscriptions[l])!=null&&i.length)return!0;return!1}async submitSubscriptions(){if(this.clientId)return this.addAllSubscriptionListeners(),this.lastSentSubscriptions=this.getNonEmptySubscriptionKeys(),this.client.send("/api/realtime",{method:"POST",body:{clientId:this.clientId,subscriptions:this.lastSentSubscriptions},requestKey:this.getSubscriptionsCancelKey()}).catch(e=>{if(!(e!=null&&e.isAbort))throw e})}getSubscriptionsCancelKey(){return"realtime_"+this.clientId}getSubscriptionsByTopic(e){const t={};e=e.includes("?")?e:e+"?";for(let i in this.subscriptions)(i+"?").startsWith(e)&&(t[i]=this.subscriptions[i]);return t}getNonEmptySubscriptionKeys(){const e=[];for(let t in this.subscriptions)this.subscriptions[t].length&&e.push(t);return e}addAllSubscriptionListeners(){if(this.eventSource){this.removeAllSubscriptionListeners();for(let e in this.subscriptions)for(let t of this.subscriptions[e])this.eventSource.addEventListener(e,t)}}removeAllSubscriptionListeners(){if(this.eventSource)for(let e in this.subscriptions)for(let t of this.subscriptions[e])this.eventSource.removeEventListener(e,t)}async connect(){if(!(this.reconnectAttempts>0))return new Promise((e,t)=>{this.pendingConnects.push({resolve:e,reject:t}),this.pendingConnects.length>1||this.initConnect()})}initConnect(){this.disconnect(!0),clearTimeout(this.connectTimeoutId),this.connectTimeoutId=setTimeout(()=>{this.connectErrorHandler(new Error("EventSource connect took too long."))},this.maxConnectTimeout),this.eventSource=new EventSource(this.client.buildUrl("/api/realtime")),this.eventSource.onerror=e=>{this.connectErrorHandler(new Error("Failed to establish realtime connection."))},this.eventSource.addEventListener("PB_CONNECT",e=>{const t=e;this.clientId=t==null?void 0:t.lastEventId,this.submitSubscriptions().then(async()=>{let i=3;for(;this.hasUnsentSubscriptions()&&i>0;)i--,await this.submitSubscriptions()}).then(()=>{for(let i of this.pendingConnects)i.resolve();this.pendingConnects=[],this.reconnectAttempts=0,clearTimeout(this.reconnectTimeoutId),clearTimeout(this.connectTimeoutId)}).catch(i=>{this.clientId="",this.connectErrorHandler(i)})})}hasUnsentSubscriptions(){const e=this.getNonEmptySubscriptionKeys();if(e.length!=this.lastSentSubscriptions.length)return!0;for(const t of e)if(!this.lastSentSubscriptions.includes(t))return!0;return!1}connectErrorHandler(e){if(clearTimeout(this.connectTimeoutId),clearTimeout(this.reconnectTimeoutId),!this.clientId&&!this.reconnectAttempts||this.reconnectAttempts>this.maxReconnectAttempts){for(let i of this.pendingConnects)i.reject(new qn(e));return this.pendingConnects=[],void this.disconnect()}this.disconnect(!0);const t=this.predefinedReconnectIntervals[this.reconnectAttempts]||this.predefinedReconnectIntervals[this.predefinedReconnectIntervals.length-1];this.reconnectAttempts++,this.reconnectTimeoutId=setTimeout(()=>{this.initConnect()},t)}disconnect(e=!1){var t;if(clearTimeout(this.connectTimeoutId),clearTimeout(this.reconnectTimeoutId),this.removeAllSubscriptionListeners(),this.client.cancelRequest(this.getSubscriptionsCancelKey()),(t=this.eventSource)==null||t.close(),this.eventSource=null,this.clientId="",!e){this.reconnectAttempts=0;for(let i of this.pendingConnects)i.resolve();this.pendingConnects=[]}}}class q0 extends ba{constructor(e,t){super(e),this.collectionIdOrName=t}get baseCrudPath(){return this.baseCollectionPath+"/records"}get baseCollectionPath(){return"/api/collections/"+encodeURIComponent(this.collectionIdOrName)}async subscribe(e,t,i){if(!e)throw new Error("Missing topic.");if(!t)throw new Error("Missing subscription callback.");return this.client.realtime.subscribe(this.collectionIdOrName+"/"+e,t,i)}async unsubscribe(e){return e?this.client.realtime.unsubscribe(this.collectionIdOrName+"/"+e):this.client.realtime.unsubscribeByPrefix(this.collectionIdOrName)}getFullList(e,t){if(typeof e=="number")return super.getFullList(e,t);const i=Object.assign({},e,t);return super.getFullList(i)}getList(e=1,t=30,i){return super.getList(e,t,i)}getFirstListItem(e,t){return super.getFirstListItem(e,t)}getOne(e,t){return super.getOne(e,t)}create(e,t){return super.create(e,t)}update(e,t,i){return super.update(e,t,i).then(l=>{var s,o,r;return((s=this.client.authStore.model)==null?void 0:s.id)!==(l==null?void 0:l.id)||((o=this.client.authStore.model)==null?void 0:o.collectionId)!==this.collectionIdOrName&&((r=this.client.authStore.model)==null?void 0:r.collectionName)!==this.collectionIdOrName||this.client.authStore.save(this.client.authStore.token,l),l})}delete(e,t){return super.delete(e,t).then(i=>{var l,s,o;return!i||((l=this.client.authStore.model)==null?void 0:l.id)!==e||((s=this.client.authStore.model)==null?void 0:s.collectionId)!==this.collectionIdOrName&&((o=this.client.authStore.model)==null?void 0:o.collectionName)!==this.collectionIdOrName||this.client.authStore.clear(),i})}authResponse(e){const t=this.decode((e==null?void 0:e.record)||{});return this.client.authStore.save(e==null?void 0:e.token,t),Object.assign({},e,{token:(e==null?void 0:e.token)||"",record:t})}listAuthMethods(e){return e=Object.assign({method:"GET"},e),this.client.send(this.baseCollectionPath+"/auth-methods",e).then(t=>Object.assign({},t,{usernamePassword:!!(t!=null&&t.usernamePassword),emailPassword:!!(t!=null&&t.emailPassword),authProviders:Array.isArray(t==null?void 0:t.authProviders)?t==null?void 0:t.authProviders:[]}))}authWithPassword(e,t,i,l){let s={method:"POST",body:{identity:e,password:t}};return s=wn("This form of authWithPassword(usernameOrEmail, pass, body?, query?) is deprecated. Consider replacing it with authWithPassword(usernameOrEmail, pass, options?).",s,i,l),this.client.send(this.baseCollectionPath+"/auth-with-password",s).then(o=>this.authResponse(o))}authWithOAuth2Code(e,t,i,l,s,o,r){let a={method:"POST",body:{provider:e,code:t,codeVerifier:i,redirectUrl:l,createData:s}};return a=wn("This form of authWithOAuth2Code(provider, code, codeVerifier, redirectUrl, createData?, body?, query?) is deprecated. Consider replacing it with authWithOAuth2Code(provider, code, codeVerifier, redirectUrl, createData?, options?).",a,o,r),this.client.send(this.baseCollectionPath+"/auth-with-oauth2",a).then(u=>this.authResponse(u))}async authWithOAuth2(...e){if(e.length>1||typeof(e==null?void 0:e[0])=="string")return console.warn("PocketBase: This form of authWithOAuth2() is deprecated and may get removed in the future. Please replace with authWithOAuth2Code() OR use the authWithOAuth2() realtime form as shown in https://pocketbase.io/docs/authentication/#oauth2-integration."),this.authWithOAuth2Code((e==null?void 0:e[0])||"",(e==null?void 0:e[1])||"",(e==null?void 0:e[2])||"",(e==null?void 0:e[3])||"",(e==null?void 0:e[4])||{},(e==null?void 0:e[5])||{},(e==null?void 0:e[6])||{});const t=(e==null?void 0:e[0])||{},i=(await this.listAuthMethods()).authProviders.find(a=>a.name===t.provider);if(!i)throw new qn(new Error(`Missing or invalid provider "${t.provider}".`));const l=this.client.buildUrl("/api/oauth2-redirect"),s=new jg(this.client);let o=null;function r(){o==null||o.close(),s.unsubscribe()}return t.urlCallback||(o=pu(void 0)),new Promise(async(a,u)=>{var f;try{await s.subscribe("@oauth2",async h=>{const _=s.clientId;try{if(!h.state||_!==h.state)throw new Error("State parameters don't match.");const g=Object.assign({},t);delete g.provider,delete g.scopes,delete g.createData,delete g.urlCallback;const k=await this.authWithOAuth2Code(i.name,h.code,i.codeVerifier,l,t.createData,g);a(k)}catch(g){u(new qn(g))}r()});const c={state:s.clientId};(f=t.scopes)!=null&&f.length&&(c.scope=t.scopes.join(" "));const d=this._replaceQueryParams(i.authUrl+l,c);await(t.urlCallback||function(h){o?o.location.href=h:o=pu(h)})(d)}catch(c){r(),u(new qn(c))}})}authRefresh(e,t){let i={method:"POST"};return i=wn("This form of authRefresh(body?, query?) is deprecated. Consider replacing it with authRefresh(options?).",i,e,t),this.client.send(this.baseCollectionPath+"/auth-refresh",i).then(l=>this.authResponse(l))}requestPasswordReset(e,t,i){let l={method:"POST",body:{email:e}};return l=wn("This form of requestPasswordReset(email, body?, query?) is deprecated. Consider replacing it with requestPasswordReset(email, options?).",l,t,i),this.client.send(this.baseCollectionPath+"/request-password-reset",l).then(()=>!0)}confirmPasswordReset(e,t,i,l,s){let o={method:"POST",body:{token:e,password:t,passwordConfirm:i}};return o=wn("This form of confirmPasswordReset(token, password, passwordConfirm, body?, query?) is deprecated. Consider replacing it with confirmPasswordReset(token, password, passwordConfirm, options?).",o,l,s),this.client.send(this.baseCollectionPath+"/confirm-password-reset",o).then(()=>!0)}requestVerification(e,t,i){let l={method:"POST",body:{email:e}};return l=wn("This form of requestVerification(email, body?, query?) is deprecated. Consider replacing it with requestVerification(email, options?).",l,t,i),this.client.send(this.baseCollectionPath+"/request-verification",l).then(()=>!0)}confirmVerification(e,t,i){let l={method:"POST",body:{token:e}};return l=wn("This form of confirmVerification(token, body?, query?) is deprecated. Consider replacing it with confirmVerification(token, options?).",l,t,i),this.client.send(this.baseCollectionPath+"/confirm-verification",l).then(()=>!0)}requestEmailChange(e,t,i){let l={method:"POST",body:{newEmail:e}};return l=wn("This form of requestEmailChange(newEmail, body?, query?) is deprecated. Consider replacing it with requestEmailChange(newEmail, options?).",l,t,i),this.client.send(this.baseCollectionPath+"/request-email-change",l).then(()=>!0)}confirmEmailChange(e,t,i,l){let s={method:"POST",body:{token:e,password:t}};return s=wn("This form of confirmEmailChange(token, password, body?, query?) is deprecated. Consider replacing it with confirmEmailChange(token, password, options?).",s,i,l),this.client.send(this.baseCollectionPath+"/confirm-email-change",s).then(()=>!0)}listExternalAuths(e,t){return t=Object.assign({method:"GET"},t),this.client.send(this.baseCrudPath+"/"+encodeURIComponent(e)+"/external-auths",t)}unlinkExternalAuth(e,t,i){return i=Object.assign({method:"DELETE"},i),this.client.send(this.baseCrudPath+"/"+encodeURIComponent(e)+"/external-auths/"+encodeURIComponent(t),i).then(()=>!0)}_replaceQueryParams(e,t={}){let i=e,l="";e.indexOf("?")>=0&&(i=e.substring(0,e.indexOf("?")),l=e.substring(e.indexOf("?")+1));const s={},o=l.split("&");for(const r of o){if(r=="")continue;const a=r.split("=");s[decodeURIComponent(a[0].replace(/\+/g," "))]=decodeURIComponent((a[1]||"").replace(/\+/g," "))}for(let r in t)t.hasOwnProperty(r)&&(t[r]==null?delete s[r]:s[r]=t[r]);l="";for(let r in s)s.hasOwnProperty(r)&&(l!=""&&(l+="&"),l+=encodeURIComponent(r.replace(/%20/g,"+"))+"="+encodeURIComponent(s[r].replace(/%20/g,"+")));return l!=""?i+"?"+l:i}}function pu(n){if(typeof window>"u"||!(window!=null&&window.open))throw new qn(new Error("Not in a browser context - please pass a custom urlCallback function."));let e=1024,t=768,i=window.innerWidth,l=window.innerHeight;e=e>i?i:e,t=t>l?l:t;let s=i/2-e/2,o=l/2-t/2;return window.open(n,"popup_window","width="+e+",height="+t+",top="+o+",left="+s+",resizable,menubar=no")}class j0 extends ba{get baseCrudPath(){return"/api/collections"}async import(e,t=!1,i){return i=Object.assign({method:"PUT",body:{collections:e,deleteMissing:t}},i),this.client.send(this.baseCrudPath+"/import",i).then(()=>!0)}}class H0 extends il{getList(e=1,t=30,i){return(i=Object.assign({method:"GET"},i)).query=Object.assign({page:e,perPage:t},i.query),this.client.send("/api/logs",i)}getOne(e,t){return t=Object.assign({method:"GET"},t),this.client.send("/api/logs/"+encodeURIComponent(e),t)}getStats(e){return e=Object.assign({method:"GET"},e),this.client.send("/api/logs/stats",e)}}class z0 extends il{check(e){return e=Object.assign({method:"GET"},e),this.client.send("/api/health",e)}}class V0 extends il{getUrl(e,t,i={}){if(!t||!(e!=null&&e.id)||!(e!=null&&e.collectionId)&&!(e!=null&&e.collectionName))return"";const l=[];l.push("api"),l.push("files"),l.push(encodeURIComponent(e.collectionId||e.collectionName)),l.push(encodeURIComponent(e.id)),l.push(encodeURIComponent(t));let s=this.client.buildUrl(l.join("/"));if(Object.keys(i).length){i.download===!1&&delete i.download;const o=new URLSearchParams(i);s+=(s.includes("?")?"&":"?")+o}return s}getToken(e){return e=Object.assign({method:"POST"},e),this.client.send("/api/files/token",e).then(t=>(t==null?void 0:t.token)||"")}}class B0 extends il{getFullList(e){return e=Object.assign({method:"GET"},e),this.client.send("/api/backups",e)}create(e,t){return t=Object.assign({method:"POST",body:{name:e}},t),this.client.send("/api/backups",t).then(()=>!0)}upload(e,t){return t=Object.assign({method:"POST",body:e},t),this.client.send("/api/backups/upload",t).then(()=>!0)}delete(e,t){return t=Object.assign({method:"DELETE"},t),this.client.send(`/api/backups/${encodeURIComponent(e)}`,t).then(()=>!0)}restore(e,t){return t=Object.assign({method:"POST"},t),this.client.send(`/api/backups/${encodeURIComponent(e)}/restore`,t).then(()=>!0)}getDownloadUrl(e,t){return this.client.buildUrl(`/api/backups/${encodeURIComponent(t)}?token=${encodeURIComponent(e)}`)}}class Bo{constructor(e="/",t,i="en-US"){this.cancelControllers={},this.recordServices={},this.enableAutoCancellation=!0,this.baseUrl=e,this.lang=i,this.authStore=t||new Rg,this.admins=new F0(this),this.collections=new j0(this),this.files=new V0(this),this.logs=new H0(this),this.settings=new N0(this),this.realtime=new jg(this),this.health=new z0(this),this.backups=new B0(this)}collection(e){return this.recordServices[e]||(this.recordServices[e]=new q0(this,e)),this.recordServices[e]}autoCancellation(e){return this.enableAutoCancellation=!!e,this}cancelRequest(e){return this.cancelControllers[e]&&(this.cancelControllers[e].abort(),delete this.cancelControllers[e]),this}cancelAllRequests(){for(let e in this.cancelControllers)this.cancelControllers[e].abort();return this.cancelControllers={},this}filter(e,t){if(!t)return e;for(let i in t){let l=t[i];switch(typeof l){case"boolean":case"number":l=""+l;break;case"string":l="'"+l.replace(/'/g,"\\'")+"'";break;default:l=l===null?"null":l instanceof Date?"'"+l.toISOString().replace("T"," ")+"'":"'"+JSON.stringify(l).replace(/'/g,"\\'")+"'"}e=e.replaceAll("{:"+i+"}",l)}return e}getFileUrl(e,t,i={}){return this.files.getUrl(e,t,i)}buildUrl(e){var i;let t=this.baseUrl;return typeof window>"u"||!window.location||t.startsWith("https://")||t.startsWith("http://")||(t=(i=window.location.origin)!=null&&i.endsWith("/")?window.location.origin.substring(0,window.location.origin.length-1):window.location.origin||"",this.baseUrl.startsWith("/")||(t+=window.location.pathname||"/",t+=t.endsWith("/")?"":"/"),t+=this.baseUrl),e&&(t+=t.endsWith("/")?"":"/",t+=e.startsWith("/")?e.substring(1):e),t}async send(e,t){t=this.initSendOptions(e,t);let i=this.buildUrl(e);if(this.beforeSend){const l=Object.assign({},await this.beforeSend(i,t));l.url!==void 0||l.options!==void 0?(i=l.url||i,t=l.options||t):Object.keys(l).length&&(t=l,console!=null&&console.warn&&console.warn("Deprecated format of beforeSend return: please use `return { url, options }`, instead of `return options`."))}if(t.query!==void 0){const l=this.serializeQueryParams(t.query);l&&(i+=(i.includes("?")?"&":"?")+l),delete t.query}return this.getHeader(t.headers,"Content-Type")=="application/json"&&t.body&&typeof t.body!="string"&&(t.body=JSON.stringify(t.body)),(t.fetch||fetch)(i,t).then(async l=>{let s={};try{s=await l.json()}catch{}if(this.afterSend&&(s=await this.afterSend(l,s)),l.status>=400)throw new qn({url:l.url,status:l.status,data:s});return s}).catch(l=>{throw new qn(l)})}initSendOptions(e,t){if((t=Object.assign({method:"GET"},t)).body=this.convertToFormDataIfNeeded(t.body),qg(t),t.query=Object.assign({},t.params,t.query),t.requestKey===void 0&&(t.$autoCancel===!1||t.query.$autoCancel===!1?t.requestKey=null:(t.$cancelKey||t.query.$cancelKey)&&(t.requestKey=t.$cancelKey||t.query.$cancelKey)),delete t.$autoCancel,delete t.query.$autoCancel,delete t.$cancelKey,delete t.query.$cancelKey,this.getHeader(t.headers,"Content-Type")!==null||this.isFormData(t.body)||(t.headers=Object.assign({},t.headers,{"Content-Type":"application/json"})),this.getHeader(t.headers,"Accept-Language")===null&&(t.headers=Object.assign({},t.headers,{"Accept-Language":this.lang})),this.authStore.token&&this.getHeader(t.headers,"Authorization")===null&&(t.headers=Object.assign({},t.headers,{Authorization:this.authStore.token})),this.enableAutoCancellation&&t.requestKey!==null){const i=t.requestKey||(t.method||"GET")+e;delete t.requestKey,this.cancelRequest(i);const l=new AbortController;this.cancelControllers[i]=l,t.signal=l.signal}return t}convertToFormDataIfNeeded(e){if(typeof FormData>"u"||e===void 0||typeof e!="object"||e===null||this.isFormData(e)||!this.hasBlobField(e))return e;const t=new FormData;for(let i in e){const l=Array.isArray(e[i])?e[i]:[e[i]];for(let s of l)t.append(i,s)}return t}hasBlobField(e){for(let t in e){const i=Array.isArray(e[t])?e[t]:[e[t]];for(let l of i)if(typeof Blob<"u"&&l instanceof Blob||typeof File<"u"&&l instanceof File)return!0}return!1}getHeader(e,t){e=e||{},t=t.toLowerCase();for(let i in e)if(i.toLowerCase()==t)return e[i];return null}isFormData(e){return e&&(e.constructor.name==="FormData"||typeof FormData<"u"&&e instanceof FormData)}serializeQueryParams(e){const t=[];for(const i in e){if(e[i]===null)continue;const l=e[i],s=encodeURIComponent(i);if(Array.isArray(l))for(const o of l)t.push(s+"="+encodeURIComponent(o));else l instanceof Date?t.push(s+"="+encodeURIComponent(l.toISOString())):typeof l!==null&&typeof l=="object"?t.push(s+"="+encodeURIComponent(JSON.stringify(l))):t.push(s+"="+encodeURIComponent(l))}return t.join("&")}}class ll extends Error{}class U0 extends ll{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class W0 extends ll{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Y0 extends ll{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Kl extends ll{}class Hg extends ll{constructor(e){super(`Invalid unit ${e}`)}}class Fn extends ll{}class vi extends ll{constructor(){super("Zone is an abstract class")}}const Me="numeric",Zn="short",Mn="long",zr={year:Me,month:Me,day:Me},zg={year:Me,month:Zn,day:Me},K0={year:Me,month:Zn,day:Me,weekday:Zn},Vg={year:Me,month:Mn,day:Me},Bg={year:Me,month:Mn,day:Me,weekday:Mn},Ug={hour:Me,minute:Me},Wg={hour:Me,minute:Me,second:Me},Yg={hour:Me,minute:Me,second:Me,timeZoneName:Zn},Kg={hour:Me,minute:Me,second:Me,timeZoneName:Mn},Jg={hour:Me,minute:Me,hourCycle:"h23"},Zg={hour:Me,minute:Me,second:Me,hourCycle:"h23"},Gg={hour:Me,minute:Me,second:Me,hourCycle:"h23",timeZoneName:Zn},Xg={hour:Me,minute:Me,second:Me,hourCycle:"h23",timeZoneName:Mn},Qg={year:Me,month:Me,day:Me,hour:Me,minute:Me},xg={year:Me,month:Me,day:Me,hour:Me,minute:Me,second:Me},e1={year:Me,month:Zn,day:Me,hour:Me,minute:Me},t1={year:Me,month:Zn,day:Me,hour:Me,minute:Me,second:Me},J0={year:Me,month:Zn,day:Me,weekday:Zn,hour:Me,minute:Me},n1={year:Me,month:Mn,day:Me,hour:Me,minute:Me,timeZoneName:Zn},i1={year:Me,month:Mn,day:Me,hour:Me,minute:Me,second:Me,timeZoneName:Zn},l1={year:Me,month:Mn,day:Me,weekday:Mn,hour:Me,minute:Me,timeZoneName:Mn},s1={year:Me,month:Mn,day:Me,weekday:Mn,hour:Me,minute:Me,second:Me,timeZoneName:Mn};function it(n){return typeof n>"u"}function Xi(n){return typeof n=="number"}function Uo(n){return typeof n=="number"&&n%1===0}function Z0(n){return typeof n=="string"}function G0(n){return Object.prototype.toString.call(n)==="[object Date]"}function o1(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function X0(n){return Array.isArray(n)?n:[n]}function mu(n,e,t){if(n.length!==0)return n.reduce((i,l)=>{const s=[e(l),l];return i&&t(i[0],s[0])===i[0]?i:s},null)[1]}function Q0(n,e){return e.reduce((t,i)=>(t[i]=n[i],t),{})}function wl(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function pi(n,e,t){return Uo(n)&&n>=e&&n<=t}function x0(n,e){return n-e*Math.floor(n/e)}function Ut(n,e=2){const t=n<0;let i;return t?i="-"+(""+-n).padStart(e,"0"):i=(""+n).padStart(e,"0"),i}function wi(n){if(!(it(n)||n===null||n===""))return parseInt(n,10)}function Ri(n){if(!(it(n)||n===null||n===""))return parseFloat(n)}function ya(n){if(!(it(n)||n===null||n==="")){const e=parseFloat("0."+n)*1e3;return Math.floor(e)}}function ka(n,e,t=!1){const i=10**e;return(t?Math.trunc:Math.round)(n*i)/i}function Ss(n){return n%4===0&&(n%100!==0||n%400===0)}function Ql(n){return Ss(n)?366:365}function vo(n,e){const t=x0(e-1,12)+1,i=n+(e-t)/12;return t===2?Ss(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function va(n){let e=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second,n.millisecond);return n.year<100&&n.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function wo(n){const e=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7,t=n-1,i=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||i===3?53:52}function Vr(n){return n>99?n:n>60?1900+n:2e3+n}function r1(n,e,t,i=null){const l=new Date(n),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(s.timeZone=i);const o={timeZoneName:e,...s},r=new Intl.DateTimeFormat(t,o).formatToParts(l).find(a=>a.type.toLowerCase()==="timezonename");return r?r.value:null}function Wo(n,e){let t=parseInt(n,10);Number.isNaN(t)&&(t=0);const i=parseInt(e,10)||0,l=t<0||Object.is(t,-0)?-i:i;return t*60+l}function a1(n){const e=Number(n);if(typeof n=="boolean"||n===""||Number.isNaN(e))throw new Fn(`Invalid unit value ${n}`);return e}function So(n,e){const t={};for(const i in n)if(wl(n,i)){const l=n[i];if(l==null)continue;t[e(i)]=a1(l)}return t}function xl(n,e){const t=Math.trunc(Math.abs(n/60)),i=Math.trunc(Math.abs(n%60)),l=n>=0?"+":"-";switch(e){case"short":return`${l}${Ut(t,2)}:${Ut(i,2)}`;case"narrow":return`${l}${t}${i>0?`:${i}`:""}`;case"techie":return`${l}${Ut(t,2)}${Ut(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Yo(n){return Q0(n,["hour","minute","second","millisecond"])}const u1=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,ey=["January","February","March","April","May","June","July","August","September","October","November","December"],f1=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ty=["J","F","M","A","M","J","J","A","S","O","N","D"];function c1(n){switch(n){case"narrow":return[...ty];case"short":return[...f1];case"long":return[...ey];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const d1=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],p1=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ny=["M","T","W","T","F","S","S"];function m1(n){switch(n){case"narrow":return[...ny];case"short":return[...p1];case"long":return[...d1];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const h1=["AM","PM"],iy=["Before Christ","Anno Domini"],ly=["BC","AD"],sy=["B","A"];function _1(n){switch(n){case"narrow":return[...sy];case"short":return[...ly];case"long":return[...iy];default:return null}}function oy(n){return h1[n.hour<12?0:1]}function ry(n,e){return m1(e)[n.weekday-1]}function ay(n,e){return c1(e)[n.month-1]}function uy(n,e){return _1(e)[n.year<0?0:1]}function fy(n,e,t="always",i=!1){const l={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(n)===-1;if(t==="auto"&&s){const c=n==="days";switch(e){case 1:return c?"tomorrow":`next ${l[n][0]}`;case-1:return c?"yesterday":`last ${l[n][0]}`;case 0:return c?"today":`this ${l[n][0]}`}}const o=Object.is(e,-0)||e<0,r=Math.abs(e),a=r===1,u=l[n],f=i?a?u[1]:u[2]||u[1]:a?l[n][0]:n;return o?`${r} ${f} ago`:`in ${r} ${f}`}function hu(n,e){let t="";for(const i of n)i.literal?t+=i.val:t+=e(i.val);return t}const cy={D:zr,DD:zg,DDD:Vg,DDDD:Bg,t:Ug,tt:Wg,ttt:Yg,tttt:Kg,T:Jg,TT:Zg,TTT:Gg,TTTT:Xg,f:Qg,ff:e1,fff:n1,ffff:l1,F:xg,FF:t1,FFF:i1,FFFF:s1};class _n{static create(e,t={}){return new _n(e,t)}static parseFormat(e){let t=null,i="",l=!1;const s=[];for(let o=0;o0&&s.push({literal:l,val:i}),t=null,i="",l=!l):l||r===t?i+=r:(i.length>0&&s.push({literal:!1,val:i}),i=r,t=r)}return i.length>0&&s.push({literal:l,val:i}),s}static macroTokenToFormatOpts(e){return cy[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}formatDateTime(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).format()}formatDateTimeParts(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).formatToParts()}resolvedOptions(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return Ut(e,t);const i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){const i=this.loc.listingMode()==="en",l=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,h)=>this.loc.extract(e,m,h),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",r=()=>i?oy(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),a=(m,h)=>i?ay(e,m):s(h?{month:m}:{month:m,day:"numeric"},"month"),u=(m,h)=>i?ry(e,m):s(h?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),f=m=>{const h=_n.macroTokenToFormatOpts(m);return h?this.formatWithSystemDefault(e,h):m},c=m=>i?uy(e,m):s({era:m},"era"),d=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return r();case"d":return l?s({day:"numeric"},"day"):this.num(e.day);case"dd":return l?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return l?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return l?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return a("short",!0);case"LLLL":return a("long",!0);case"LLLLL":return a("narrow",!0);case"M":return l?s({month:"numeric"},"month"):this.num(e.month);case"MM":return l?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return a("short",!1);case"MMMM":return a("long",!1);case"MMMMM":return a("narrow",!1);case"y":return l?s({year:"numeric"},"year"):this.num(e.year);case"yy":return l?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return l?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return l?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return f(m)}};return hu(_n.parseFormat(t),d)}formatDurationFromString(e,t){const i=a=>{switch(a[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},l=a=>u=>{const f=i(u);return f?this.num(a.get(f),u.length):u},s=_n.parseFormat(t),o=s.reduce((a,{literal:u,val:f})=>u?a:a.concat(f),[]),r=e.shiftTo(...o.map(i).filter(a=>a));return hu(s,l(r))}}class Yn{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}class $s{get type(){throw new vi}get name(){throw new vi}get ianaName(){return this.name}get isUniversal(){throw new vi}offsetName(e,t){throw new vi}formatOffset(e,t){throw new vi}offset(e){throw new vi}equals(e){throw new vi}get isValid(){throw new vi}}let sr=null;class wa extends $s{static get instance(){return sr===null&&(sr=new wa),sr}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return r1(e,t,i)}formatOffset(e,t){return xl(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let uo={};function dy(n){return uo[n]||(uo[n]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:n,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),uo[n]}const py={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function my(n,e){const t=n.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,l,s,o,r,a,u,f]=i;return[o,l,s,r,a,u,f]}function hy(n,e){const t=n.formatToParts(e),i=[];for(let l=0;l=0?h:1e3+h,(d-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let or=null;class un extends $s{static get utcInstance(){return or===null&&(or=new un(0)),or}static instance(e){return e===0?un.utcInstance:new un(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new un(Wo(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${xl(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${xl(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return xl(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class _y extends $s{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function $i(n,e){if(it(n)||n===null)return e;if(n instanceof $s)return n;if(Z0(n)){const t=n.toLowerCase();return t==="local"||t==="system"?e:t==="utc"||t==="gmt"?un.utcInstance:un.parseSpecifier(t)||hi.create(n)}else return Xi(n)?un.instance(n):typeof n=="object"&&n.offset&&typeof n.offset=="number"?n:new _y(n)}let _u=()=>Date.now(),gu="system",bu=null,yu=null,ku=null,vu;class Zt{static get now(){return _u}static set now(e){_u=e}static set defaultZone(e){gu=e}static get defaultZone(){return $i(gu,wa.instance)}static get defaultLocale(){return bu}static set defaultLocale(e){bu=e}static get defaultNumberingSystem(){return yu}static set defaultNumberingSystem(e){yu=e}static get defaultOutputCalendar(){return ku}static set defaultOutputCalendar(e){ku=e}static get throwOnInvalid(){return vu}static set throwOnInvalid(e){vu=e}static resetCaches(){Et.resetCache(),hi.resetCache()}}let wu={};function gy(n,e={}){const t=JSON.stringify([n,e]);let i=wu[t];return i||(i=new Intl.ListFormat(n,e),wu[t]=i),i}let Br={};function Ur(n,e={}){const t=JSON.stringify([n,e]);let i=Br[t];return i||(i=new Intl.DateTimeFormat(n,e),Br[t]=i),i}let Wr={};function by(n,e={}){const t=JSON.stringify([n,e]);let i=Wr[t];return i||(i=new Intl.NumberFormat(n,e),Wr[t]=i),i}let Yr={};function yy(n,e={}){const{base:t,...i}=e,l=JSON.stringify([n,i]);let s=Yr[l];return s||(s=new Intl.RelativeTimeFormat(n,e),Yr[l]=s),s}let Jl=null;function ky(){return Jl||(Jl=new Intl.DateTimeFormat().resolvedOptions().locale,Jl)}function vy(n){const e=n.indexOf("-u-");if(e===-1)return[n];{let t;const i=n.substring(0,e);try{t=Ur(n).resolvedOptions()}catch{t=Ur(i).resolvedOptions()}const{numberingSystem:l,calendar:s}=t;return[i,l,s]}}function wy(n,e,t){return(t||e)&&(n+="-u",t&&(n+=`-ca-${t}`),e&&(n+=`-nu-${e}`)),n}function Sy(n){const e=[];for(let t=1;t<=12;t++){const i=He.utc(2016,t,1);e.push(n(i))}return e}function $y(n){const e=[];for(let t=1;t<=7;t++){const i=He.utc(2016,11,13+t);e.push(n(i))}return e}function Ns(n,e,t,i,l){const s=n.listingMode(t);return s==="error"?null:s==="en"?i(e):l(e)}function Ty(n){return n.numberingSystem&&n.numberingSystem!=="latn"?!1:n.numberingSystem==="latn"||!n.locale||n.locale.startsWith("en")||new Intl.DateTimeFormat(n.intl).resolvedOptions().numberingSystem==="latn"}class Cy{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:l,floor:s,...o}=i;if(!t||Object.keys(o).length>0){const r={useGrouping:!1,...i};i.padTo>0&&(r.minimumIntegerDigits=i.padTo),this.inf=by(e,r)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{const t=this.floor?Math.floor(e):ka(e,3);return Ut(t,this.padTo)}}}class My{constructor(e,t,i){this.opts=i;let l;if(e.zone.isUniversal){const o=-1*(e.offset/60),r=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&hi.create(r).valid?(l=r,this.dt=e):(l="UTC",i.timeZoneName?this.dt=e:this.dt=e.offset===0?e:He.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,l=e.zone.name);const s={...this.opts};l&&(s.timeZone=l),this.dtf=Ur(t,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}}class Oy{constructor(e,t,i){this.opts={style:"long",...i},!t&&o1()&&(this.rtf=yy(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):fy(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}class Et{static fromOpts(e){return Et.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,i,l=!1){const s=e||Zt.defaultLocale,o=s||(l?"en-US":ky()),r=t||Zt.defaultNumberingSystem,a=i||Zt.defaultOutputCalendar;return new Et(o,r,a,s)}static resetCache(){Jl=null,Br={},Wr={},Yr={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:i}={}){return Et.create(e,t,i)}constructor(e,t,i,l){const[s,o,r]=vy(e);this.locale=s,this.numberingSystem=t||o||null,this.outputCalendar=i||r||null,this.intl=wy(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=l,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Ty(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:Et.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1,i=!0){return Ns(this,e,i,c1,()=>{const l=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Sy(o=>this.extract(o,l,"month"))),this.monthsCache[s][e]})}weekdays(e,t=!1,i=!0){return Ns(this,e,i,m1,()=>{const l=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=$y(o=>this.extract(o,l,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Ns(this,void 0,e,()=>h1,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[He.utc(2016,11,13,9),He.utc(2016,11,13,19)].map(i=>this.extract(i,t,"dayperiod"))}return this.meridiemCache})}eras(e,t=!0){return Ns(this,e,t,_1,()=>{const i={era:e};return this.eraCache[e]||(this.eraCache[e]=[He.utc(-40,1,1),He.utc(2017,1,1)].map(l=>this.extract(l,i,"era"))),this.eraCache[e]})}extract(e,t,i){const l=this.dtFormatter(e,t),s=l.formatToParts(),o=s.find(r=>r.type.toLowerCase()===i);return o?o.value:null}numberFormatter(e={}){return new Cy(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new My(e,this.intl,t)}relFormatter(e={}){return new Oy(this.intl,this.isEnglish(),e)}listFormatter(e={}){return gy(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}}function Ol(...n){const e=n.reduce((t,i)=>t+i.source,"");return RegExp(`^${e}$`)}function Dl(...n){return e=>n.reduce(([t,i,l],s)=>{const[o,r,a]=s(e,l);return[{...t,...o},r||i,a]},[{},null,1]).slice(0,2)}function El(n,...e){if(n==null)return[null,null];for(const[t,i]of e){const l=t.exec(n);if(l)return i(l)}return[null,null]}function g1(...n){return(e,t)=>{const i={};let l;for(l=0;lm!==void 0&&(h||m&&f)?-m:m;return[{years:d(Ri(t)),months:d(Ri(i)),weeks:d(Ri(l)),days:d(Ri(s)),hours:d(Ri(o)),minutes:d(Ri(r)),seconds:d(Ri(a),a==="-0"),milliseconds:d(ya(u),c)}]}const zy={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Ta(n,e,t,i,l,s,o){const r={year:e.length===2?Vr(wi(e)):wi(e),month:f1.indexOf(t)+1,day:wi(i),hour:wi(l),minute:wi(s)};return o&&(r.second=wi(o)),n&&(r.weekday=n.length>3?d1.indexOf(n)+1:p1.indexOf(n)+1),r}const Vy=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function By(n){const[,e,t,i,l,s,o,r,a,u,f,c]=n,d=Ta(e,l,i,t,s,o,r);let m;return a?m=zy[a]:u?m=0:m=Wo(f,c),[d,new un(m)]}function Uy(n){return n.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Wy=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Yy=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Ky=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Su(n){const[,e,t,i,l,s,o,r]=n;return[Ta(e,l,i,t,s,o,r),un.utcInstance]}function Jy(n){const[,e,t,i,l,s,o,r]=n;return[Ta(e,r,t,i,l,s,o),un.utcInstance]}const Zy=Ol(Ey,$a),Gy=Ol(Ay,$a),Xy=Ol(Iy,$a),Qy=Ol(y1),v1=Dl(Ry,Al,Ts,Cs),xy=Dl(Ly,Al,Ts,Cs),ek=Dl(Py,Al,Ts,Cs),tk=Dl(Al,Ts,Cs);function nk(n){return El(n,[Zy,v1],[Gy,xy],[Xy,ek],[Qy,tk])}function ik(n){return El(Uy(n),[Vy,By])}function lk(n){return El(n,[Wy,Su],[Yy,Su],[Ky,Jy])}function sk(n){return El(n,[jy,Hy])}const ok=Dl(Al);function rk(n){return El(n,[qy,ok])}const ak=Ol(Ny,Fy),uk=Ol(k1),fk=Dl(Al,Ts,Cs);function ck(n){return El(n,[ak,v1],[uk,fk])}const dk="Invalid Duration",w1={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},pk={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...w1},An=146097/400,pl=146097/4800,mk={years:{quarters:4,months:12,weeks:An/7,days:An,hours:An*24,minutes:An*24*60,seconds:An*24*60*60,milliseconds:An*24*60*60*1e3},quarters:{months:3,weeks:An/28,days:An/4,hours:An*24/4,minutes:An*24*60/4,seconds:An*24*60*60/4,milliseconds:An*24*60*60*1e3/4},months:{weeks:pl/7,days:pl,hours:pl*24,minutes:pl*24*60,seconds:pl*24*60*60,milliseconds:pl*24*60*60*1e3},...w1},Wi=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],hk=Wi.slice(0).reverse();function qi(n,e,t=!1){const i={values:t?e.values:{...n.values,...e.values||{}},loc:n.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||n.conversionAccuracy};return new at(i)}function _k(n){return n<0?Math.floor(n):Math.ceil(n)}function S1(n,e,t,i,l){const s=n[l][t],o=e[t]/s,r=Math.sign(o)===Math.sign(i[l]),a=!r&&i[l]!==0&&Math.abs(o)<=1?_k(o):Math.trunc(o);i[l]+=a,e[t]-=a*s}function gk(n,e){hk.reduce((t,i)=>it(e[i])?t:(t&&S1(n,e,t,e,i),i),null)}class at{constructor(e){const t=e.conversionAccuracy==="longterm"||!1;this.values=e.values,this.loc=e.loc||Et.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?mk:pk,this.isLuxonDuration=!0}static fromMillis(e,t){return at.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new Fn(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new at({values:So(e,at.normalizeUnit),loc:Et.fromObject(t),conversionAccuracy:t.conversionAccuracy})}static fromDurationLike(e){if(Xi(e))return at.fromMillis(e);if(at.isDuration(e))return e;if(typeof e=="object")return at.fromObject(e);throw new Fn(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[i]=sk(e);return i?at.fromObject(i,t):at.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[i]=rk(e);return i?at.fromObject(i,t):at.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new Fn("need to specify a reason the Duration is invalid");const i=e instanceof Yn?e:new Yn(e,t);if(Zt.throwOnInvalid)throw new Y0(i);return new at({invalid:i})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new Hg(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const i={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?_n.create(this.loc,i).formatDurationFromString(this,e):dk}toHuman(e={}){const t=Wi.map(i=>{const l=this.values[i];return it(l)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(l)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=ka(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};const i=this.shiftTo("hours","minutes","seconds","milliseconds");let l=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||i.seconds!==0||i.milliseconds!==0)&&(l+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||i.milliseconds!==0)&&(l+=".SSS"));let s=i.toFormat(l);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=at.fromDurationLike(e),i={};for(const l of Wi)(wl(t.values,l)||wl(this.values,l))&&(i[l]=t.get(l)+this.get(l));return qi(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const t=at.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const i of Object.keys(this.values))t[i]=a1(e(this.values[i],i));return qi(this,{values:t},!0)}get(e){return this[at.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const t={...this.values,...So(e,at.normalizeUnit)};return qi(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i}={}){const l=this.loc.clone({locale:e,numberingSystem:t}),s={loc:l};return i&&(s.conversionAccuracy=i),qi(this,s)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return gk(this.matrix,e),qi(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>at.normalizeUnit(o));const t={},i={},l=this.toObject();let s;for(const o of Wi)if(e.indexOf(o)>=0){s=o;let r=0;for(const u in i)r+=this.matrix[u][o]*i[u],i[u]=0;Xi(l[o])&&(r+=l[o]);const a=Math.trunc(r);t[o]=a,i[o]=(r*1e3-a*1e3)/1e3;for(const u in l)Wi.indexOf(u)>Wi.indexOf(o)&&S1(this.matrix,l,u,t,o)}else Xi(l[o])&&(i[o]=l[o]);for(const o in i)i[o]!==0&&(t[s]+=o===s?i[o]:i[o]/this.matrix[s][o]);return qi(this,{values:t},!0).normalize()}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return qi(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(i,l){return i===void 0||i===0?l===void 0||l===0:i===l}for(const i of Wi)if(!t(this.values[i],e.values[i]))return!1;return!0}}const Rl="Invalid Interval";function bk(n,e){return!n||!n.isValid?Rt.invalid("missing or invalid start"):!e||!e.isValid?Rt.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?Rt.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(Hl).filter(o=>this.contains(o)).sort(),i=[];let{s:l}=this,s=0;for(;l+this.e?this.e:o;i.push(Rt.fromDateTimes(l,r)),l=r,s+=1}return i}splitBy(e){const t=at.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:i}=this,l=1,s;const o=[];for(;ia*l));s=+r>+this.e?this.e:r,o.push(Rt.fromDateTimes(i,s)),i=s,l+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,i=this.e=i?null:Rt.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;const t=this.se.e?this.e:e.e;return Rt.fromDateTimes(t,i)}static merge(e){const[t,i]=e.sort((l,s)=>l.s-s.s).reduce(([l,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[l,s.union(o)]:[l.concat([s]),o]:[l,o],[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0;const l=[],s=e.map(a=>[{time:a.s,type:"s"},{time:a.e,type:"e"}]),o=Array.prototype.concat(...s),r=o.sort((a,u)=>a.time-u.time);for(const a of r)i+=a.type==="s"?1:-1,i===1?t=a.time:(t&&+t!=+a.time&&l.push(Rt.fromDateTimes(t,a.time)),t=null);return Rt.merge(l)}difference(...e){return Rt.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Rl}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Rl}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Rl}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Rl}toFormat(e,{separator:t=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Rl}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):at.invalid(this.invalidReason)}mapEndpoints(e){return Rt.fromDateTimes(e(this.s),e(this.e))}}class Fs{static hasDST(e=Zt.defaultZone){const t=He.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return hi.isValidZone(e)}static normalizeZone(e){return $i(e,Zt.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:l=null,outputCalendar:s="gregory"}={}){return(l||Et.create(t,i,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:l=null,outputCalendar:s="gregory"}={}){return(l||Et.create(t,i,s)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:l=null}={}){return(l||Et.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:l=null}={}){return(l||Et.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Et.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return Et.create(t,null,"gregory").eras(e)}static features(){return{relative:o1()}}}function $u(n,e){const t=l=>l.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=t(e)-t(n);return Math.floor(at.fromMillis(i).as("days"))}function yk(n,e,t){const i=[["years",(r,a)=>a.year-r.year],["quarters",(r,a)=>a.quarter-r.quarter],["months",(r,a)=>a.month-r.month+(a.year-r.year)*12],["weeks",(r,a)=>{const u=$u(r,a);return(u-u%7)/7}],["days",$u]],l={};let s,o;for(const[r,a]of i)if(t.indexOf(r)>=0){s=r;let u=a(n,e);o=n.plus({[r]:u}),o>e?(n=n.plus({[r]:u-1}),u-=1):n=o,l[r]=u}return[n,l,o,s]}function kk(n,e,t,i){let[l,s,o,r]=yk(n,e,t);const a=e-l,u=t.filter(c=>["hours","minutes","seconds","milliseconds"].indexOf(c)>=0);u.length===0&&(o0?at.fromMillis(a,i).shiftTo(...u).plus(f):f}const Ca={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},Tu={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},vk=Ca.hanidec.replace(/[\[|\]]/g,"").split("");function wk(n){let e=parseInt(n,10);if(isNaN(e)){e="";for(let t=0;t=s&&i<=o&&(e+=i-s)}}return parseInt(e,10)}else return e}function Un({numberingSystem:n},e=""){return new RegExp(`${Ca[n||"latn"]}${e}`)}const Sk="missing Intl.DateTimeFormat.formatToParts support";function ft(n,e=t=>t){return{regex:n,deser:([t])=>e(wk(t))}}const $k=String.fromCharCode(160),$1=`[ ${$k}]`,T1=new RegExp($1,"g");function Tk(n){return n.replace(/\./g,"\\.?").replace(T1,$1)}function Cu(n){return n.replace(/\./g,"").replace(T1," ").toLowerCase()}function Wn(n,e){return n===null?null:{regex:RegExp(n.map(Tk).join("|")),deser:([t])=>n.findIndex(i=>Cu(t)===Cu(i))+e}}function Mu(n,e){return{regex:n,deser:([,t,i])=>Wo(t,i),groups:e}}function rr(n){return{regex:n,deser:([e])=>e}}function Ck(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Mk(n,e){const t=Un(e),i=Un(e,"{2}"),l=Un(e,"{3}"),s=Un(e,"{4}"),o=Un(e,"{6}"),r=Un(e,"{1,2}"),a=Un(e,"{1,3}"),u=Un(e,"{1,6}"),f=Un(e,"{1,9}"),c=Un(e,"{2,4}"),d=Un(e,"{4,6}"),m=g=>({regex:RegExp(Ck(g.val)),deser:([k])=>k,literal:!0}),_=(g=>{if(n.literal)return m(g);switch(g.val){case"G":return Wn(e.eras("short",!1),0);case"GG":return Wn(e.eras("long",!1),0);case"y":return ft(u);case"yy":return ft(c,Vr);case"yyyy":return ft(s);case"yyyyy":return ft(d);case"yyyyyy":return ft(o);case"M":return ft(r);case"MM":return ft(i);case"MMM":return Wn(e.months("short",!0,!1),1);case"MMMM":return Wn(e.months("long",!0,!1),1);case"L":return ft(r);case"LL":return ft(i);case"LLL":return Wn(e.months("short",!1,!1),1);case"LLLL":return Wn(e.months("long",!1,!1),1);case"d":return ft(r);case"dd":return ft(i);case"o":return ft(a);case"ooo":return ft(l);case"HH":return ft(i);case"H":return ft(r);case"hh":return ft(i);case"h":return ft(r);case"mm":return ft(i);case"m":return ft(r);case"q":return ft(r);case"qq":return ft(i);case"s":return ft(r);case"ss":return ft(i);case"S":return ft(a);case"SSS":return ft(l);case"u":return rr(f);case"uu":return rr(r);case"uuu":return ft(t);case"a":return Wn(e.meridiems(),0);case"kkkk":return ft(s);case"kk":return ft(c,Vr);case"W":return ft(r);case"WW":return ft(i);case"E":case"c":return ft(t);case"EEE":return Wn(e.weekdays("short",!1,!1),1);case"EEEE":return Wn(e.weekdays("long",!1,!1),1);case"ccc":return Wn(e.weekdays("short",!0,!1),1);case"cccc":return Wn(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Mu(new RegExp(`([+-]${r.source})(?::(${i.source}))?`),2);case"ZZZ":return Mu(new RegExp(`([+-]${r.source})(${i.source})?`),2);case"z":return rr(/[a-z_+-/]{1,256}?/i);default:return m(g)}})(n)||{invalidReason:Sk};return _.token=n,_}const Ok={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};function Dk(n,e,t){const{type:i,value:l}=n;if(i==="literal")return{literal:!0,val:l};const s=t[i];let o=Ok[i];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function Ek(n){return[`^${n.map(t=>t.regex).reduce((t,i)=>`${t}(${i.source})`,"")}$`,n]}function Ak(n,e,t){const i=n.match(e);if(i){const l={};let s=1;for(const o in t)if(wl(t,o)){const r=t[o],a=r.groups?r.groups+1:1;!r.literal&&r.token&&(l[r.token.val[0]]=r.deser(i.slice(s,s+a))),s+=a}return[i,l]}else return[i,{}]}function Ik(n){const e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let t=null,i;return it(n.z)||(t=hi.create(n.z)),it(n.Z)||(t||(t=new un(n.Z)),i=n.Z),it(n.q)||(n.M=(n.q-1)*3+1),it(n.h)||(n.h<12&&n.a===1?n.h+=12:n.h===12&&n.a===0&&(n.h=0)),n.G===0&&n.y&&(n.y=-n.y),it(n.u)||(n.S=ya(n.u)),[Object.keys(n).reduce((s,o)=>{const r=e(o);return r&&(s[r]=n[o]),s},{}),t,i]}let ar=null;function Lk(){return ar||(ar=He.fromMillis(1555555555555)),ar}function Pk(n,e){if(n.literal)return n;const t=_n.macroTokenToFormatOpts(n.val);if(!t)return n;const s=_n.create(e,t).formatDateTimeParts(Lk()).map(o=>Dk(o,e,t));return s.includes(void 0)?n:s}function Nk(n,e){return Array.prototype.concat(...n.map(t=>Pk(t,e)))}function C1(n,e,t){const i=Nk(_n.parseFormat(t),n),l=i.map(o=>Mk(o,n)),s=l.find(o=>o.invalidReason);if(s)return{input:e,tokens:i,invalidReason:s.invalidReason};{const[o,r]=Ek(l),a=RegExp(o,"i"),[u,f]=Ak(e,a,r),[c,d,m]=f?Ik(f):[null,null,void 0];if(wl(f,"a")&&wl(f,"H"))throw new Kl("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:i,regex:a,rawMatches:u,matches:f,result:c,zone:d,specificOffset:m}}}function Fk(n,e,t){const{result:i,zone:l,specificOffset:s,invalidReason:o}=C1(n,e,t);return[i,l,s,o]}const M1=[0,31,59,90,120,151,181,212,243,273,304,334],O1=[0,31,60,91,121,152,182,213,244,274,305,335];function Rn(n,e){return new Yn("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${n}, which is invalid`)}function D1(n,e,t){const i=new Date(Date.UTC(n,e-1,t));n<100&&n>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);const l=i.getUTCDay();return l===0?7:l}function E1(n,e,t){return t+(Ss(n)?O1:M1)[e-1]}function A1(n,e){const t=Ss(n)?O1:M1,i=t.findIndex(s=>swo(e)?(r=e+1,o=1):r=e,{weekYear:r,weekNumber:o,weekday:s,...Yo(n)}}function Ou(n){const{weekYear:e,weekNumber:t,weekday:i}=n,l=D1(e,1,4),s=Ql(e);let o=t*7+i-l-3,r;o<1?(r=e-1,o+=Ql(r)):o>s?(r=e+1,o-=Ql(e)):r=e;const{month:a,day:u}=A1(r,o);return{year:r,month:a,day:u,...Yo(n)}}function ur(n){const{year:e,month:t,day:i}=n,l=E1(e,t,i);return{year:e,ordinal:l,...Yo(n)}}function Du(n){const{year:e,ordinal:t}=n,{month:i,day:l}=A1(e,t);return{year:e,month:i,day:l,...Yo(n)}}function Rk(n){const e=Uo(n.weekYear),t=pi(n.weekNumber,1,wo(n.weekYear)),i=pi(n.weekday,1,7);return e?t?i?!1:Rn("weekday",n.weekday):Rn("week",n.week):Rn("weekYear",n.weekYear)}function qk(n){const e=Uo(n.year),t=pi(n.ordinal,1,Ql(n.year));return e?t?!1:Rn("ordinal",n.ordinal):Rn("year",n.year)}function I1(n){const e=Uo(n.year),t=pi(n.month,1,12),i=pi(n.day,1,vo(n.year,n.month));return e?t?i?!1:Rn("day",n.day):Rn("month",n.month):Rn("year",n.year)}function L1(n){const{hour:e,minute:t,second:i,millisecond:l}=n,s=pi(e,0,23)||e===24&&t===0&&i===0&&l===0,o=pi(t,0,59),r=pi(i,0,59),a=pi(l,0,999);return s?o?r?a?!1:Rn("millisecond",l):Rn("second",i):Rn("minute",t):Rn("hour",e)}const fr="Invalid DateTime",Eu=864e13;function Rs(n){return new Yn("unsupported zone",`the zone "${n.name}" is not supported`)}function cr(n){return n.weekData===null&&(n.weekData=Kr(n.c)),n.weekData}function ql(n,e){const t={ts:n.ts,zone:n.zone,c:n.c,o:n.o,loc:n.loc,invalid:n.invalid};return new He({...t,...e,old:t})}function P1(n,e,t){let i=n-e*60*1e3;const l=t.offset(i);if(e===l)return[i,e];i-=(l-e)*60*1e3;const s=t.offset(i);return l===s?[i,l]:[n-Math.min(l,s)*60*1e3,Math.max(l,s)]}function Au(n,e){n+=e*60*1e3;const t=new Date(n);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function fo(n,e,t){return P1(va(n),e,t)}function Iu(n,e){const t=n.o,i=n.c.year+Math.trunc(e.years),l=n.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...n.c,year:i,month:l,day:Math.min(n.c.day,vo(i,l))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=at.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),r=va(s);let[a,u]=P1(r,t,n.zone);return o!==0&&(a+=o,u=n.zone.offset(a)),{ts:a,o:u}}function jl(n,e,t,i,l,s){const{setZone:o,zone:r}=t;if(n&&Object.keys(n).length!==0){const a=e||r,u=He.fromObject(n,{...t,zone:a,specificOffset:s});return o?u:u.setZone(r)}else return He.invalid(new Yn("unparsable",`the input "${l}" can't be parsed as ${i}`))}function qs(n,e,t=!0){return n.isValid?_n.create(Et.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(n,e):null}function dr(n,e){const t=n.c.year>9999||n.c.year<0;let i="";return t&&n.c.year>=0&&(i+="+"),i+=Ut(n.c.year,t?6:4),e?(i+="-",i+=Ut(n.c.month),i+="-",i+=Ut(n.c.day)):(i+=Ut(n.c.month),i+=Ut(n.c.day)),i}function Lu(n,e,t,i,l,s){let o=Ut(n.c.hour);return e?(o+=":",o+=Ut(n.c.minute),(n.c.second!==0||!t)&&(o+=":")):o+=Ut(n.c.minute),(n.c.second!==0||!t)&&(o+=Ut(n.c.second),(n.c.millisecond!==0||!i)&&(o+=".",o+=Ut(n.c.millisecond,3))),l&&(n.isOffsetFixed&&n.offset===0&&!s?o+="Z":n.o<0?(o+="-",o+=Ut(Math.trunc(-n.o/60)),o+=":",o+=Ut(Math.trunc(-n.o%60))):(o+="+",o+=Ut(Math.trunc(n.o/60)),o+=":",o+=Ut(Math.trunc(n.o%60)))),s&&(o+="["+n.zone.ianaName+"]"),o}const N1={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},jk={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Hk={ordinal:1,hour:0,minute:0,second:0,millisecond:0},F1=["year","month","day","hour","minute","second","millisecond"],zk=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Vk=["year","ordinal","hour","minute","second","millisecond"];function Pu(n){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[n.toLowerCase()];if(!e)throw new Hg(n);return e}function Nu(n,e){const t=$i(e.zone,Zt.defaultZone),i=Et.fromObject(e),l=Zt.now();let s,o;if(it(n.year))s=l;else{for(const u of F1)it(n[u])&&(n[u]=N1[u]);const r=I1(n)||L1(n);if(r)return He.invalid(r);const a=t.offset(l);[s,o]=fo(n,a,t)}return new He({ts:s,zone:t,loc:i,o})}function Fu(n,e,t){const i=it(t.round)?!0:t.round,l=(o,r)=>(o=ka(o,i||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,r)),s=o=>t.calendary?e.hasSame(n,o)?0:e.startOf(o).diff(n.startOf(o),o).get(o):e.diff(n,o).get(o);if(t.unit)return l(s(t.unit),t.unit);for(const o of t.units){const r=s(o);if(Math.abs(r)>=1)return l(r,o)}return l(n>e?-0:0,t.units[t.units.length-1])}function Ru(n){let e={},t;return n.length>0&&typeof n[n.length-1]=="object"?(e=n[n.length-1],t=Array.from(n).slice(0,n.length-1)):t=Array.from(n),[e,t]}class He{constructor(e){const t=e.zone||Zt.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new Yn("invalid input"):null)||(t.isValid?null:Rs(t));this.ts=it(e.ts)?Zt.now():e.ts;let l=null,s=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[l,s]=[e.old.c,e.old.o];else{const r=t.offset(this.ts);l=Au(this.ts,r),i=Number.isNaN(l.year)?new Yn("invalid input"):null,l=i?null:l,s=i?null:r}this._zone=t,this.loc=e.loc||Et.create(),this.invalid=i,this.weekData=null,this.c=l,this.o=s,this.isLuxonDateTime=!0}static now(){return new He({})}static local(){const[e,t]=Ru(arguments),[i,l,s,o,r,a,u]=t;return Nu({year:i,month:l,day:s,hour:o,minute:r,second:a,millisecond:u},e)}static utc(){const[e,t]=Ru(arguments),[i,l,s,o,r,a,u]=t;return e.zone=un.utcInstance,Nu({year:i,month:l,day:s,hour:o,minute:r,second:a,millisecond:u},e)}static fromJSDate(e,t={}){const i=G0(e)?e.valueOf():NaN;if(Number.isNaN(i))return He.invalid("invalid input");const l=$i(t.zone,Zt.defaultZone);return l.isValid?new He({ts:i,zone:l,loc:Et.fromObject(t)}):He.invalid(Rs(l))}static fromMillis(e,t={}){if(Xi(e))return e<-Eu||e>Eu?He.invalid("Timestamp out of range"):new He({ts:e,zone:$i(t.zone,Zt.defaultZone),loc:Et.fromObject(t)});throw new Fn(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(Xi(e))return new He({ts:e*1e3,zone:$i(t.zone,Zt.defaultZone),loc:Et.fromObject(t)});throw new Fn("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const i=$i(t.zone,Zt.defaultZone);if(!i.isValid)return He.invalid(Rs(i));const l=Zt.now(),s=it(t.specificOffset)?i.offset(l):t.specificOffset,o=So(e,Pu),r=!it(o.ordinal),a=!it(o.year),u=!it(o.month)||!it(o.day),f=a||u,c=o.weekYear||o.weekNumber,d=Et.fromObject(t);if((f||r)&&c)throw new Kl("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&r)throw new Kl("Can't mix ordinal dates with month/day");const m=c||o.weekday&&!f;let h,_,g=Au(l,s);m?(h=zk,_=jk,g=Kr(g)):r?(h=Vk,_=Hk,g=ur(g)):(h=F1,_=N1);let k=!1;for(const E of h){const L=o[E];it(L)?k?o[E]=_[E]:o[E]=g[E]:k=!0}const S=m?Rk(o):r?qk(o):I1(o),T=S||L1(o);if(T)return He.invalid(T);const $=m?Ou(o):r?Du(o):o,[C,D]=fo($,s,i),O=new He({ts:C,zone:i,o:D,loc:d});return o.weekday&&f&&e.weekday!==O.weekday?He.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${O.toISO()}`):O}static fromISO(e,t={}){const[i,l]=nk(e);return jl(i,l,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[i,l]=ik(e);return jl(i,l,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[i,l]=lk(e);return jl(i,l,t,"HTTP",t)}static fromFormat(e,t,i={}){if(it(e)||it(t))throw new Fn("fromFormat requires an input string and a format");const{locale:l=null,numberingSystem:s=null}=i,o=Et.fromOpts({locale:l,numberingSystem:s,defaultToEN:!0}),[r,a,u,f]=Fk(o,e,t);return f?He.invalid(f):jl(r,a,i,`format ${t}`,e,u)}static fromString(e,t,i={}){return He.fromFormat(e,t,i)}static fromSQL(e,t={}){const[i,l]=ck(e);return jl(i,l,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new Fn("need to specify a reason the DateTime is invalid");const i=e instanceof Yn?e:new Yn(e,t);if(Zt.throwOnInvalid)throw new U0(i);return new He({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?cr(this).weekYear:NaN}get weekNumber(){return this.isValid?cr(this).weekNumber:NaN}get weekday(){return this.isValid?cr(this).weekday:NaN}get ordinal(){return this.isValid?ur(this.c).ordinal:NaN}get monthShort(){return this.isValid?Fs.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Fs.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Fs.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Fs.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return Ss(this.year)}get daysInMonth(){return vo(this.year,this.month)}get daysInYear(){return this.isValid?Ql(this.year):NaN}get weeksInWeekYear(){return this.isValid?wo(this.weekYear):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:i,calendar:l}=_n.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:l}}toUTC(e=0,t={}){return this.setZone(un.instance(e),t)}toLocal(){return this.setZone(Zt.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if(e=$i(e,Zt.defaultZone),e.equals(this.zone))return this;if(e.isValid){let l=this.ts;if(t||i){const s=e.offset(this.ts),o=this.toObject();[l]=fo(o,s,e)}return ql(this,{ts:l,zone:e})}else return He.invalid(Rs(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){const l=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i});return ql(this,{loc:l})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=So(e,Pu),i=!it(t.weekYear)||!it(t.weekNumber)||!it(t.weekday),l=!it(t.ordinal),s=!it(t.year),o=!it(t.month)||!it(t.day),r=s||o,a=t.weekYear||t.weekNumber;if((r||l)&&a)throw new Kl("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&l)throw new Kl("Can't mix ordinal dates with month/day");let u;i?u=Ou({...Kr(this.c),...t}):it(t.ordinal)?(u={...this.toObject(),...t},it(t.day)&&(u.day=Math.min(vo(u.year,u.month),u.day))):u=Du({...ur(this.c),...t});const[f,c]=fo(u,this.o,this.zone);return ql(this,{ts:f,o:c})}plus(e){if(!this.isValid)return this;const t=at.fromDurationLike(e);return ql(this,Iu(this,t))}minus(e){if(!this.isValid)return this;const t=at.fromDurationLike(e).negate();return ql(this,Iu(this,t))}startOf(e){if(!this.isValid)return this;const t={},i=at.normalizeUnit(e);switch(i){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break}if(i==="weeks"&&(t.weekday=1),i==="quarters"){const l=Math.ceil(this.month/3);t.month=(l-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?_n.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):fr}toLocaleString(e=zr,t={}){return this.isValid?_n.create(this.loc.clone(t),e).formatDateTime(this):fr}toLocaleParts(e={}){return this.isValid?_n.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:l=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;const o=e==="extended";let r=dr(this,o);return r+="T",r+=Lu(this,o,t,i,l,s),r}toISODate({format:e="extended"}={}){return this.isValid?dr(this,e==="extended"):null}toISOWeekDate(){return qs(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:l=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(l?"T":"")+Lu(this,o==="extended",t,e,i,s):null}toRFC2822(){return qs(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return qs(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?dr(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let l="HH:mm:ss.SSS";return(t||e)&&(i&&(l+=" "),t?l+="z":e&&(l+="ZZ")),qs(this,l,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():fr}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return at.invalid("created by diffing an invalid DateTime");const l={locale:this.locale,numberingSystem:this.numberingSystem,...i},s=X0(t).map(at.normalizeUnit),o=e.valueOf()>this.valueOf(),r=o?this:e,a=o?e:this,u=kk(r,a,s,l);return o?u.negate():u}diffNow(e="milliseconds",t={}){return this.diff(He.now(),e,t)}until(e){return this.isValid?Rt.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;const i=e.valueOf(),l=this.setZone(e.zone,{keepLocalTime:!0});return l.startOf(t)<=i&&i<=l.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||He.fromObject({},{zone:this.zone}),i=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(He.isDateTime))throw new Fn("max requires all arguments be DateTimes");return mu(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,i={}){const{locale:l=null,numberingSystem:s=null}=i,o=Et.fromOpts({locale:l,numberingSystem:s,defaultToEN:!0});return C1(o,e,t)}static fromStringExplain(e,t,i={}){return He.fromFormatExplain(e,t,i)}static get DATE_SHORT(){return zr}static get DATE_MED(){return zg}static get DATE_MED_WITH_WEEKDAY(){return K0}static get DATE_FULL(){return Vg}static get DATE_HUGE(){return Bg}static get TIME_SIMPLE(){return Ug}static get TIME_WITH_SECONDS(){return Wg}static get TIME_WITH_SHORT_OFFSET(){return Yg}static get TIME_WITH_LONG_OFFSET(){return Kg}static get TIME_24_SIMPLE(){return Jg}static get TIME_24_WITH_SECONDS(){return Zg}static get TIME_24_WITH_SHORT_OFFSET(){return Gg}static get TIME_24_WITH_LONG_OFFSET(){return Xg}static get DATETIME_SHORT(){return Qg}static get DATETIME_SHORT_WITH_SECONDS(){return xg}static get DATETIME_MED(){return e1}static get DATETIME_MED_WITH_SECONDS(){return t1}static get DATETIME_MED_WITH_WEEKDAY(){return J0}static get DATETIME_FULL(){return n1}static get DATETIME_FULL_WITH_SECONDS(){return i1}static get DATETIME_HUGE(){return l1}static get DATETIME_HUGE_WITH_SECONDS(){return s1}}function Hl(n){if(He.isDateTime(n))return n;if(n&&n.valueOf&&Xi(n.valueOf()))return He.fromJSDate(n);if(n&&typeof n=="object")return He.fromObject(n);throw new Fn(`Unknown datetime argument: ${n}, of type ${typeof n}`)}const Bk=[".jpg",".jpeg",".png",".svg",".gif",".jfif",".webp",".avif"],Uk=[".mp4",".avi",".mov",".3gp",".wmv"],Wk=[".aa",".aac",".m4v",".mp3",".ogg",".oga",".mogg",".amr"],Yk=[".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odp",".odt",".ods",".txt"],R1=[{level:-4,label:"DEBUG",class:""},{level:0,label:"INFO",class:"label-success"},{level:4,label:"WARN",class:"label-warning"},{level:8,label:"ERROR",class:"label-danger"}];class j{static isObject(e){return e!==null&&typeof e=="object"&&e.constructor===Object}static clone(e){return typeof structuredClone<"u"?structuredClone(e):JSON.parse(JSON.stringify(e))}static isEmpty(e){return e===""||e===null||e==="00000000-0000-0000-0000-000000000000"||e==="0001-01-01 00:00:00.000Z"||e==="0001-01-01"||typeof e>"u"||Array.isArray(e)&&e.length===0||j.isObject(e)&&Object.keys(e).length===0}static isInput(e){let t=e&&e.tagName?e.tagName.toLowerCase():"";return t==="input"||t==="select"||t==="textarea"||(e==null?void 0:e.isContentEditable)}static isFocusable(e){let t=e&&e.tagName?e.tagName.toLowerCase():"";return j.isInput(e)||t==="button"||t==="a"||t==="details"||(e==null?void 0:e.tabIndex)>=0}static hasNonEmptyProps(e){for(let t in e)if(!j.isEmpty(e[t]))return!0;return!1}static toArray(e,t=!1){return Array.isArray(e)?e.slice():(t||!j.isEmpty(e))&&typeof e<"u"?[e]:[]}static inArray(e,t){e=Array.isArray(e)?e:[];for(let i=e.length-1;i>=0;i--)if(e[i]==t)return!0;return!1}static removeByValue(e,t){e=Array.isArray(e)?e:[];for(let i=e.length-1;i>=0;i--)if(e[i]==t){e.splice(i,1);break}}static pushUnique(e,t){j.inArray(e,t)||e.push(t)}static findByKey(e,t,i){e=Array.isArray(e)?e:[];for(let l in e)if(e[l][t]==i)return e[l];return null}static groupByKey(e,t){e=Array.isArray(e)?e:[];const i={};for(let l in e)i[e[l][t]]=i[e[l][t]]||[],i[e[l][t]].push(e[l]);return i}static removeByKey(e,t,i){for(let l in e)if(e[l][t]==i){e.splice(l,1);break}}static pushOrReplaceByKey(e,t,i="id"){for(let l=e.length-1;l>=0;l--)if(e[l][i]==t[i]){e[l]=t;return}e.push(t)}static filterDuplicatesByKey(e,t="id"){e=Array.isArray(e)?e:[];const i={};for(const l of e)i[l[t]]=l;return Object.values(i)}static filterRedactedProps(e,t="******"){const i=JSON.parse(JSON.stringify(e||{}));for(let l in i)typeof i[l]=="object"&&i[l]!==null?i[l]=j.filterRedactedProps(i[l],t):i[l]===t&&delete i[l];return i}static getNestedVal(e,t,i=null,l="."){let s=e||{},o=(t||"").split(l);for(const r of o){if(!j.isObject(s)&&!Array.isArray(s)||typeof s[r]>"u")return i;s=s[r]}return s}static setByPath(e,t,i,l="."){if(e===null||typeof e!="object"){console.warn("setByPath: data not an object or array.");return}let s=e,o=t.split(l),r=o.pop();for(const a of o)(!j.isObject(s)&&!Array.isArray(s)||!j.isObject(s[a])&&!Array.isArray(s[a]))&&(s[a]={}),s=s[a];s[r]=i}static deleteByPath(e,t,i="."){let l=e||{},s=(t||"").split(i),o=s.pop();for(const r of s)(!j.isObject(l)&&!Array.isArray(l)||!j.isObject(l[r])&&!Array.isArray(l[r]))&&(l[r]={}),l=l[r];Array.isArray(l)?l.splice(o,1):j.isObject(l)&&delete l[o],s.length>0&&(Array.isArray(l)&&!l.length||j.isObject(l)&&!Object.keys(l).length)&&(Array.isArray(e)&&e.length>0||j.isObject(e)&&Object.keys(e).length>0)&&j.deleteByPath(e,s.join(i),i)}static randomString(e=10){let t="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let l=0;l"u")return j.randomString(e);const t=new Uint8Array(e);crypto.getRandomValues(t);const i="-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";let l="";for(let s=0;ss.replaceAll("{_PB_ESCAPED_}",t));for(let s of l)s=s.trim(),j.isEmpty(s)||i.push(s);return i}static joinNonEmpty(e,t=", "){e=e||[];const i=[],l=t.length>1?t.trim():t;for(let s of e)s=typeof s=="string"?s.trim():"",j.isEmpty(s)||i.push(s.replaceAll(l,"\\"+l));return i.join(t)}static getInitials(e){if(e=(e||"").split("@")[0].trim(),e.length<=2)return e.toUpperCase();const t=e.split(/[\.\_\-\ ]/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e[0].toUpperCase()}static formattedFileSize(e){const t=e?Math.floor(Math.log(e)/Math.log(1024)):0;return(e/Math.pow(1024,t)).toFixed(2)*1+" "+["B","KB","MB","GB","TB"][t]}static getDateTime(e){if(typeof e=="string"){const t={19:"yyyy-MM-dd HH:mm:ss",23:"yyyy-MM-dd HH:mm:ss.SSS",20:"yyyy-MM-dd HH:mm:ss'Z'",24:"yyyy-MM-dd HH:mm:ss.SSS'Z'"},i=t[e.length]||t[19];return He.fromFormat(e,i,{zone:"UTC"})}return He.fromJSDate(e)}static formatToUTCDate(e,t="yyyy-MM-dd HH:mm:ss"){return j.getDateTime(e).toUTC().toFormat(t)}static formatToLocalDate(e,t="yyyy-MM-dd HH:mm:ss"){return j.getDateTime(e).toLocal().toFormat(t)}static async copyToClipboard(e){var t;if(e=""+e,!(!e.length||!((t=window==null?void 0:window.navigator)!=null&&t.clipboard)))return window.navigator.clipboard.writeText(e).catch(i=>{console.warn("Failed to copy.",i)})}static download(e,t){const i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download",t),i.setAttribute("target","_blank"),i.click(),i.remove()}static downloadJson(e,t){t=t.endsWith(".json")?t:t+".json";const i=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),l=window.URL.createObjectURL(i);j.download(l,t)}static getJWTPayload(e){const t=(e||"").split(".")[1]||"";if(t==="")return{};try{const i=decodeURIComponent(atob(t));return JSON.parse(i)||{}}catch(i){console.warn("Failed to parse JWT payload data.",i)}return{}}static hasImageExtension(e){return e=e||"",!!Bk.find(t=>e.toLowerCase().endsWith(t))}static hasVideoExtension(e){return e=e||"",!!Uk.find(t=>e.toLowerCase().endsWith(t))}static hasAudioExtension(e){return e=e||"",!!Wk.find(t=>e.toLowerCase().endsWith(t))}static hasDocumentExtension(e){return e=e||"",!!Yk.find(t=>e.toLowerCase().endsWith(t))}static getFileType(e){return j.hasImageExtension(e)?"image":j.hasDocumentExtension(e)?"document":j.hasVideoExtension(e)?"video":j.hasAudioExtension(e)?"audio":"file"}static generateThumb(e,t=100,i=100){return new Promise(l=>{let s=new FileReader;s.onload=function(o){let r=new Image;r.onload=function(){let a=document.createElement("canvas"),u=a.getContext("2d"),f=r.width,c=r.height;return a.width=t,a.height=i,u.drawImage(r,f>c?(f-c)/2:0,0,f>c?c:f,f>c?c:f,0,0,t,i),l(a.toDataURL(e.type))},r.src=o.target.result},s.readAsDataURL(e)})}static addValueToFormData(e,t,i){if(!(typeof i>"u"))if(j.isEmpty(i))e.append(t,"");else if(Array.isArray(i))for(const l of i)j.addValueToFormData(e,t,l);else i instanceof File?e.append(t,i):i instanceof Date?e.append(t,i.toISOString()):j.isObject(i)?e.append(t,JSON.stringify(i)):e.append(t,""+i)}static dummyCollectionRecord(e){var a,u,f,c,d,m,h;const t=(e==null?void 0:e.schema)||[],i=(e==null?void 0:e.type)==="auth",l=(e==null?void 0:e.type)==="view",s={id:"RECORD_ID",collectionId:e==null?void 0:e.id,collectionName:e==null?void 0:e.name};i&&(s.username="username123",s.verified=!1,s.emailVisibility=!0,s.email="test@example.com"),(!l||j.extractColumnsFromQuery((a=e==null?void 0:e.options)==null?void 0:a.query).includes("created"))&&(s.created="2022-01-01 01:00:00.123Z"),(!l||j.extractColumnsFromQuery((u=e==null?void 0:e.options)==null?void 0:u.query).includes("updated"))&&(s.updated="2022-01-01 23:59:59.456Z");for(const _ of t){let g=null;_.type==="number"?g=123:_.type==="date"?g="2022-01-01 10:00:00.123Z":_.type==="bool"?g=!0:_.type==="email"?g="test@example.com":_.type==="url"?g="https://example.com":_.type==="json"?g="JSON":_.type==="file"?(g="filename.jpg",((f=_.options)==null?void 0:f.maxSelect)!==1&&(g=[g])):_.type==="select"?(g=(d=(c=_.options)==null?void 0:c.values)==null?void 0:d[0],((m=_.options)==null?void 0:m.maxSelect)!==1&&(g=[g])):_.type==="relation"?(g="RELATION_RECORD_ID",((h=_.options)==null?void 0:h.maxSelect)!==1&&(g=[g])):g="test",s[_.name]=g}return s}static dummyCollectionSchemaData(e){var l,s,o,r;const t=(e==null?void 0:e.schema)||[],i={};for(const a of t){let u=null;if(a.type==="number")u=123;else if(a.type==="date")u="2022-01-01 10:00:00.123Z";else if(a.type==="bool")u=!0;else if(a.type==="email")u="test@example.com";else if(a.type==="url")u="https://example.com";else if(a.type==="json")u="JSON";else{if(a.type==="file")continue;a.type==="select"?(u=(s=(l=a.options)==null?void 0:l.values)==null?void 0:s[0],((o=a.options)==null?void 0:o.maxSelect)!==1&&(u=[u])):a.type==="relation"?(u="RELATION_RECORD_ID",((r=a.options)==null?void 0:r.maxSelect)!==1&&(u=[u])):u="test"}i[a.name]=u}return i}static getCollectionTypeIcon(e){switch(e==null?void 0:e.toLowerCase()){case"auth":return"ri-group-line";case"view":return"ri-table-line";default:return"ri-folder-2-line"}}static getFieldTypeIcon(e){switch(e==null?void 0:e.toLowerCase()){case"primary":return"ri-key-line";case"text":return"ri-text";case"number":return"ri-hashtag";case"date":return"ri-calendar-line";case"bool":return"ri-toggle-line";case"email":return"ri-mail-line";case"url":return"ri-link";case"editor":return"ri-edit-2-line";case"select":return"ri-list-check";case"json":return"ri-braces-line";case"file":return"ri-image-line";case"relation":return"ri-mind-map";case"user":return"ri-user-line";default:return"ri-star-s-line"}}static getFieldValueType(e){var t;switch(e==null?void 0:e.type){case"bool":return"Boolean";case"number":return"Number";case"file":return"File";case"select":case"relation":return((t=e==null?void 0:e.options)==null?void 0:t.maxSelect)===1?"String":"Array";default:return"String"}}static zeroDefaultStr(e){var t;return(e==null?void 0:e.type)==="number"?"0":(e==null?void 0:e.type)==="bool"?"false":(e==null?void 0:e.type)==="json"?'null, "", [], {}':["select","relation","file"].includes(e==null?void 0:e.type)&&((t=e==null?void 0:e.options)==null?void 0:t.maxSelect)!=1?"[]":'""'}static getApiExampleUrl(e){return(window.location.href.substring(0,window.location.href.indexOf("/_"))||e||"/").replace("//localhost","//127.0.0.1")}static hasCollectionChanges(e,t,i=!1){if(e=e||{},t=t||{},e.id!=t.id)return!0;for(let u in e)if(u!=="schema"&&JSON.stringify(e[u])!==JSON.stringify(t[u]))return!0;const l=Array.isArray(e.schema)?e.schema:[],s=Array.isArray(t.schema)?t.schema:[],o=l.filter(u=>(u==null?void 0:u.id)&&!j.findByKey(s,"id",u.id)),r=s.filter(u=>(u==null?void 0:u.id)&&!j.findByKey(l,"id",u.id)),a=s.filter(u=>{const f=j.isObject(u)&&j.findByKey(l,"id",u.id);if(!f)return!1;for(let c in f)if(JSON.stringify(u[c])!=JSON.stringify(f[c]))return!0;return!1});return!!(r.length||a.length||i&&o.length)}static sortCollections(e=[]){const t=[],i=[],l=[];for(const o of e)o.type==="auth"?t.push(o):o.type==="base"?i.push(o):l.push(o);function s(o,r){return o.name>r.name?1:o.name{setTimeout(e,0)})}static defaultFlatpickrOptions(){return{dateFormat:"Y-m-d H:i:S",disableMobile:!0,allowInput:!0,enableTime:!0,time_24hr:!0,locale:{firstDayOfWeek:1}}}static defaultEditorOptions(){const e=["DIV","P","A","EM","B","STRONG","H1","H2","H3","H4","H5","H6","TABLE","TR","TD","TH","TBODY","THEAD","TFOOT","BR","HR","Q","SUP","SUB","DEL","IMG","OL","UL","LI","CODE"];function t(l){let s=l.parentNode;for(;l.firstChild;)s.insertBefore(l.firstChild,l);s.removeChild(l)}function i(l){if(l){for(const s of l.children)i(s);e.includes(l.tagName)?(l.removeAttribute("style"),l.removeAttribute("class")):t(l)}}return{branding:!1,promotion:!1,menubar:!1,min_height:270,height:270,max_height:700,autoresize_bottom_margin:30,skin:"pocketbase",content_style:"body { font-size: 14px }",plugins:["autoresize","autolink","lists","link","image","searchreplace","fullscreen","media","table","code","codesample","directionality"],toolbar:"styles | alignleft aligncenter alignright | bold italic forecolor backcolor | bullist numlist | link image_picker table codesample direction | code fullscreen",paste_postprocess:(l,s)=>{i(s.node)},file_picker_types:"image",file_picker_callback:(l,s,o)=>{const r=document.createElement("input");r.setAttribute("type","file"),r.setAttribute("accept","image/*"),r.addEventListener("change",a=>{const u=a.target.files[0],f=new FileReader;f.addEventListener("load",()=>{if(!tinymce)return;const c="blobid"+new Date().getTime(),d=tinymce.activeEditor.editorUpload.blobCache,m=f.result.split(",")[1],h=d.create(c,u,m);d.add(h),l(h.blobUri(),{title:u.name})}),f.readAsDataURL(u)}),r.click()},setup:l=>{l.on("keydown",o=>{(o.ctrlKey||o.metaKey)&&o.code=="KeyS"&&l.formElement&&(o.preventDefault(),o.stopPropagation(),l.formElement.dispatchEvent(new KeyboardEvent("keydown",o)))});const s="tinymce_last_direction";l.on("init",()=>{var r;const o=(r=window==null?void 0:window.localStorage)==null?void 0:r.getItem(s);!l.isDirty()&&l.getContent()==""&&o=="rtl"&&l.execCommand("mceDirectionRTL")}),l.ui.registry.addMenuButton("direction",{icon:"visualchars",fetch:o=>{o([{type:"menuitem",text:"LTR content",icon:"ltr",onAction:()=>{var a;(a=window==null?void 0:window.localStorage)==null||a.setItem(s,"ltr"),l.execCommand("mceDirectionLTR")}},{type:"menuitem",text:"RTL content",icon:"rtl",onAction:()=>{var a;(a=window==null?void 0:window.localStorage)==null||a.setItem(s,"rtl"),l.execCommand("mceDirectionRTL")}}])}}),l.ui.registry.addMenuButton("image_picker",{icon:"image",fetch:o=>{o([{type:"menuitem",text:"From collection",icon:"gallery",onAction:()=>{l.dispatch("collections_file_picker",{})}},{type:"menuitem",text:"Inline",icon:"browse",onAction:()=>{l.execCommand("mceImage")}}])}})}}}static displayValue(e,t,i="N/A"){e=e||{},t=t||[];let l=[];for(const o of t){let r=e[o];typeof r>"u"||(r=j.stringifyValue(r,i),l.push(r))}if(l.length>0)return l.join(", ");const s=["title","name","slug","email","username","nickname","label","heading","message","key","identifier","id"];for(const o of s){let r=j.stringifyValue(e[o],"");if(r)return r}return i}static stringifyValue(e,t="N/A",i=150){if(j.isEmpty(e))return t;if(typeof e=="number")return""+e;if(typeof e=="boolean")return e?"True":"False";if(typeof e=="string")return e=e.indexOf("<")>=0?j.plainText(e):e,j.truncate(e,i)||t;if(Array.isArray(e)&&typeof e[0]!="object")return j.truncate(e.join(","),i);if(typeof e=="object")try{return j.truncate(JSON.stringify(e),i)||t}catch{return t}return e}static extractColumnsFromQuery(e){var o;const t="__GROUP__";e=(e||"").replace(/\([\s\S]+?\)/gm,t).replace(/[\t\r\n]|(?:\s\s)+/g," ");const i=e.match(/select\s+([\s\S]+)\s+from/),l=((o=i==null?void 0:i[1])==null?void 0:o.split(","))||[],s=[];for(let r of l){const a=r.trim().split(" ").pop();a!=""&&a!=t&&s.push(a.replace(/[\'\"\`\[\]\s]/g,""))}return s}static getAllCollectionIdentifiers(e,t=""){if(!e)return[];let i=[t+"id"];if(e.type==="view")for(let s of j.extractColumnsFromQuery(e.options.query))j.pushUnique(i,t+s);else e.type==="auth"?(i.push(t+"username"),i.push(t+"email"),i.push(t+"emailVisibility"),i.push(t+"verified"),i.push(t+"created"),i.push(t+"updated")):(i.push(t+"created"),i.push(t+"updated"));const l=e.schema||[];for(const s of l)j.pushUnique(i,t+s.name);return i}static parseIndex(e){var a,u,f,c,d;const t={unique:!1,optional:!1,schemaName:"",indexName:"",tableName:"",columns:[],where:""},l=/create\s+(unique\s+)?\s*index\s*(if\s+not\s+exists\s+)?(\S*)\s+on\s+(\S*)\s*\(([\s\S]*)\)(?:\s*where\s+([\s\S]*))?/gmi.exec((e||"").trim());if((l==null?void 0:l.length)!=7)return t;const s=/^[\"\'\`\[\{}]|[\"\'\`\]\}]$/gm;t.unique=((a=l[1])==null?void 0:a.trim().toLowerCase())==="unique",t.optional=!j.isEmpty((u=l[2])==null?void 0:u.trim());const o=(l[3]||"").split(".");o.length==2?(t.schemaName=o[0].replace(s,""),t.indexName=o[1].replace(s,"")):(t.schemaName="",t.indexName=o[0].replace(s,"")),t.tableName=(l[4]||"").replace(s,"");const r=(l[5]||"").replace(/,(?=[^\(]*\))/gmi,"{PB_TEMP}").split(",");for(let m of r){m=m.trim().replaceAll("{PB_TEMP}",",");const _=/^([\s\S]+?)(?:\s+collate\s+([\w]+))?(?:\s+(asc|desc))?$/gmi.exec(m);if((_==null?void 0:_.length)!=4)continue;const g=(c=(f=_[1])==null?void 0:f.trim())==null?void 0:c.replace(s,"");g&&t.columns.push({name:g,collate:_[2]||"",sort:((d=_[3])==null?void 0:d.toUpperCase())||""})}return t.where=l[6]||"",t}static buildIndex(e){let t="CREATE ";e.unique&&(t+="UNIQUE "),t+="INDEX ",e.optional&&(t+="IF NOT EXISTS "),e.schemaName&&(t+=`\`${e.schemaName}\`.`),t+=`\`${e.indexName||"idx_"+j.randomString(7)}\` `,t+=`ON \`${e.tableName}\` (`;const i=e.columns.filter(l=>!!(l!=null&&l.name));return i.length>1&&(t+=` `),t+=i.map(l=>{let s="";return l.name.includes("(")||l.name.includes(" ")?s+=l.name:s+="`"+l.name+"`",l.collate&&(s+=" COLLATE "+l.collate),l.sort&&(s+=" "+l.sort.toUpperCase()),s}).join(`, `),i.length>1&&(t+=` -`),t+=")",e.where&&(t+=` WHERE ${e.where}`),t}static replaceIndexTableName(e,t){const i=j.parseIndex(e);return i.tableName=t,j.buildIndex(i)}static replaceIndexColumn(e,t,i){if(t===i)return e;const l=j.parseIndex(e);let s=!1;for(let o of l.columns)o.name===t&&(o.name=i,s=!0);return s?j.buildIndex(l):e}static normalizeSearchFilter(e,t){if(e=(e||"").trim(),!e||!t.length)return e;const i=["=","!=","~","!~",">",">=","<","<="];for(const l of i)if(e.includes(l))return e;return e=isNaN(e)&&e!="true"&&e!="false"?`"${e.replace(/^[\"\'\`]|[\"\'\`]$/gm,"")}"`:e,t.map(l=>`${l}~${e}`).join("||")}static normalizeLogsFilter(e,t=[]){return j.normalizeSearchFilter(e,["level","message","data"].concat(t))}static initCollection(e){return Object.assign({id:"",created:"",updated:"",name:"",type:"base",system:!1,listRule:null,viewRule:null,createRule:null,updateRule:null,deleteRule:null,schema:[],indexes:[],options:{}},e)}static initSchemaField(e){return Object.assign({id:"",name:"",type:"text",system:!1,required:!1,options:{}},e)}static triggerResize(){window.dispatchEvent(new Event("resize"))}static getHashQueryParams(){let e="";const t=window.location.hash.indexOf("?");return t>-1&&(e=window.location.hash.substring(t+1)),Object.fromEntries(new URLSearchParams(e))}static replaceHashQueryParams(e){e=e||{};let t="",i=window.location.hash;const l=i.indexOf("?");l>-1&&(t=i.substring(l+1),i=i.substring(0,l));const s=new URLSearchParams(t);for(let a in e){const u=e[a];u===null?s.delete(a):s.set(a,u)}t=s.toString(),t!=""&&(i+="?"+t);let o=window.location.href;const r=o.indexOf("#");r>-1&&(o=o.substring(0,r)),window.location.replace(o+i)}}const Ko=Dn([]);function $o(n,e=4e3){return Jo(n,"info",e)}function It(n,e=3e3){return Jo(n,"success",e)}function ni(n,e=4500){return Jo(n,"error",e)}function Kk(n,e=4500){return Jo(n,"warning",e)}function Jo(n,e,t){t=t||4e3;const i={message:n,type:e,duration:t,timeout:setTimeout(()=>{q1(i)},t)};Ko.update(l=>(Oa(l,i.message),j.pushOrReplaceByKey(l,i,"message"),l))}function q1(n){Ko.update(e=>(Oa(e,n),e))}function Ma(){Ko.update(n=>{for(let e of n)Oa(n,e);return[]})}function Oa(n,e){let t;typeof e=="string"?t=j.findByKey(n,"message",e):t=e,t&&(clearTimeout(t.timeout),j.removeByKey(n,"message",t.message))}const _i=Dn({});function Gt(n){_i.set(n||{})}function ii(n){_i.update(e=>(j.deleteByPath(e,n),e))}const Da=Dn({});function Jr(n){Da.set(n||{})}const zn=Dn([]),li=Dn({}),To=Dn(!1),j1=Dn({});function Jk(n){zn.update(e=>{const t=j.findByKey(e,"id",n);return t?li.set(t):e.length&&li.set(e[0]),e})}function Zk(n){li.update(e=>j.isEmpty(e==null?void 0:e.id)||e.id===n.id?n:e),zn.update(e=>(j.pushOrReplaceByKey(e,n,"id"),Ea(),j.sortCollections(e)))}function Gk(n){zn.update(e=>(j.removeByKey(e,"id",n.id),li.update(t=>t.id===n.id?e[0]:t),Ea(),e))}async function Xk(n=null){To.set(!0);try{let e=await fe.collections.getFullList(200,{sort:"+name"});e=j.sortCollections(e),zn.set(e);const t=n&&j.findByKey(e,"id",n);t?li.set(t):e.length&&li.set(e[0]),Ea()}catch(e){fe.error(e)}To.set(!1)}function Ea(){j1.update(n=>(zn.update(e=>{var t;for(let i of e)n[i.id]=!!((t=i.schema)!=null&&t.find(l=>{var s;return l.type=="file"&&((s=l.options)==null?void 0:s.protected)}));return e}),n))}const pr="pb_admin_file_token";Bo.prototype.logout=function(n=!0){this.authStore.clear(),n&&nl("/login")};Bo.prototype.error=function(n,e=!0,t=""){if(!n||!(n instanceof Error)||n.isAbort)return;const i=(n==null?void 0:n.status)<<0||400,l=(n==null?void 0:n.data)||{},s=l.message||n.message||t;if(e&&s&&ni(s),j.isEmpty(l.data)||Gt(l.data),i===401)return this.cancelAllRequests(),this.logout();if(i===403)return this.cancelAllRequests(),nl("/")};Bo.prototype.getAdminFileToken=async function(n=""){let e=!0;if(n){const i=i0(j1);e=typeof i[n]<"u"?i[n]:!0}if(!e)return"";let t=localStorage.getItem(pr)||"";return(!t||ga(t,10))&&(t&&localStorage.removeItem(pr),this._adminFileTokenRequest||(this._adminFileTokenRequest=this.files.getToken()),t=await this._adminFileTokenRequest,localStorage.setItem(pr,t),this._adminFileTokenRequest=null),t};class Qk extends Rg{save(e,t){super.save(e,t),t&&!t.collectionId&&Jr(t)}clear(){super.clear(),Jr(null)}}const fe=new Bo("../",new Qk("pb_admin_auth"));fe.authStore.model&&!fe.authStore.model.collectionId&&Jr(fe.authStore.model);const xk=n=>({}),qu=n=>({});function ev(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;const h=n[3].default,_=kt(h,n,n[2],null),g=n[3].footer,k=kt(g,n,n[2],qu);return{c(){e=b("div"),t=b("main"),_&&_.c(),i=M(),l=b("footer"),k&&k.c(),s=M(),o=b("a"),o.innerHTML=' Docs',r=M(),a=b("span"),a.textContent="|",u=M(),f=b("a"),c=b("span"),c.textContent="PocketBase v0.20.2",p(t,"class","page-content"),p(o,"href","https://pocketbase.io/docs/"),p(o,"target","_blank"),p(o,"rel","noopener noreferrer"),p(a,"class","delimiter"),p(c,"class","txt"),p(f,"href","https://github.com/pocketbase/pocketbase/releases"),p(f,"target","_blank"),p(f,"rel","noopener noreferrer"),p(f,"title","Releases"),p(l,"class","page-footer"),p(e,"class",d="page-wrapper "+n[1]),ee(e,"center-content",n[0])},m(S,T){w(S,e,T),y(e,t),_&&_.m(t,null),y(e,i),y(e,l),k&&k.m(l,null),y(l,s),y(l,o),y(l,r),y(l,a),y(l,u),y(l,f),y(f,c),m=!0},p(S,[T]){_&&_.p&&(!m||T&4)&&wt(_,h,S,S[2],m?vt(h,S[2],T,null):St(S[2]),null),k&&k.p&&(!m||T&4)&&wt(k,g,S,S[2],m?vt(g,S[2],T,xk):St(S[2]),qu),(!m||T&2&&d!==(d="page-wrapper "+S[1]))&&p(e,"class",d),(!m||T&3)&&ee(e,"center-content",S[0])},i(S){m||(A(_,S),A(k,S),m=!0)},o(S){I(_,S),I(k,S),m=!1},d(S){S&&v(e),_&&_.d(S),k&&k.d(S)}}}function tv(n,e,t){let{$$slots:i={},$$scope:l}=e,{center:s=!1}=e,{class:o=""}=e;return n.$$set=r=>{"center"in r&&t(0,s=r.center),"class"in r&&t(1,o=r.class),"$$scope"in r&&t(2,l=r.$$scope)},[s,o,l,i]}class gn extends ge{constructor(e){super(),_e(this,e,tv,ev,he,{center:0,class:1})}}function ju(n){let e,t,i;return{c(){e=b("div"),e.innerHTML='',t=M(),i=b("div"),p(e,"class","block txt-center m-b-lg"),p(i,"class","clearfix")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function nv(n){let e,t,i,l=!n[0]&&ju();const s=n[1].default,o=kt(s,n,n[2],null);return{c(){e=b("div"),l&&l.c(),t=M(),o&&o.c(),p(e,"class","wrapper wrapper-sm m-b-xl panel-wrapper svelte-lxxzfu")},m(r,a){w(r,e,a),l&&l.m(e,null),y(e,t),o&&o.m(e,null),i=!0},p(r,a){r[0]?l&&(l.d(1),l=null):l||(l=ju(),l.c(),l.m(e,t)),o&&o.p&&(!i||a&4)&&wt(o,s,r,r[2],i?vt(s,r[2],a,null):St(r[2]),null)},i(r){i||(A(o,r),i=!0)},o(r){I(o,r),i=!1},d(r){r&&v(e),l&&l.d(),o&&o.d(r)}}}function iv(n){let e,t;return e=new gn({props:{class:"full-page",center:!0,$$slots:{default:[nv]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&5&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function lv(n,e,t){let{$$slots:i={},$$scope:l}=e,{nobranding:s=!1}=e;return n.$$set=o=>{"nobranding"in o&&t(0,s=o.nobranding),"$$scope"in o&&t(2,l=o.$$scope)},[s,i,l]}class H1 extends ge{constructor(e){super(),_e(this,e,lv,iv,he,{nobranding:0})}}function Zo(n){const e=n-1;return e*e*e+1}function fs(n,{delay:e=0,duration:t=400,easing:i=ks}={}){const l=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:i,css:s=>`opacity: ${s*l}`}}function jn(n,{delay:e=0,duration:t=400,easing:i=Zo,x:l=0,y:s=0,opacity:o=0}={}){const r=getComputedStyle(n),a=+r.opacity,u=r.transform==="none"?"":r.transform,f=a*(1-o),[c,d]=iu(l),[m,h]=iu(s);return{delay:e,duration:t,easing:i,css:(_,g)=>` +`),t+=")",e.where&&(t+=` WHERE ${e.where}`),t}static replaceIndexTableName(e,t){const i=j.parseIndex(e);return i.tableName=t,j.buildIndex(i)}static replaceIndexColumn(e,t,i){if(t===i)return e;const l=j.parseIndex(e);let s=!1;for(let o of l.columns)o.name===t&&(o.name=i,s=!0);return s?j.buildIndex(l):e}static normalizeSearchFilter(e,t){if(e=(e||"").trim(),!e||!t.length)return e;const i=["=","!=","~","!~",">",">=","<","<="];for(const l of i)if(e.includes(l))return e;return e=isNaN(e)&&e!="true"&&e!="false"?`"${e.replace(/^[\"\'\`]|[\"\'\`]$/gm,"")}"`:e,t.map(l=>`${l}~${e}`).join("||")}static normalizeLogsFilter(e,t=[]){return j.normalizeSearchFilter(e,["level","message","data"].concat(t))}static initCollection(e){return Object.assign({id:"",created:"",updated:"",name:"",type:"base",system:!1,listRule:null,viewRule:null,createRule:null,updateRule:null,deleteRule:null,schema:[],indexes:[],options:{}},e)}static initSchemaField(e){return Object.assign({id:"",name:"",type:"text",system:!1,required:!1,options:{}},e)}static triggerResize(){window.dispatchEvent(new Event("resize"))}static getHashQueryParams(){let e="";const t=window.location.hash.indexOf("?");return t>-1&&(e=window.location.hash.substring(t+1)),Object.fromEntries(new URLSearchParams(e))}static replaceHashQueryParams(e){e=e||{};let t="",i=window.location.hash;const l=i.indexOf("?");l>-1&&(t=i.substring(l+1),i=i.substring(0,l));const s=new URLSearchParams(t);for(let a in e){const u=e[a];u===null?s.delete(a):s.set(a,u)}t=s.toString(),t!=""&&(i+="?"+t);let o=window.location.href;const r=o.indexOf("#");r>-1&&(o=o.substring(0,r)),window.location.replace(o+i)}}const Ko=Dn([]);function $o(n,e=4e3){return Jo(n,"info",e)}function It(n,e=3e3){return Jo(n,"success",e)}function ni(n,e=4500){return Jo(n,"error",e)}function Kk(n,e=4500){return Jo(n,"warning",e)}function Jo(n,e,t){t=t||4e3;const i={message:n,type:e,duration:t,timeout:setTimeout(()=>{q1(i)},t)};Ko.update(l=>(Oa(l,i.message),j.pushOrReplaceByKey(l,i,"message"),l))}function q1(n){Ko.update(e=>(Oa(e,n),e))}function Ma(){Ko.update(n=>{for(let e of n)Oa(n,e);return[]})}function Oa(n,e){let t;typeof e=="string"?t=j.findByKey(n,"message",e):t=e,t&&(clearTimeout(t.timeout),j.removeByKey(n,"message",t.message))}const _i=Dn({});function Gt(n){_i.set(n||{})}function ii(n){_i.update(e=>(j.deleteByPath(e,n),e))}const Da=Dn({});function Jr(n){Da.set(n||{})}const zn=Dn([]),li=Dn({}),To=Dn(!1),j1=Dn({});function Jk(n){zn.update(e=>{const t=j.findByKey(e,"id",n);return t?li.set(t):e.length&&li.set(e[0]),e})}function Zk(n){li.update(e=>j.isEmpty(e==null?void 0:e.id)||e.id===n.id?n:e),zn.update(e=>(j.pushOrReplaceByKey(e,n,"id"),Ea(),j.sortCollections(e)))}function Gk(n){zn.update(e=>(j.removeByKey(e,"id",n.id),li.update(t=>t.id===n.id?e[0]:t),Ea(),e))}async function Xk(n=null){To.set(!0);try{let e=await fe.collections.getFullList(200,{sort:"+name"});e=j.sortCollections(e),zn.set(e);const t=n&&j.findByKey(e,"id",n);t?li.set(t):e.length&&li.set(e[0]),Ea()}catch(e){fe.error(e)}To.set(!1)}function Ea(){j1.update(n=>(zn.update(e=>{var t;for(let i of e)n[i.id]=!!((t=i.schema)!=null&&t.find(l=>{var s;return l.type=="file"&&((s=l.options)==null?void 0:s.protected)}));return e}),n))}const pr="pb_admin_file_token";Bo.prototype.logout=function(n=!0){this.authStore.clear(),n&&nl("/login")};Bo.prototype.error=function(n,e=!0,t=""){if(!n||!(n instanceof Error)||n.isAbort)return;const i=(n==null?void 0:n.status)<<0||400,l=(n==null?void 0:n.data)||{},s=l.message||n.message||t;if(e&&s&&ni(s),j.isEmpty(l.data)||Gt(l.data),i===401)return this.cancelAllRequests(),this.logout();if(i===403)return this.cancelAllRequests(),nl("/")};Bo.prototype.getAdminFileToken=async function(n=""){let e=!0;if(n){const i=i0(j1);e=typeof i[n]<"u"?i[n]:!0}if(!e)return"";let t=localStorage.getItem(pr)||"";return(!t||ga(t,10))&&(t&&localStorage.removeItem(pr),this._adminFileTokenRequest||(this._adminFileTokenRequest=this.files.getToken()),t=await this._adminFileTokenRequest,localStorage.setItem(pr,t),this._adminFileTokenRequest=null),t};class Qk extends Rg{save(e,t){super.save(e,t),t&&!t.collectionId&&Jr(t)}clear(){super.clear(),Jr(null)}}const fe=new Bo("../",new Qk("pb_admin_auth"));fe.authStore.model&&!fe.authStore.model.collectionId&&Jr(fe.authStore.model);const xk=n=>({}),qu=n=>({});function ev(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;const h=n[3].default,_=kt(h,n,n[2],null),g=n[3].footer,k=kt(g,n,n[2],qu);return{c(){e=b("div"),t=b("main"),_&&_.c(),i=M(),l=b("footer"),k&&k.c(),s=M(),o=b("a"),o.innerHTML=' Docs',r=M(),a=b("span"),a.textContent="|",u=M(),f=b("a"),c=b("span"),c.textContent="PocketBase v0.20.3",p(t,"class","page-content"),p(o,"href","https://pocketbase.io/docs/"),p(o,"target","_blank"),p(o,"rel","noopener noreferrer"),p(a,"class","delimiter"),p(c,"class","txt"),p(f,"href","https://github.com/pocketbase/pocketbase/releases"),p(f,"target","_blank"),p(f,"rel","noopener noreferrer"),p(f,"title","Releases"),p(l,"class","page-footer"),p(e,"class",d="page-wrapper "+n[1]),ee(e,"center-content",n[0])},m(S,T){w(S,e,T),y(e,t),_&&_.m(t,null),y(e,i),y(e,l),k&&k.m(l,null),y(l,s),y(l,o),y(l,r),y(l,a),y(l,u),y(l,f),y(f,c),m=!0},p(S,[T]){_&&_.p&&(!m||T&4)&&wt(_,h,S,S[2],m?vt(h,S[2],T,null):St(S[2]),null),k&&k.p&&(!m||T&4)&&wt(k,g,S,S[2],m?vt(g,S[2],T,xk):St(S[2]),qu),(!m||T&2&&d!==(d="page-wrapper "+S[1]))&&p(e,"class",d),(!m||T&3)&&ee(e,"center-content",S[0])},i(S){m||(A(_,S),A(k,S),m=!0)},o(S){I(_,S),I(k,S),m=!1},d(S){S&&v(e),_&&_.d(S),k&&k.d(S)}}}function tv(n,e,t){let{$$slots:i={},$$scope:l}=e,{center:s=!1}=e,{class:o=""}=e;return n.$$set=r=>{"center"in r&&t(0,s=r.center),"class"in r&&t(1,o=r.class),"$$scope"in r&&t(2,l=r.$$scope)},[s,o,l,i]}class gn extends ge{constructor(e){super(),_e(this,e,tv,ev,he,{center:0,class:1})}}function ju(n){let e,t,i;return{c(){e=b("div"),e.innerHTML='',t=M(),i=b("div"),p(e,"class","block txt-center m-b-lg"),p(i,"class","clearfix")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function nv(n){let e,t,i,l=!n[0]&&ju();const s=n[1].default,o=kt(s,n,n[2],null);return{c(){e=b("div"),l&&l.c(),t=M(),o&&o.c(),p(e,"class","wrapper wrapper-sm m-b-xl panel-wrapper svelte-lxxzfu")},m(r,a){w(r,e,a),l&&l.m(e,null),y(e,t),o&&o.m(e,null),i=!0},p(r,a){r[0]?l&&(l.d(1),l=null):l||(l=ju(),l.c(),l.m(e,t)),o&&o.p&&(!i||a&4)&&wt(o,s,r,r[2],i?vt(s,r[2],a,null):St(r[2]),null)},i(r){i||(A(o,r),i=!0)},o(r){I(o,r),i=!1},d(r){r&&v(e),l&&l.d(),o&&o.d(r)}}}function iv(n){let e,t;return e=new gn({props:{class:"full-page",center:!0,$$slots:{default:[nv]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&5&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function lv(n,e,t){let{$$slots:i={},$$scope:l}=e,{nobranding:s=!1}=e;return n.$$set=o=>{"nobranding"in o&&t(0,s=o.nobranding),"$$scope"in o&&t(2,l=o.$$scope)},[s,i,l]}class H1 extends ge{constructor(e){super(),_e(this,e,lv,iv,he,{nobranding:0})}}function Zo(n){const e=n-1;return e*e*e+1}function fs(n,{delay:e=0,duration:t=400,easing:i=ks}={}){const l=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:i,css:s=>`opacity: ${s*l}`}}function jn(n,{delay:e=0,duration:t=400,easing:i=Zo,x:l=0,y:s=0,opacity:o=0}={}){const r=getComputedStyle(n),a=+r.opacity,u=r.transform==="none"?"":r.transform,f=a*(1-o),[c,d]=iu(l),[m,h]=iu(s);return{delay:e,duration:t,easing:i,css:(_,g)=>` transform: ${u} translate(${(1-_)*c}${d}, ${(1-_)*m}${h}); opacity: ${a-f*g}`}}function et(n,{delay:e=0,duration:t=400,easing:i=Zo,axis:l="y"}={}){const s=getComputedStyle(n),o=+s.opacity,r=l==="y"?"height":"width",a=parseFloat(s[r]),u=l==="y"?["top","bottom"]:["left","right"],f=u.map(k=>`${k[0].toUpperCase()}${k.slice(1)}`),c=parseFloat(s[`padding${f[0]}`]),d=parseFloat(s[`padding${f[1]}`]),m=parseFloat(s[`margin${f[0]}`]),h=parseFloat(s[`margin${f[1]}`]),_=parseFloat(s[`border${f[0]}Width`]),g=parseFloat(s[`border${f[1]}Width`]);return{delay:e,duration:t,easing:i,css:k=>`overflow: hidden;opacity: ${Math.min(k*20,1)*o};${r}: ${k*a}px;padding-${u[0]}: ${k*c}px;padding-${u[1]}: ${k*d}px;margin-${u[0]}: ${k*m}px;margin-${u[1]}: ${k*h}px;border-${u[0]}-width: ${k*_}px;border-${u[1]}-width: ${k*g}px;`}}function Yt(n,{delay:e=0,duration:t=400,easing:i=Zo,start:l=0,opacity:s=0}={}){const o=getComputedStyle(n),r=+o.opacity,a=o.transform==="none"?"":o.transform,u=1-l,f=r*(1-s);return{delay:e,duration:t,easing:i,css:(c,d)=>` transform: ${a} scale(${1-u*d}); opacity: ${r-f*d} `}}let Zr,ji;const Gr="app-tooltip";function Hu(n){return typeof n=="string"?{text:n,position:"bottom",hideOnClick:null}:n||{}}function Ei(){return ji=ji||document.querySelector("."+Gr),ji||(ji=document.createElement("div"),ji.classList.add(Gr),document.body.appendChild(ji)),ji}function z1(n,e){let t=Ei();if(!t.classList.contains("active")||!(e!=null&&e.text)){Xr();return}t.textContent=e.text,t.className=Gr+" active",e.class&&t.classList.add(e.class),e.position&&t.classList.add(e.position),t.style.top="0px",t.style.left="0px";let i=t.offsetHeight,l=t.offsetWidth,s=n.getBoundingClientRect(),o=0,r=0,a=5;e.position=="left"?(o=s.top+s.height/2-i/2,r=s.left-l-a):e.position=="right"?(o=s.top+s.height/2-i/2,r=s.right+a):e.position=="top"?(o=s.top-i-a,r=s.left+s.width/2-l/2):e.position=="top-left"?(o=s.top-i-a,r=s.left):e.position=="top-right"?(o=s.top-i-a,r=s.right-l):e.position=="bottom-left"?(o=s.top+s.height+a,r=s.left):e.position=="bottom-right"?(o=s.top+s.height+a,r=s.right-l):(o=s.top+s.height+a,r=s.left+s.width/2-l/2),r+l>document.documentElement.clientWidth&&(r=document.documentElement.clientWidth-l),r=r>=0?r:0,o+i>document.documentElement.clientHeight&&(o=document.documentElement.clientHeight-i),o=o>=0?o:0,t.style.top=o+"px",t.style.left=r+"px"}function Xr(){clearTimeout(Zr),Ei().classList.remove("active"),Ei().activeNode=void 0}function sv(n,e){Ei().activeNode=n,clearTimeout(Zr),Zr=setTimeout(()=>{Ei().classList.add("active"),z1(n,e)},isNaN(e.delay)?0:e.delay)}function Le(n,e){let t=Hu(e);function i(){sv(n,t)}function l(){Xr()}return n.addEventListener("mouseenter",i),n.addEventListener("mouseleave",l),n.addEventListener("blur",l),(t.hideOnClick===!0||t.hideOnClick===null&&j.isFocusable(n))&&n.addEventListener("click",l),Ei(),{update(s){var o,r;t=Hu(s),(r=(o=Ei())==null?void 0:o.activeNode)!=null&&r.contains(n)&&z1(n,t)},destroy(){var s,o;(o=(s=Ei())==null?void 0:s.activeNode)!=null&&o.contains(n)&&Xr(),n.removeEventListener("mouseenter",i),n.removeEventListener("mouseleave",l),n.removeEventListener("blur",l),n.removeEventListener("click",l)}}}function zu(n,e,t){const i=n.slice();return i[12]=e[t],i}const ov=n=>({}),Vu=n=>({uniqueId:n[4]});function rv(n){let e,t,i=pe(n[3]),l=[];for(let o=0;oI(l[o],1,1,()=>{l[o]=null});return{c(){for(let o=0;o{s&&(l||(l=Pe(t,Yt,{duration:150,start:.7},!0)),l.run(1))}),s=!0)},o(a){a&&(l||(l=Pe(t,Yt,{duration:150,start:.7},!1)),l.run(0)),s=!1},d(a){a&&v(e),a&&l&&l.end(),o=!1,r()}}}function Bu(n){let e,t,i=Co(n[12])+"",l,s,o,r;return{c(){e=b("div"),t=b("pre"),l=Y(i),s=M(),p(e,"class","help-block help-block-error")},m(a,u){w(a,e,u),y(e,t),y(t,l),y(e,s),r=!0},p(a,u){(!r||u&8)&&i!==(i=Co(a[12])+"")&&le(l,i)},i(a){r||(a&&Ke(()=>{r&&(o||(o=Pe(e,et,{duration:150},!0)),o.run(1))}),r=!0)},o(a){a&&(o||(o=Pe(e,et,{duration:150},!1)),o.run(0)),r=!1},d(a){a&&v(e),a&&o&&o.end()}}}function uv(n){let e,t,i,l,s,o,r;const a=n[9].default,u=kt(a,n,n[8],Vu),f=[av,rv],c=[];function d(m,h){return m[0]&&m[3].length?0:1}return i=d(n),l=c[i]=f[i](n),{c(){e=b("div"),u&&u.c(),t=M(),l.c(),p(e,"class",n[1]),ee(e,"error",n[3].length)},m(m,h){w(m,e,h),u&&u.m(e,null),y(e,t),c[i].m(e,null),n[11](e),s=!0,o||(r=K(e,"click",n[10]),o=!0)},p(m,[h]){u&&u.p&&(!s||h&256)&&wt(u,a,m,m[8],s?vt(a,m[8],h,ov):St(m[8]),Vu);let _=i;i=d(m),i===_?c[i].p(m,h):(oe(),I(c[_],1,1,()=>{c[_]=null}),re(),l=c[i],l?l.p(m,h):(l=c[i]=f[i](m),l.c()),A(l,1),l.m(e,null)),(!s||h&2)&&p(e,"class",m[1]),(!s||h&10)&&ee(e,"error",m[3].length)},i(m){s||(A(u,m),A(l),s=!0)},o(m){I(u,m),I(l),s=!1},d(m){m&&v(e),u&&u.d(m),c[i].d(),n[11](null),o=!1,r()}}}const Uu="Invalid value";function Co(n){return typeof n=="object"?(n==null?void 0:n.message)||(n==null?void 0:n.code)||Uu:n||Uu}function fv(n,e,t){let i;We(n,_i,_=>t(7,i=_));let{$$slots:l={},$$scope:s}=e;const o="field_"+j.randomString(7);let{name:r=""}=e,{inlineError:a=!1}=e,{class:u=void 0}=e,f,c=[];function d(){ii(r)}Vt(()=>(f.addEventListener("input",d),f.addEventListener("change",d),()=>{f.removeEventListener("input",d),f.removeEventListener("change",d)}));function m(_){Ae.call(this,n,_)}function h(_){te[_?"unshift":"push"](()=>{f=_,t(2,f)})}return n.$$set=_=>{"name"in _&&t(5,r=_.name),"inlineError"in _&&t(0,a=_.inlineError),"class"in _&&t(1,u=_.class),"$$scope"in _&&t(8,s=_.$$scope)},n.$$.update=()=>{n.$$.dirty&160&&t(3,c=j.toArray(j.getNestedVal(i,r)))},[a,u,f,c,o,r,d,i,s,l,m,h]}class me extends ge{constructor(e){super(),_e(this,e,fv,uv,he,{name:5,inlineError:0,class:1,changed:6})}get changed(){return this.$$.ctx[6]}}function cv(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Email"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","email"),p(s,"autocomplete","off"),p(s,"id",o=n[9]),s.required=!0,s.autofocus=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0]),s.focus(),r||(a=K(s,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&s.value!==u[0]&&ue(s,u[0])},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function dv(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=Y("Password"),l=M(),s=b("input"),r=M(),a=b("div"),a.textContent="Minimum 10 characters.",p(e,"for",i=n[9]),p(s,"type","password"),p(s,"autocomplete","new-password"),p(s,"minlength","10"),p(s,"id",o=n[9]),s.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),y(e,t),w(c,l,d),w(c,s,d),ue(s,n[1]),w(c,r,d),w(c,a,d),u||(f=K(s,"input",n[6]),u=!0)},p(c,d){d&512&&i!==(i=c[9])&&p(e,"for",i),d&512&&o!==(o=c[9])&&p(s,"id",o),d&2&&s.value!==c[1]&&ue(s,c[1])},d(c){c&&(v(e),v(l),v(s),v(r),v(a)),u=!1,f()}}}function pv(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Password confirm"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","password"),p(s,"minlength","10"),p(s,"id",o=n[9]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[2]),r||(a=K(s,"input",n[7]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&4&&s.value!==u[2]&&ue(s,u[2])},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function mv(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return l=new me({props:{class:"form-field required",name:"email",$$slots:{default:[cv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:"password",$$slots:{default:[dv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),a=new me({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[pv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),t=b("div"),t.innerHTML="

Create your first admin account in order to continue

",i=M(),V(l.$$.fragment),s=M(),V(o.$$.fragment),r=M(),V(a.$$.fragment),u=M(),f=b("button"),f.innerHTML='Create and login ',p(t,"class","content txt-center m-b-base"),p(f,"type","submit"),p(f,"class","btn btn-lg btn-block btn-next"),ee(f,"btn-disabled",n[3]),ee(f,"btn-loading",n[3]),p(e,"class","block"),p(e,"autocomplete","off")},m(h,_){w(h,e,_),y(e,t),y(e,i),H(l,e,null),y(e,s),H(o,e,null),y(e,r),H(a,e,null),y(e,u),y(e,f),c=!0,d||(m=K(e,"submit",Ye(n[4])),d=!0)},p(h,[_]){const g={};_&1537&&(g.$$scope={dirty:_,ctx:h}),l.$set(g);const k={};_&1538&&(k.$$scope={dirty:_,ctx:h}),o.$set(k);const S={};_&1540&&(S.$$scope={dirty:_,ctx:h}),a.$set(S),(!c||_&8)&&ee(f,"btn-disabled",h[3]),(!c||_&8)&&ee(f,"btn-loading",h[3])},i(h){c||(A(l.$$.fragment,h),A(o.$$.fragment,h),A(a.$$.fragment,h),c=!0)},o(h){I(l.$$.fragment,h),I(o.$$.fragment,h),I(a.$$.fragment,h),c=!1},d(h){h&&v(e),z(l),z(o),z(a),d=!1,m()}}}function hv(n,e,t){const i=ot();let l="",s="",o="",r=!1;async function a(){if(!r){t(3,r=!0);try{await fe.admins.create({email:l,password:s,passwordConfirm:o}),await fe.admins.authWithPassword(l,s),i("submit")}catch(d){fe.error(d)}t(3,r=!1)}}function u(){l=this.value,t(0,l)}function f(){s=this.value,t(1,s)}function c(){o=this.value,t(2,o)}return[l,s,o,r,a,u,f,c]}class _v extends ge{constructor(e){super(),_e(this,e,hv,mv,he,{})}}function Wu(n){let e,t;return e=new H1({props:{$$slots:{default:[gv]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&9&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function gv(n){let e,t;return e=new _v({}),e.$on("submit",n[1]),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p:Q,i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function bv(n){let e,t,i=n[0]&&Wu(n);return{c(){i&&i.c(),e=ke()},m(l,s){i&&i.m(l,s),w(l,e,s),t=!0},p(l,[s]){l[0]?i?(i.p(l,s),s&1&&A(i,1)):(i=Wu(l),i.c(),A(i,1),i.m(e.parentNode,e)):i&&(oe(),I(i,1,1,()=>{i=null}),re())},i(l){t||(A(i),t=!0)},o(l){I(i),t=!1},d(l){l&&v(e),i&&i.d(l)}}}function yv(n,e,t){let i=!1;l();function l(){if(t(0,i=!1),new URLSearchParams(window.location.search).has("installer")){fe.logout(!1),t(0,i=!0);return}fe.authStore.isValid?nl("/collections"):fe.logout()}return[i,async()=>{t(0,i=!1),await Qt(),window.location.search=""}]}class kv extends ge{constructor(e){super(),_e(this,e,yv,bv,he,{})}}const Dt=Dn(""),Mo=Dn(""),Sl=Dn(!1);function vv(n){let e,t,i,l;return{c(){e=b("input"),p(e,"type","text"),p(e,"id",n[8]),p(e,"placeholder",t=n[0]||n[1])},m(s,o){w(s,e,o),n[13](e),ue(e,n[7]),i||(l=K(e,"input",n[14]),i=!0)},p(s,o){o&3&&t!==(t=s[0]||s[1])&&p(e,"placeholder",t),o&128&&e.value!==s[7]&&ue(e,s[7])},i:Q,o:Q,d(s){s&&v(e),n[13](null),i=!1,l()}}}function wv(n){let e,t,i,l;function s(a){n[12](a)}var o=n[4];function r(a,u){let f={id:a[8],singleLine:!0,disableRequestKeys:!0,disableIndirectCollectionsKeys:!0,extraAutocompleteKeys:a[3],baseCollection:a[2],placeholder:a[0]||a[1]};return a[7]!==void 0&&(f.value=a[7]),{props:f}}return o&&(e=Ot(o,r(n)),te.push(()=>be(e,"value",s)),e.$on("submit",n[10])),{c(){e&&V(e.$$.fragment),i=ke()},m(a,u){e&&H(e,a,u),w(a,i,u),l=!0},p(a,u){if(u&16&&o!==(o=a[4])){if(e){oe();const f=e;I(f.$$.fragment,1,0,()=>{z(f,1)}),re()}o?(e=Ot(o,r(a)),te.push(()=>be(e,"value",s)),e.$on("submit",a[10]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,i.parentNode,i)):e=null}else if(o){const f={};u&8&&(f.extraAutocompleteKeys=a[3]),u&4&&(f.baseCollection=a[2]),u&3&&(f.placeholder=a[0]||a[1]),!t&&u&128&&(t=!0,f.value=a[7],ye(()=>t=!1)),e.$set(f)}},i(a){l||(e&&A(e.$$.fragment,a),l=!0)},o(a){e&&I(e.$$.fragment,a),l=!1},d(a){a&&v(i),e&&z(e,a)}}}function Yu(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Search',p(e,"type","submit"),p(e,"class","btn btn-expanded-sm btn-sm btn-warning")},m(l,s){w(l,e,s),i=!0},i(l){i||(l&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,x:5},!0)),t.run(1))}),i=!0)},o(l){l&&(t||(t=Pe(e,jn,{duration:150,x:5},!1)),t.run(0)),i=!1},d(l){l&&v(e),l&&t&&t.end()}}}function Ku(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Clear',p(e,"type","button"),p(e,"class","btn btn-transparent btn-sm btn-hint p-l-xs p-r-xs m-l-10")},m(o,r){w(o,e,r),i=!0,l||(s=K(e,"click",n[15]),l=!0)},p:Q,i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,x:5},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,jn,{duration:150,x:5},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function Sv(n){let e,t,i,l,s,o,r,a,u,f,c;const d=[wv,vv],m=[];function h(k,S){return k[4]&&!k[5]?0:1}s=h(n),o=m[s]=d[s](n);let _=(n[0].length||n[7].length)&&n[7]!=n[0]&&Yu(),g=(n[0].length||n[7].length)&&Ku(n);return{c(){e=b("form"),t=b("label"),i=b("i"),l=M(),o.c(),r=M(),_&&_.c(),a=M(),g&&g.c(),p(i,"class","ri-search-line"),p(t,"for",n[8]),p(t,"class","m-l-10 txt-xl"),p(e,"class","searchbar")},m(k,S){w(k,e,S),y(e,t),y(t,i),y(e,l),m[s].m(e,null),y(e,r),_&&_.m(e,null),y(e,a),g&&g.m(e,null),u=!0,f||(c=[K(e,"click",fn(n[11])),K(e,"submit",Ye(n[10]))],f=!0)},p(k,[S]){let T=s;s=h(k),s===T?m[s].p(k,S):(oe(),I(m[T],1,1,()=>{m[T]=null}),re(),o=m[s],o?o.p(k,S):(o=m[s]=d[s](k),o.c()),A(o,1),o.m(e,r)),(k[0].length||k[7].length)&&k[7]!=k[0]?_?S&129&&A(_,1):(_=Yu(),_.c(),A(_,1),_.m(e,a)):_&&(oe(),I(_,1,1,()=>{_=null}),re()),k[0].length||k[7].length?g?(g.p(k,S),S&129&&A(g,1)):(g=Ku(k),g.c(),A(g,1),g.m(e,null)):g&&(oe(),I(g,1,1,()=>{g=null}),re())},i(k){u||(A(o),A(_),A(g),u=!0)},o(k){I(o),I(_),I(g),u=!1},d(k){k&&v(e),m[s].d(),_&&_.d(),g&&g.d(),f=!1,we(c)}}}function $v(n,e,t){const i=ot(),l="search_"+j.randomString(7);let{value:s=""}=e,{placeholder:o='Search term or filter like created > "2022-01-01"...'}=e,{autocompleteCollection:r=j.initCollection()}=e,{extraAutocompleteKeys:a=[]}=e,u,f=!1,c,d="";function m(C=!0){t(7,d=""),C&&(c==null||c.focus()),i("clear")}function h(){t(0,s=d),i("submit",s)}async function _(){u||f||(t(5,f=!0),t(4,u=(await rt(()=>import("./FilterAutocompleteInput-e50206fe.js"),["./FilterAutocompleteInput-e50206fe.js","./index-9ee652b3.js"],import.meta.url)).default),t(5,f=!1))}Vt(()=>{_()});function g(C){Ae.call(this,n,C)}function k(C){d=C,t(7,d),t(0,s)}function S(C){te[C?"unshift":"push"](()=>{c=C,t(6,c)})}function T(){d=this.value,t(7,d),t(0,s)}const $=()=>{m(!1),h()};return n.$$set=C=>{"value"in C&&t(0,s=C.value),"placeholder"in C&&t(1,o=C.placeholder),"autocompleteCollection"in C&&t(2,r=C.autocompleteCollection),"extraAutocompleteKeys"in C&&t(3,a=C.extraAutocompleteKeys)},n.$$.update=()=>{n.$$.dirty&1&&typeof s=="string"&&t(7,d=s)},[s,o,r,a,u,f,c,d,l,m,h,g,k,S,T,$]}class Ms extends ge{constructor(e){super(),_e(this,e,$v,Sv,he,{value:0,placeholder:1,autocompleteCollection:2,extraAutocompleteKeys:3})}}function Tv(n){let e,t,i,l,s,o;return{c(){e=b("button"),t=b("i"),p(t,"class","ri-refresh-line svelte-1bvelc2"),p(e,"type","button"),p(e,"aria-label","Refresh"),p(e,"class",i="btn btn-transparent btn-circle "+n[1]+" svelte-1bvelc2"),ee(e,"refreshing",n[2])},m(r,a){w(r,e,a),y(e,t),s||(o=[ve(l=Le.call(null,e,n[0])),K(e,"click",n[3])],s=!0)},p(r,[a]){a&2&&i!==(i="btn btn-transparent btn-circle "+r[1]+" svelte-1bvelc2")&&p(e,"class",i),l&&$t(l.update)&&a&1&&l.update.call(null,r[0]),a&6&&ee(e,"refreshing",r[2])},i:Q,o:Q,d(r){r&&v(e),s=!1,we(o)}}}function Cv(n,e,t){const i=ot();let{tooltip:l={text:"Refresh",position:"right"}}=e,{class:s=""}=e,o=null;function r(){i("refresh");const a=l;t(0,l=null),clearTimeout(o),t(2,o=setTimeout(()=>{t(2,o=null),t(0,l=a)},150))}return Vt(()=>()=>clearTimeout(o)),n.$$set=a=>{"tooltip"in a&&t(0,l=a.tooltip),"class"in a&&t(1,s=a.class)},[l,s,o,r]}class Go extends ge{constructor(e){super(),_e(this,e,Cv,Tv,he,{tooltip:0,class:1})}}function Mv(n){let e,t,i,l,s;const o=n[6].default,r=kt(o,n,n[5],null);return{c(){e=b("th"),r&&r.c(),p(e,"tabindex","0"),p(e,"title",n[2]),p(e,"class",t="col-sort "+n[1]),ee(e,"col-sort-disabled",n[3]),ee(e,"sort-active",n[0]==="-"+n[2]||n[0]==="+"+n[2]),ee(e,"sort-desc",n[0]==="-"+n[2]),ee(e,"sort-asc",n[0]==="+"+n[2])},m(a,u){w(a,e,u),r&&r.m(e,null),i=!0,l||(s=[K(e,"click",n[7]),K(e,"keydown",n[8])],l=!0)},p(a,[u]){r&&r.p&&(!i||u&32)&&wt(r,o,a,a[5],i?vt(o,a[5],u,null):St(a[5]),null),(!i||u&4)&&p(e,"title",a[2]),(!i||u&2&&t!==(t="col-sort "+a[1]))&&p(e,"class",t),(!i||u&10)&&ee(e,"col-sort-disabled",a[3]),(!i||u&7)&&ee(e,"sort-active",a[0]==="-"+a[2]||a[0]==="+"+a[2]),(!i||u&7)&&ee(e,"sort-desc",a[0]==="-"+a[2]),(!i||u&7)&&ee(e,"sort-asc",a[0]==="+"+a[2])},i(a){i||(A(r,a),i=!0)},o(a){I(r,a),i=!1},d(a){a&&v(e),r&&r.d(a),l=!1,we(s)}}}function Ov(n,e,t){let{$$slots:i={},$$scope:l}=e,{class:s=""}=e,{name:o}=e,{sort:r=""}=e,{disable:a=!1}=e;function u(){a||("-"+o===r?t(0,r="+"+o):t(0,r="-"+o))}const f=()=>u(),c=d=>{(d.code==="Enter"||d.code==="Space")&&(d.preventDefault(),u())};return n.$$set=d=>{"class"in d&&t(1,s=d.class),"name"in d&&t(2,o=d.name),"sort"in d&&t(0,r=d.sort),"disable"in d&&t(3,a=d.disable),"$$scope"in d&&t(5,l=d.$$scope)},[r,s,o,a,u,l,i,f,c]}class $n extends ge{constructor(e){super(),_e(this,e,Ov,Mv,he,{class:1,name:2,sort:0,disable:3})}}const Dv=n=>({}),Ju=n=>({}),Ev=n=>({}),Zu=n=>({});function Av(n){let e,t,i,l,s,o,r,a;const u=n[11].before,f=kt(u,n,n[10],Zu),c=n[11].default,d=kt(c,n,n[10],null),m=n[11].after,h=kt(m,n,n[10],Ju);return{c(){e=b("div"),f&&f.c(),t=M(),i=b("div"),d&&d.c(),s=M(),h&&h.c(),p(i,"class",l="scroller "+n[0]+" "+n[3]+" svelte-3a0gfs"),p(e,"class","scroller-wrapper svelte-3a0gfs")},m(_,g){w(_,e,g),f&&f.m(e,null),y(e,t),y(e,i),d&&d.m(i,null),n[12](i),y(e,s),h&&h.m(e,null),o=!0,r||(a=[K(window,"resize",n[1]),K(i,"scroll",n[1])],r=!0)},p(_,[g]){f&&f.p&&(!o||g&1024)&&wt(f,u,_,_[10],o?vt(u,_[10],g,Ev):St(_[10]),Zu),d&&d.p&&(!o||g&1024)&&wt(d,c,_,_[10],o?vt(c,_[10],g,null):St(_[10]),null),(!o||g&9&&l!==(l="scroller "+_[0]+" "+_[3]+" svelte-3a0gfs"))&&p(i,"class",l),h&&h.p&&(!o||g&1024)&&wt(h,m,_,_[10],o?vt(m,_[10],g,Dv):St(_[10]),Ju)},i(_){o||(A(f,_),A(d,_),A(h,_),o=!0)},o(_){I(f,_),I(d,_),I(h,_),o=!1},d(_){_&&v(e),f&&f.d(_),d&&d.d(_),n[12](null),h&&h.d(_),r=!1,we(a)}}}function Iv(n,e,t){let{$$slots:i={},$$scope:l}=e;const s=ot();let{class:o=""}=e,{vThreshold:r=0}=e,{hThreshold:a=0}=e,{dispatchOnNoScroll:u=!0}=e,f=null,c="",d=null,m,h,_,g,k;function S(){f&&t(2,f.scrollTop=0,f)}function T(){f&&t(2,f.scrollLeft=0,f)}function $(){f&&(t(3,c=""),_=f.clientWidth+2,g=f.clientHeight+2,m=f.scrollWidth-_,h=f.scrollHeight-g,h>0?(t(3,c+=" v-scroll"),r>=g&&t(4,r=0),f.scrollTop-r<=0&&(t(3,c+=" v-scroll-start"),s("vScrollStart")),f.scrollTop+r>=h&&(t(3,c+=" v-scroll-end"),s("vScrollEnd"))):u&&s("vScrollEnd"),m>0?(t(3,c+=" h-scroll"),a>=_&&t(5,a=0),f.scrollLeft-a<=0&&(t(3,c+=" h-scroll-start"),s("hScrollStart")),f.scrollLeft+a>=m&&(t(3,c+=" h-scroll-end"),s("hScrollEnd"))):u&&s("hScrollEnd"))}function C(){d||(d=setTimeout(()=>{$(),d=null},150))}Vt(()=>(C(),k=new MutationObserver(C),k.observe(f,{attributeFilter:["width","height"],childList:!0,subtree:!0}),()=>{k==null||k.disconnect(),clearTimeout(d)}));function D(O){te[O?"unshift":"push"](()=>{f=O,t(2,f)})}return n.$$set=O=>{"class"in O&&t(0,o=O.class),"vThreshold"in O&&t(4,r=O.vThreshold),"hThreshold"in O&&t(5,a=O.hThreshold),"dispatchOnNoScroll"in O&&t(6,u=O.dispatchOnNoScroll),"$$scope"in O&&t(10,l=O.$$scope)},[o,C,f,c,r,a,u,S,T,$,l,i,D]}class Xo extends ge{constructor(e){super(),_e(this,e,Iv,Av,he,{class:0,vThreshold:4,hThreshold:5,dispatchOnNoScroll:6,resetVerticalScroll:7,resetHorizontalScroll:8,refresh:9,throttleRefresh:1})}get resetVerticalScroll(){return this.$$.ctx[7]}get resetHorizontalScroll(){return this.$$.ctx[8]}get refresh(){return this.$$.ctx[9]}get throttleRefresh(){return this.$$.ctx[1]}}function Lv(n){let e,t,i=(n[1]||"UNKN")+"",l,s,o,r,a;return{c(){e=b("div"),t=b("span"),l=Y(i),s=Y(" ("),o=Y(n[0]),r=Y(")"),p(t,"class","txt"),p(e,"class",a="label log-level-label level-"+n[0]+" svelte-ha6hme")},m(u,f){w(u,e,f),y(e,t),y(t,l),y(t,s),y(t,o),y(t,r)},p(u,[f]){f&2&&i!==(i=(u[1]||"UNKN")+"")&&le(l,i),f&1&&le(o,u[0]),f&1&&a!==(a="label log-level-label level-"+u[0]+" svelte-ha6hme")&&p(e,"class",a)},i:Q,o:Q,d(u){u&&v(e)}}}function Pv(n,e,t){let i,{level:l}=e;return n.$$set=s=>{"level"in s&&t(0,l=s.level)},n.$$.update=()=>{var s;n.$$.dirty&1&&t(1,i=(s=R1.find(o=>o.level==l))==null?void 0:s.label)},[l,i]}class V1 extends ge{constructor(e){super(),_e(this,e,Pv,Lv,he,{level:0})}}function Nv(n){let e,t=n[0].replace("Z"," UTC")+"",i,l,s;return{c(){e=b("span"),i=Y(t),p(e,"class","txt-nowrap")},m(o,r){w(o,e,r),y(e,i),l||(s=ve(Le.call(null,e,n[1])),l=!0)},p(o,[r]){r&1&&t!==(t=o[0].replace("Z"," UTC")+"")&&le(i,t)},i:Q,o:Q,d(o){o&&v(e),l=!1,s()}}}function Fv(n,e,t){let{date:i}=e;const l={get text(){return j.formatToLocalDate(i,"yyyy-MM-dd HH:mm:ss.SSS")+" Local"}};return n.$$set=s=>{"date"in s&&t(0,i=s.date)},[i,l]}class B1 extends ge{constructor(e){super(),_e(this,e,Fv,Nv,he,{date:0})}}function Gu(n,e,t){var o;const i=n.slice();i[31]=e[t];const l=((o=i[31].data)==null?void 0:o.type)=="request";i[32]=l;const s=Jv(i[31]);return i[33]=s,i}function Xu(n,e,t){const i=n.slice();return i[36]=e[t],i}function Rv(n){let e,t,i,l,s,o,r;return{c(){e=b("div"),t=b("input"),l=M(),s=b("label"),p(t,"type","checkbox"),p(t,"id","checkbox_0"),t.disabled=i=!n[3].length,t.checked=n[8],p(s,"for","checkbox_0"),p(e,"class","form-field")},m(a,u){w(a,e,u),y(e,t),y(e,l),y(e,s),o||(r=K(t,"change",n[18]),o=!0)},p(a,u){u[0]&8&&i!==(i=!a[3].length)&&(t.disabled=i),u[0]&256&&(t.checked=a[8])},d(a){a&&v(e),o=!1,r()}}}function qv(n){let e;return{c(){e=b("span"),p(e,"class","loader loader-sm")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function jv(n){let e;return{c(){e=b("div"),e.innerHTML=' level',p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function Hv(n){let e;return{c(){e=b("div"),e.innerHTML=' message',p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function zv(n){let e;return{c(){e=b("div"),e.innerHTML=` created`,p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function Qu(n){let e;function t(s,o){return s[7]?Bv:Vv}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function Vv(n){var r;let e,t,i,l,s,o=((r=n[0])==null?void 0:r.length)&&xu(n);return{c(){e=b("tr"),t=b("td"),i=b("h6"),i.textContent="No logs found.",l=M(),o&&o.c(),s=M(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),y(e,t),y(t,i),y(t,l),o&&o.m(t,null),y(e,s)},p(a,u){var f;(f=a[0])!=null&&f.length?o?o.p(a,u):(o=xu(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&v(e),o&&o.d()}}}function Bv(n){let e;return{c(){e=b("tr"),e.innerHTML=' '},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function xu(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Clear filters',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[25]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function ef(n){let e,t=pe(n[33]),i=[];for(let l=0;l',F=M(),p(s,"type","checkbox"),p(s,"id",o="checkbox_"+e[31].id),s.checked=r=e[4][e[31].id],p(u,"for",f="checkbox_"+e[31].id),p(l,"class","form-field"),p(i,"class","bulk-select-col min-width"),p(d,"class","col-type-text col-field-level min-width svelte-91v05h"),p(k,"class","txt-ellipsis"),p(g,"class","flex flex-gap-10"),p(_,"class","col-type-text col-field-message svelte-91v05h"),p(D,"class","col-type-date col-field-created"),p(L,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(B,U){w(B,t,U),y(t,i),y(i,l),y(l,s),y(l,a),y(l,u),y(t,c),y(t,d),H(m,d,null),y(t,h),y(t,_),y(_,g),y(g,k),y(k,T),y(_,$),W&&W.m(_,null),y(t,C),y(t,D),H(O,D,null),y(t,E),y(t,L),y(t,F),P=!0,N||(R=[K(s,"change",q),K(l,"click",fn(e[17])),K(t,"click",J),K(t,"keydown",G)],N=!0)},p(B,U){e=B,(!P||U[0]&8&&o!==(o="checkbox_"+e[31].id))&&p(s,"id",o),(!P||U[0]&24&&r!==(r=e[4][e[31].id]))&&(s.checked=r),(!P||U[0]&8&&f!==(f="checkbox_"+e[31].id))&&p(u,"for",f);const ae={};U[0]&8&&(ae.level=e[31].level),m.$set(ae),(!P||U[0]&8)&&S!==(S=e[31].message+"")&&le(T,S),e[33].length?W?W.p(e,U):(W=ef(e),W.c(),W.m(_,null)):W&&(W.d(1),W=null);const x={};U[0]&8&&(x.date=e[31].created),O.$set(x)},i(B){P||(A(m.$$.fragment,B),A(O.$$.fragment,B),P=!0)},o(B){I(m.$$.fragment,B),I(O.$$.fragment,B),P=!1},d(B){B&&v(t),z(m),W&&W.d(),z(O),N=!1,we(R)}}}function Yv(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S=[],T=new Map,$;function C(G,B){return G[7]?qv:Rv}let D=C(n),O=D(n);function E(G){n[19](G)}let L={disable:!0,class:"col-field-level min-width",name:"level",$$slots:{default:[jv]},$$scope:{ctx:n}};n[1]!==void 0&&(L.sort=n[1]),o=new $n({props:L}),te.push(()=>be(o,"sort",E));function F(G){n[20](G)}let P={disable:!0,class:"col-type-text col-field-message",name:"data",$$slots:{default:[Hv]},$$scope:{ctx:n}};n[1]!==void 0&&(P.sort=n[1]),u=new $n({props:P}),te.push(()=>be(u,"sort",F));function N(G){n[21](G)}let R={disable:!0,class:"col-type-date col-field-created",name:"created",$$slots:{default:[zv]},$$scope:{ctx:n}};n[1]!==void 0&&(R.sort=n[1]),d=new $n({props:R}),te.push(()=>be(d,"sort",N));let q=pe(n[3]);const W=G=>G[31].id;for(let G=0;Gr=!1)),o.$set(U);const ae={};B[1]&256&&(ae.$$scope={dirty:B,ctx:G}),!f&&B[0]&2&&(f=!0,ae.sort=G[1],ye(()=>f=!1)),u.$set(ae);const x={};B[1]&256&&(x.$$scope={dirty:B,ctx:G}),!m&&B[0]&2&&(m=!0,x.sort=G[1],ye(()=>m=!1)),d.$set(x),B[0]&9369&&(q=pe(G[3]),oe(),S=dt(S,B,W,1,G,q,T,k,Lt,nf,null,Gu),re(),!q.length&&J?J.p(G,B):q.length?J&&(J.d(1),J=null):(J=Qu(G),J.c(),J.m(k,null))),(!$||B[0]&128)&&ee(e,"table-loading",G[7])},i(G){if(!$){A(o.$$.fragment,G),A(u.$$.fragment,G),A(d.$$.fragment,G);for(let B=0;BLoad more',p(t,"type","button"),p(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[7]),ee(t,"btn-disabled",n[7]),p(e,"class","block txt-center m-t-sm")},m(s,o){w(s,e,o),y(e,t),i||(l=K(t,"click",n[26]),i=!0)},p(s,o){o[0]&128&&ee(t,"btn-loading",s[7]),o[0]&128&&ee(t,"btn-disabled",s[7])},d(s){s&&v(e),i=!1,l()}}}function sf(n){let e,t,i,l,s,o,r=n[5]===1?"log":"logs",a,u,f,c,d,m,h,_,g,k,S;return{c(){e=b("div"),t=b("div"),i=Y("Selected "),l=b("strong"),s=Y(n[5]),o=M(),a=Y(r),u=M(),f=b("button"),f.innerHTML='Reset',c=M(),d=b("div"),m=M(),h=b("button"),h.innerHTML='Download as JSON',p(t,"class","txt"),p(f,"type","button"),p(f,"class","btn btn-xs btn-transparent btn-outline p-l-5 p-r-5"),p(d,"class","flex-fill"),p(h,"type","button"),p(h,"class","btn btn-sm"),p(e,"class","bulkbar svelte-91v05h")},m(T,$){w(T,e,$),y(e,t),y(t,i),y(t,l),y(l,s),y(t,o),y(t,a),y(e,u),y(e,f),y(e,c),y(e,d),y(e,m),y(e,h),g=!0,k||(S=[K(f,"click",n[27]),K(h,"click",n[14])],k=!0)},p(T,$){(!g||$[0]&32)&&le(s,T[5]),(!g||$[0]&32)&&r!==(r=T[5]===1?"log":"logs")&&le(a,r)},i(T){g||(T&&Ke(()=>{g&&(_||(_=Pe(e,jn,{duration:150,y:5},!0)),_.run(1))}),g=!0)},o(T){T&&(_||(_=Pe(e,jn,{duration:150,y:5},!1)),_.run(0)),g=!1},d(T){T&&v(e),T&&_&&_.end(),k=!1,we(S)}}}function Kv(n){let e,t,i,l,s;e=new Xo({props:{class:"table-wrapper",$$slots:{default:[Yv]},$$scope:{ctx:n}}});let o=n[3].length&&n[9]&&lf(n),r=n[5]&&sf(n);return{c(){V(e.$$.fragment),t=M(),o&&o.c(),i=M(),r&&r.c(),l=ke()},m(a,u){H(e,a,u),w(a,t,u),o&&o.m(a,u),w(a,i,u),r&&r.m(a,u),w(a,l,u),s=!0},p(a,u){const f={};u[0]&411|u[1]&256&&(f.$$scope={dirty:u,ctx:a}),e.$set(f),a[3].length&&a[9]?o?o.p(a,u):(o=lf(a),o.c(),o.m(i.parentNode,i)):o&&(o.d(1),o=null),a[5]?r?(r.p(a,u),u[0]&32&&A(r,1)):(r=sf(a),r.c(),A(r,1),r.m(l.parentNode,l)):r&&(oe(),I(r,1,1,()=>{r=null}),re())},i(a){s||(A(e.$$.fragment,a),A(r),s=!0)},o(a){I(e.$$.fragment,a),I(r),s=!1},d(a){a&&(v(t),v(i),v(l)),z(e,a),o&&o.d(a),r&&r.d(a)}}}const of=50,mr=/[-:\. ]/gi;function Jv(n){let e=[];if(!n.data)return e;if(n.data.type=="request"){const t=["status","execTime","auth","userIp"];for(let i of t)typeof n.data[i]<"u"&&e.push({key:i});n.data.referer&&!n.data.referer.includes(window.location.host)&&e.push({key:"referer"})}else{const t=Object.keys(n.data);for(const i of t)i!="error"&&i!="details"&&e.length<6&&e.push({key:i})}return n.data.error&&e.push({key:"error",label:"label-danger"}),n.data.details&&e.push({key:"details",label:"label-warning"}),e}function Zv(n,e,t){let i,l,s;const o=ot();let{filter:r=""}=e,{presets:a=""}=e,{sort:u="-rowid"}=e,f=[],c=1,d=0,m=!1,h=0,_={};async function g(B=1,U=!0){t(7,m=!0);const ae=[a,j.normalizeLogsFilter(r)].filter(Boolean).join("&&");return fe.logs.getList(B,of,{sort:u,skipTotal:1,filter:ae}).then(async x=>{if(B<=1&&k(),t(7,m=!1),t(6,c=x.page),t(16,d=x.items.length),o("load",f.concat(x.items)),U){const se=++h;for(;x.items.length&&h==se;){const De=x.items.splice(0,10);for(let je of De)j.pushOrReplaceByKey(f,je);t(3,f),await j.yieldToMain()}}else{for(let se of x.items)j.pushOrReplaceByKey(f,se);t(3,f)}}).catch(x=>{x!=null&&x.isAbort||(t(7,m=!1),console.warn(x),k(),fe.error(x,!ae||(x==null?void 0:x.status)!=400))})}function k(){t(3,f=[]),t(4,_={}),t(6,c=1),t(16,d=0)}function S(){s?T():$()}function T(){t(4,_={})}function $(){for(const B of f)t(4,_[B.id]=B,_);t(4,_)}function C(B){_[B.id]?delete _[B.id]:t(4,_[B.id]=B,_),t(4,_)}function D(){const B=Object.values(_).sort((x,se)=>x.createdse.created?-1:0);if(!B.length)return;if(B.length==1)return j.downloadJson(B[0],"log_"+B[0].created.replaceAll(mr,"")+".json");const U=B[0].created.replaceAll(mr,""),ae=B[B.length-1].created.replaceAll(mr,"");return j.downloadJson(B,`${B.length}_logs_${ae}_to_${U}.json`)}function O(B){Ae.call(this,n,B)}const E=()=>S();function L(B){u=B,t(1,u)}function F(B){u=B,t(1,u)}function P(B){u=B,t(1,u)}const N=B=>C(B),R=B=>o("select",B),q=(B,U)=>{U.code==="Enter"&&(U.preventDefault(),o("select",B))},W=()=>t(0,r=""),J=()=>g(c+1),G=()=>T();return n.$$set=B=>{"filter"in B&&t(0,r=B.filter),"presets"in B&&t(15,a=B.presets),"sort"in B&&t(1,u=B.sort)},n.$$.update=()=>{n.$$.dirty[0]&32771&&(typeof u<"u"||typeof r<"u"||typeof a<"u")&&(k(),g(1)),n.$$.dirty[0]&65536&&t(9,i=d>=of),n.$$.dirty[0]&16&&t(5,l=Object.keys(_).length),n.$$.dirty[0]&40&&t(8,s=f.length&&l===f.length)},[r,u,g,f,_,l,c,m,s,i,o,S,T,C,D,a,d,O,E,L,F,P,N,R,q,W,J,G]}class Gv extends ge{constructor(e){super(),_e(this,e,Zv,Kv,he,{filter:0,presets:15,sort:1,load:2},null,[-1,-1])}get load(){return this.$$.ctx[2]}}/*! +`)})},i(a){s||(a&&Ke(()=>{s&&(l||(l=Pe(t,Yt,{duration:150,start:.7},!0)),l.run(1))}),s=!0)},o(a){a&&(l||(l=Pe(t,Yt,{duration:150,start:.7},!1)),l.run(0)),s=!1},d(a){a&&v(e),a&&l&&l.end(),o=!1,r()}}}function Bu(n){let e,t,i=Co(n[12])+"",l,s,o,r;return{c(){e=b("div"),t=b("pre"),l=Y(i),s=M(),p(e,"class","help-block help-block-error")},m(a,u){w(a,e,u),y(e,t),y(t,l),y(e,s),r=!0},p(a,u){(!r||u&8)&&i!==(i=Co(a[12])+"")&&le(l,i)},i(a){r||(a&&Ke(()=>{r&&(o||(o=Pe(e,et,{duration:150},!0)),o.run(1))}),r=!0)},o(a){a&&(o||(o=Pe(e,et,{duration:150},!1)),o.run(0)),r=!1},d(a){a&&v(e),a&&o&&o.end()}}}function uv(n){let e,t,i,l,s,o,r;const a=n[9].default,u=kt(a,n,n[8],Vu),f=[av,rv],c=[];function d(m,h){return m[0]&&m[3].length?0:1}return i=d(n),l=c[i]=f[i](n),{c(){e=b("div"),u&&u.c(),t=M(),l.c(),p(e,"class",n[1]),ee(e,"error",n[3].length)},m(m,h){w(m,e,h),u&&u.m(e,null),y(e,t),c[i].m(e,null),n[11](e),s=!0,o||(r=K(e,"click",n[10]),o=!0)},p(m,[h]){u&&u.p&&(!s||h&256)&&wt(u,a,m,m[8],s?vt(a,m[8],h,ov):St(m[8]),Vu);let _=i;i=d(m),i===_?c[i].p(m,h):(oe(),I(c[_],1,1,()=>{c[_]=null}),re(),l=c[i],l?l.p(m,h):(l=c[i]=f[i](m),l.c()),A(l,1),l.m(e,null)),(!s||h&2)&&p(e,"class",m[1]),(!s||h&10)&&ee(e,"error",m[3].length)},i(m){s||(A(u,m),A(l),s=!0)},o(m){I(u,m),I(l),s=!1},d(m){m&&v(e),u&&u.d(m),c[i].d(),n[11](null),o=!1,r()}}}const Uu="Invalid value";function Co(n){return typeof n=="object"?(n==null?void 0:n.message)||(n==null?void 0:n.code)||Uu:n||Uu}function fv(n,e,t){let i;We(n,_i,_=>t(7,i=_));let{$$slots:l={},$$scope:s}=e;const o="field_"+j.randomString(7);let{name:r=""}=e,{inlineError:a=!1}=e,{class:u=void 0}=e,f,c=[];function d(){ii(r)}Vt(()=>(f.addEventListener("input",d),f.addEventListener("change",d),()=>{f.removeEventListener("input",d),f.removeEventListener("change",d)}));function m(_){Ae.call(this,n,_)}function h(_){te[_?"unshift":"push"](()=>{f=_,t(2,f)})}return n.$$set=_=>{"name"in _&&t(5,r=_.name),"inlineError"in _&&t(0,a=_.inlineError),"class"in _&&t(1,u=_.class),"$$scope"in _&&t(8,s=_.$$scope)},n.$$.update=()=>{n.$$.dirty&160&&t(3,c=j.toArray(j.getNestedVal(i,r)))},[a,u,f,c,o,r,d,i,s,l,m,h]}class me extends ge{constructor(e){super(),_e(this,e,fv,uv,he,{name:5,inlineError:0,class:1,changed:6})}get changed(){return this.$$.ctx[6]}}function cv(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Email"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","email"),p(s,"autocomplete","off"),p(s,"id",o=n[9]),s.required=!0,s.autofocus=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0]),s.focus(),r||(a=K(s,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&s.value!==u[0]&&ue(s,u[0])},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function dv(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=Y("Password"),l=M(),s=b("input"),r=M(),a=b("div"),a.textContent="Minimum 10 characters.",p(e,"for",i=n[9]),p(s,"type","password"),p(s,"autocomplete","new-password"),p(s,"minlength","10"),p(s,"id",o=n[9]),s.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),y(e,t),w(c,l,d),w(c,s,d),ue(s,n[1]),w(c,r,d),w(c,a,d),u||(f=K(s,"input",n[6]),u=!0)},p(c,d){d&512&&i!==(i=c[9])&&p(e,"for",i),d&512&&o!==(o=c[9])&&p(s,"id",o),d&2&&s.value!==c[1]&&ue(s,c[1])},d(c){c&&(v(e),v(l),v(s),v(r),v(a)),u=!1,f()}}}function pv(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Password confirm"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","password"),p(s,"minlength","10"),p(s,"id",o=n[9]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[2]),r||(a=K(s,"input",n[7]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&4&&s.value!==u[2]&&ue(s,u[2])},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function mv(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return l=new me({props:{class:"form-field required",name:"email",$$slots:{default:[cv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:"password",$$slots:{default:[dv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),a=new me({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[pv,({uniqueId:h})=>({9:h}),({uniqueId:h})=>h?512:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),t=b("div"),t.innerHTML="

Create your first admin account in order to continue

",i=M(),V(l.$$.fragment),s=M(),V(o.$$.fragment),r=M(),V(a.$$.fragment),u=M(),f=b("button"),f.innerHTML='Create and login ',p(t,"class","content txt-center m-b-base"),p(f,"type","submit"),p(f,"class","btn btn-lg btn-block btn-next"),ee(f,"btn-disabled",n[3]),ee(f,"btn-loading",n[3]),p(e,"class","block"),p(e,"autocomplete","off")},m(h,_){w(h,e,_),y(e,t),y(e,i),H(l,e,null),y(e,s),H(o,e,null),y(e,r),H(a,e,null),y(e,u),y(e,f),c=!0,d||(m=K(e,"submit",Ye(n[4])),d=!0)},p(h,[_]){const g={};_&1537&&(g.$$scope={dirty:_,ctx:h}),l.$set(g);const k={};_&1538&&(k.$$scope={dirty:_,ctx:h}),o.$set(k);const S={};_&1540&&(S.$$scope={dirty:_,ctx:h}),a.$set(S),(!c||_&8)&&ee(f,"btn-disabled",h[3]),(!c||_&8)&&ee(f,"btn-loading",h[3])},i(h){c||(A(l.$$.fragment,h),A(o.$$.fragment,h),A(a.$$.fragment,h),c=!0)},o(h){I(l.$$.fragment,h),I(o.$$.fragment,h),I(a.$$.fragment,h),c=!1},d(h){h&&v(e),z(l),z(o),z(a),d=!1,m()}}}function hv(n,e,t){const i=ot();let l="",s="",o="",r=!1;async function a(){if(!r){t(3,r=!0);try{await fe.admins.create({email:l,password:s,passwordConfirm:o}),await fe.admins.authWithPassword(l,s),i("submit")}catch(d){fe.error(d)}t(3,r=!1)}}function u(){l=this.value,t(0,l)}function f(){s=this.value,t(1,s)}function c(){o=this.value,t(2,o)}return[l,s,o,r,a,u,f,c]}class _v extends ge{constructor(e){super(),_e(this,e,hv,mv,he,{})}}function Wu(n){let e,t;return e=new H1({props:{$$slots:{default:[gv]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&9&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function gv(n){let e,t;return e=new _v({}),e.$on("submit",n[1]),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p:Q,i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function bv(n){let e,t,i=n[0]&&Wu(n);return{c(){i&&i.c(),e=ke()},m(l,s){i&&i.m(l,s),w(l,e,s),t=!0},p(l,[s]){l[0]?i?(i.p(l,s),s&1&&A(i,1)):(i=Wu(l),i.c(),A(i,1),i.m(e.parentNode,e)):i&&(oe(),I(i,1,1,()=>{i=null}),re())},i(l){t||(A(i),t=!0)},o(l){I(i),t=!1},d(l){l&&v(e),i&&i.d(l)}}}function yv(n,e,t){let i=!1;l();function l(){if(t(0,i=!1),new URLSearchParams(window.location.search).has("installer")){fe.logout(!1),t(0,i=!0);return}fe.authStore.isValid?nl("/collections"):fe.logout()}return[i,async()=>{t(0,i=!1),await Qt(),window.location.search=""}]}class kv extends ge{constructor(e){super(),_e(this,e,yv,bv,he,{})}}const Dt=Dn(""),Mo=Dn(""),Sl=Dn(!1);function vv(n){let e,t,i,l;return{c(){e=b("input"),p(e,"type","text"),p(e,"id",n[8]),p(e,"placeholder",t=n[0]||n[1])},m(s,o){w(s,e,o),n[13](e),ue(e,n[7]),i||(l=K(e,"input",n[14]),i=!0)},p(s,o){o&3&&t!==(t=s[0]||s[1])&&p(e,"placeholder",t),o&128&&e.value!==s[7]&&ue(e,s[7])},i:Q,o:Q,d(s){s&&v(e),n[13](null),i=!1,l()}}}function wv(n){let e,t,i,l;function s(a){n[12](a)}var o=n[4];function r(a,u){let f={id:a[8],singleLine:!0,disableRequestKeys:!0,disableIndirectCollectionsKeys:!0,extraAutocompleteKeys:a[3],baseCollection:a[2],placeholder:a[0]||a[1]};return a[7]!==void 0&&(f.value=a[7]),{props:f}}return o&&(e=Ot(o,r(n)),te.push(()=>be(e,"value",s)),e.$on("submit",n[10])),{c(){e&&V(e.$$.fragment),i=ke()},m(a,u){e&&H(e,a,u),w(a,i,u),l=!0},p(a,u){if(u&16&&o!==(o=a[4])){if(e){oe();const f=e;I(f.$$.fragment,1,0,()=>{z(f,1)}),re()}o?(e=Ot(o,r(a)),te.push(()=>be(e,"value",s)),e.$on("submit",a[10]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,i.parentNode,i)):e=null}else if(o){const f={};u&8&&(f.extraAutocompleteKeys=a[3]),u&4&&(f.baseCollection=a[2]),u&3&&(f.placeholder=a[0]||a[1]),!t&&u&128&&(t=!0,f.value=a[7],ye(()=>t=!1)),e.$set(f)}},i(a){l||(e&&A(e.$$.fragment,a),l=!0)},o(a){e&&I(e.$$.fragment,a),l=!1},d(a){a&&v(i),e&&z(e,a)}}}function Yu(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Search',p(e,"type","submit"),p(e,"class","btn btn-expanded-sm btn-sm btn-warning")},m(l,s){w(l,e,s),i=!0},i(l){i||(l&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,x:5},!0)),t.run(1))}),i=!0)},o(l){l&&(t||(t=Pe(e,jn,{duration:150,x:5},!1)),t.run(0)),i=!1},d(l){l&&v(e),l&&t&&t.end()}}}function Ku(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Clear',p(e,"type","button"),p(e,"class","btn btn-transparent btn-sm btn-hint p-l-xs p-r-xs m-l-10")},m(o,r){w(o,e,r),i=!0,l||(s=K(e,"click",n[15]),l=!0)},p:Q,i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,x:5},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,jn,{duration:150,x:5},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function Sv(n){let e,t,i,l,s,o,r,a,u,f,c;const d=[wv,vv],m=[];function h(k,S){return k[4]&&!k[5]?0:1}s=h(n),o=m[s]=d[s](n);let _=(n[0].length||n[7].length)&&n[7]!=n[0]&&Yu(),g=(n[0].length||n[7].length)&&Ku(n);return{c(){e=b("form"),t=b("label"),i=b("i"),l=M(),o.c(),r=M(),_&&_.c(),a=M(),g&&g.c(),p(i,"class","ri-search-line"),p(t,"for",n[8]),p(t,"class","m-l-10 txt-xl"),p(e,"class","searchbar")},m(k,S){w(k,e,S),y(e,t),y(t,i),y(e,l),m[s].m(e,null),y(e,r),_&&_.m(e,null),y(e,a),g&&g.m(e,null),u=!0,f||(c=[K(e,"click",fn(n[11])),K(e,"submit",Ye(n[10]))],f=!0)},p(k,[S]){let T=s;s=h(k),s===T?m[s].p(k,S):(oe(),I(m[T],1,1,()=>{m[T]=null}),re(),o=m[s],o?o.p(k,S):(o=m[s]=d[s](k),o.c()),A(o,1),o.m(e,r)),(k[0].length||k[7].length)&&k[7]!=k[0]?_?S&129&&A(_,1):(_=Yu(),_.c(),A(_,1),_.m(e,a)):_&&(oe(),I(_,1,1,()=>{_=null}),re()),k[0].length||k[7].length?g?(g.p(k,S),S&129&&A(g,1)):(g=Ku(k),g.c(),A(g,1),g.m(e,null)):g&&(oe(),I(g,1,1,()=>{g=null}),re())},i(k){u||(A(o),A(_),A(g),u=!0)},o(k){I(o),I(_),I(g),u=!1},d(k){k&&v(e),m[s].d(),_&&_.d(),g&&g.d(),f=!1,we(c)}}}function $v(n,e,t){const i=ot(),l="search_"+j.randomString(7);let{value:s=""}=e,{placeholder:o='Search term or filter like created > "2022-01-01"...'}=e,{autocompleteCollection:r=j.initCollection()}=e,{extraAutocompleteKeys:a=[]}=e,u,f=!1,c,d="";function m(C=!0){t(7,d=""),C&&(c==null||c.focus()),i("clear")}function h(){t(0,s=d),i("submit",s)}async function _(){u||f||(t(5,f=!0),t(4,u=(await rt(()=>import("./FilterAutocompleteInput-a4e1e466.js"),["./FilterAutocompleteInput-a4e1e466.js","./index-9ee652b3.js"],import.meta.url)).default),t(5,f=!1))}Vt(()=>{_()});function g(C){Ae.call(this,n,C)}function k(C){d=C,t(7,d),t(0,s)}function S(C){te[C?"unshift":"push"](()=>{c=C,t(6,c)})}function T(){d=this.value,t(7,d),t(0,s)}const $=()=>{m(!1),h()};return n.$$set=C=>{"value"in C&&t(0,s=C.value),"placeholder"in C&&t(1,o=C.placeholder),"autocompleteCollection"in C&&t(2,r=C.autocompleteCollection),"extraAutocompleteKeys"in C&&t(3,a=C.extraAutocompleteKeys)},n.$$.update=()=>{n.$$.dirty&1&&typeof s=="string"&&t(7,d=s)},[s,o,r,a,u,f,c,d,l,m,h,g,k,S,T,$]}class Ms extends ge{constructor(e){super(),_e(this,e,$v,Sv,he,{value:0,placeholder:1,autocompleteCollection:2,extraAutocompleteKeys:3})}}function Tv(n){let e,t,i,l,s,o;return{c(){e=b("button"),t=b("i"),p(t,"class","ri-refresh-line svelte-1bvelc2"),p(e,"type","button"),p(e,"aria-label","Refresh"),p(e,"class",i="btn btn-transparent btn-circle "+n[1]+" svelte-1bvelc2"),ee(e,"refreshing",n[2])},m(r,a){w(r,e,a),y(e,t),s||(o=[ve(l=Le.call(null,e,n[0])),K(e,"click",n[3])],s=!0)},p(r,[a]){a&2&&i!==(i="btn btn-transparent btn-circle "+r[1]+" svelte-1bvelc2")&&p(e,"class",i),l&&$t(l.update)&&a&1&&l.update.call(null,r[0]),a&6&&ee(e,"refreshing",r[2])},i:Q,o:Q,d(r){r&&v(e),s=!1,we(o)}}}function Cv(n,e,t){const i=ot();let{tooltip:l={text:"Refresh",position:"right"}}=e,{class:s=""}=e,o=null;function r(){i("refresh");const a=l;t(0,l=null),clearTimeout(o),t(2,o=setTimeout(()=>{t(2,o=null),t(0,l=a)},150))}return Vt(()=>()=>clearTimeout(o)),n.$$set=a=>{"tooltip"in a&&t(0,l=a.tooltip),"class"in a&&t(1,s=a.class)},[l,s,o,r]}class Go extends ge{constructor(e){super(),_e(this,e,Cv,Tv,he,{tooltip:0,class:1})}}function Mv(n){let e,t,i,l,s;const o=n[6].default,r=kt(o,n,n[5],null);return{c(){e=b("th"),r&&r.c(),p(e,"tabindex","0"),p(e,"title",n[2]),p(e,"class",t="col-sort "+n[1]),ee(e,"col-sort-disabled",n[3]),ee(e,"sort-active",n[0]==="-"+n[2]||n[0]==="+"+n[2]),ee(e,"sort-desc",n[0]==="-"+n[2]),ee(e,"sort-asc",n[0]==="+"+n[2])},m(a,u){w(a,e,u),r&&r.m(e,null),i=!0,l||(s=[K(e,"click",n[7]),K(e,"keydown",n[8])],l=!0)},p(a,[u]){r&&r.p&&(!i||u&32)&&wt(r,o,a,a[5],i?vt(o,a[5],u,null):St(a[5]),null),(!i||u&4)&&p(e,"title",a[2]),(!i||u&2&&t!==(t="col-sort "+a[1]))&&p(e,"class",t),(!i||u&10)&&ee(e,"col-sort-disabled",a[3]),(!i||u&7)&&ee(e,"sort-active",a[0]==="-"+a[2]||a[0]==="+"+a[2]),(!i||u&7)&&ee(e,"sort-desc",a[0]==="-"+a[2]),(!i||u&7)&&ee(e,"sort-asc",a[0]==="+"+a[2])},i(a){i||(A(r,a),i=!0)},o(a){I(r,a),i=!1},d(a){a&&v(e),r&&r.d(a),l=!1,we(s)}}}function Ov(n,e,t){let{$$slots:i={},$$scope:l}=e,{class:s=""}=e,{name:o}=e,{sort:r=""}=e,{disable:a=!1}=e;function u(){a||("-"+o===r?t(0,r="+"+o):t(0,r="-"+o))}const f=()=>u(),c=d=>{(d.code==="Enter"||d.code==="Space")&&(d.preventDefault(),u())};return n.$$set=d=>{"class"in d&&t(1,s=d.class),"name"in d&&t(2,o=d.name),"sort"in d&&t(0,r=d.sort),"disable"in d&&t(3,a=d.disable),"$$scope"in d&&t(5,l=d.$$scope)},[r,s,o,a,u,l,i,f,c]}class $n extends ge{constructor(e){super(),_e(this,e,Ov,Mv,he,{class:1,name:2,sort:0,disable:3})}}const Dv=n=>({}),Ju=n=>({}),Ev=n=>({}),Zu=n=>({});function Av(n){let e,t,i,l,s,o,r,a;const u=n[11].before,f=kt(u,n,n[10],Zu),c=n[11].default,d=kt(c,n,n[10],null),m=n[11].after,h=kt(m,n,n[10],Ju);return{c(){e=b("div"),f&&f.c(),t=M(),i=b("div"),d&&d.c(),s=M(),h&&h.c(),p(i,"class",l="scroller "+n[0]+" "+n[3]+" svelte-3a0gfs"),p(e,"class","scroller-wrapper svelte-3a0gfs")},m(_,g){w(_,e,g),f&&f.m(e,null),y(e,t),y(e,i),d&&d.m(i,null),n[12](i),y(e,s),h&&h.m(e,null),o=!0,r||(a=[K(window,"resize",n[1]),K(i,"scroll",n[1])],r=!0)},p(_,[g]){f&&f.p&&(!o||g&1024)&&wt(f,u,_,_[10],o?vt(u,_[10],g,Ev):St(_[10]),Zu),d&&d.p&&(!o||g&1024)&&wt(d,c,_,_[10],o?vt(c,_[10],g,null):St(_[10]),null),(!o||g&9&&l!==(l="scroller "+_[0]+" "+_[3]+" svelte-3a0gfs"))&&p(i,"class",l),h&&h.p&&(!o||g&1024)&&wt(h,m,_,_[10],o?vt(m,_[10],g,Dv):St(_[10]),Ju)},i(_){o||(A(f,_),A(d,_),A(h,_),o=!0)},o(_){I(f,_),I(d,_),I(h,_),o=!1},d(_){_&&v(e),f&&f.d(_),d&&d.d(_),n[12](null),h&&h.d(_),r=!1,we(a)}}}function Iv(n,e,t){let{$$slots:i={},$$scope:l}=e;const s=ot();let{class:o=""}=e,{vThreshold:r=0}=e,{hThreshold:a=0}=e,{dispatchOnNoScroll:u=!0}=e,f=null,c="",d=null,m,h,_,g,k;function S(){f&&t(2,f.scrollTop=0,f)}function T(){f&&t(2,f.scrollLeft=0,f)}function $(){f&&(t(3,c=""),_=f.clientWidth+2,g=f.clientHeight+2,m=f.scrollWidth-_,h=f.scrollHeight-g,h>0?(t(3,c+=" v-scroll"),r>=g&&t(4,r=0),f.scrollTop-r<=0&&(t(3,c+=" v-scroll-start"),s("vScrollStart")),f.scrollTop+r>=h&&(t(3,c+=" v-scroll-end"),s("vScrollEnd"))):u&&s("vScrollEnd"),m>0?(t(3,c+=" h-scroll"),a>=_&&t(5,a=0),f.scrollLeft-a<=0&&(t(3,c+=" h-scroll-start"),s("hScrollStart")),f.scrollLeft+a>=m&&(t(3,c+=" h-scroll-end"),s("hScrollEnd"))):u&&s("hScrollEnd"))}function C(){d||(d=setTimeout(()=>{$(),d=null},150))}Vt(()=>(C(),k=new MutationObserver(C),k.observe(f,{attributeFilter:["width","height"],childList:!0,subtree:!0}),()=>{k==null||k.disconnect(),clearTimeout(d)}));function D(O){te[O?"unshift":"push"](()=>{f=O,t(2,f)})}return n.$$set=O=>{"class"in O&&t(0,o=O.class),"vThreshold"in O&&t(4,r=O.vThreshold),"hThreshold"in O&&t(5,a=O.hThreshold),"dispatchOnNoScroll"in O&&t(6,u=O.dispatchOnNoScroll),"$$scope"in O&&t(10,l=O.$$scope)},[o,C,f,c,r,a,u,S,T,$,l,i,D]}class Xo extends ge{constructor(e){super(),_e(this,e,Iv,Av,he,{class:0,vThreshold:4,hThreshold:5,dispatchOnNoScroll:6,resetVerticalScroll:7,resetHorizontalScroll:8,refresh:9,throttleRefresh:1})}get resetVerticalScroll(){return this.$$.ctx[7]}get resetHorizontalScroll(){return this.$$.ctx[8]}get refresh(){return this.$$.ctx[9]}get throttleRefresh(){return this.$$.ctx[1]}}function Lv(n){let e,t,i=(n[1]||"UNKN")+"",l,s,o,r,a;return{c(){e=b("div"),t=b("span"),l=Y(i),s=Y(" ("),o=Y(n[0]),r=Y(")"),p(t,"class","txt"),p(e,"class",a="label log-level-label level-"+n[0]+" svelte-ha6hme")},m(u,f){w(u,e,f),y(e,t),y(t,l),y(t,s),y(t,o),y(t,r)},p(u,[f]){f&2&&i!==(i=(u[1]||"UNKN")+"")&&le(l,i),f&1&&le(o,u[0]),f&1&&a!==(a="label log-level-label level-"+u[0]+" svelte-ha6hme")&&p(e,"class",a)},i:Q,o:Q,d(u){u&&v(e)}}}function Pv(n,e,t){let i,{level:l}=e;return n.$$set=s=>{"level"in s&&t(0,l=s.level)},n.$$.update=()=>{var s;n.$$.dirty&1&&t(1,i=(s=R1.find(o=>o.level==l))==null?void 0:s.label)},[l,i]}class V1 extends ge{constructor(e){super(),_e(this,e,Pv,Lv,he,{level:0})}}function Nv(n){let e,t=n[0].replace("Z"," UTC")+"",i,l,s;return{c(){e=b("span"),i=Y(t),p(e,"class","txt-nowrap")},m(o,r){w(o,e,r),y(e,i),l||(s=ve(Le.call(null,e,n[1])),l=!0)},p(o,[r]){r&1&&t!==(t=o[0].replace("Z"," UTC")+"")&&le(i,t)},i:Q,o:Q,d(o){o&&v(e),l=!1,s()}}}function Fv(n,e,t){let{date:i}=e;const l={get text(){return j.formatToLocalDate(i,"yyyy-MM-dd HH:mm:ss.SSS")+" Local"}};return n.$$set=s=>{"date"in s&&t(0,i=s.date)},[i,l]}class B1 extends ge{constructor(e){super(),_e(this,e,Fv,Nv,he,{date:0})}}function Gu(n,e,t){var o;const i=n.slice();i[31]=e[t];const l=((o=i[31].data)==null?void 0:o.type)=="request";i[32]=l;const s=Jv(i[31]);return i[33]=s,i}function Xu(n,e,t){const i=n.slice();return i[36]=e[t],i}function Rv(n){let e,t,i,l,s,o,r;return{c(){e=b("div"),t=b("input"),l=M(),s=b("label"),p(t,"type","checkbox"),p(t,"id","checkbox_0"),t.disabled=i=!n[3].length,t.checked=n[8],p(s,"for","checkbox_0"),p(e,"class","form-field")},m(a,u){w(a,e,u),y(e,t),y(e,l),y(e,s),o||(r=K(t,"change",n[18]),o=!0)},p(a,u){u[0]&8&&i!==(i=!a[3].length)&&(t.disabled=i),u[0]&256&&(t.checked=a[8])},d(a){a&&v(e),o=!1,r()}}}function qv(n){let e;return{c(){e=b("span"),p(e,"class","loader loader-sm")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function jv(n){let e;return{c(){e=b("div"),e.innerHTML=' level',p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function Hv(n){let e;return{c(){e=b("div"),e.innerHTML=' message',p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function zv(n){let e;return{c(){e=b("div"),e.innerHTML=` created`,p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function Qu(n){let e;function t(s,o){return s[7]?Bv:Vv}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function Vv(n){var r;let e,t,i,l,s,o=((r=n[0])==null?void 0:r.length)&&xu(n);return{c(){e=b("tr"),t=b("td"),i=b("h6"),i.textContent="No logs found.",l=M(),o&&o.c(),s=M(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),y(e,t),y(t,i),y(t,l),o&&o.m(t,null),y(e,s)},p(a,u){var f;(f=a[0])!=null&&f.length?o?o.p(a,u):(o=xu(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&v(e),o&&o.d()}}}function Bv(n){let e;return{c(){e=b("tr"),e.innerHTML=' '},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function xu(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Clear filters',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[25]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function ef(n){let e,t=pe(n[33]),i=[];for(let l=0;l',F=M(),p(s,"type","checkbox"),p(s,"id",o="checkbox_"+e[31].id),s.checked=r=e[4][e[31].id],p(u,"for",f="checkbox_"+e[31].id),p(l,"class","form-field"),p(i,"class","bulk-select-col min-width"),p(d,"class","col-type-text col-field-level min-width svelte-91v05h"),p(k,"class","txt-ellipsis"),p(g,"class","flex flex-gap-10"),p(_,"class","col-type-text col-field-message svelte-91v05h"),p(D,"class","col-type-date col-field-created"),p(L,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(B,U){w(B,t,U),y(t,i),y(i,l),y(l,s),y(l,a),y(l,u),y(t,c),y(t,d),H(m,d,null),y(t,h),y(t,_),y(_,g),y(g,k),y(k,T),y(_,$),W&&W.m(_,null),y(t,C),y(t,D),H(O,D,null),y(t,E),y(t,L),y(t,F),P=!0,N||(R=[K(s,"change",q),K(l,"click",fn(e[17])),K(t,"click",J),K(t,"keydown",G)],N=!0)},p(B,U){e=B,(!P||U[0]&8&&o!==(o="checkbox_"+e[31].id))&&p(s,"id",o),(!P||U[0]&24&&r!==(r=e[4][e[31].id]))&&(s.checked=r),(!P||U[0]&8&&f!==(f="checkbox_"+e[31].id))&&p(u,"for",f);const ae={};U[0]&8&&(ae.level=e[31].level),m.$set(ae),(!P||U[0]&8)&&S!==(S=e[31].message+"")&&le(T,S),e[33].length?W?W.p(e,U):(W=ef(e),W.c(),W.m(_,null)):W&&(W.d(1),W=null);const x={};U[0]&8&&(x.date=e[31].created),O.$set(x)},i(B){P||(A(m.$$.fragment,B),A(O.$$.fragment,B),P=!0)},o(B){I(m.$$.fragment,B),I(O.$$.fragment,B),P=!1},d(B){B&&v(t),z(m),W&&W.d(),z(O),N=!1,we(R)}}}function Yv(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S=[],T=new Map,$;function C(G,B){return G[7]?qv:Rv}let D=C(n),O=D(n);function E(G){n[19](G)}let L={disable:!0,class:"col-field-level min-width",name:"level",$$slots:{default:[jv]},$$scope:{ctx:n}};n[1]!==void 0&&(L.sort=n[1]),o=new $n({props:L}),te.push(()=>be(o,"sort",E));function F(G){n[20](G)}let P={disable:!0,class:"col-type-text col-field-message",name:"data",$$slots:{default:[Hv]},$$scope:{ctx:n}};n[1]!==void 0&&(P.sort=n[1]),u=new $n({props:P}),te.push(()=>be(u,"sort",F));function N(G){n[21](G)}let R={disable:!0,class:"col-type-date col-field-created",name:"created",$$slots:{default:[zv]},$$scope:{ctx:n}};n[1]!==void 0&&(R.sort=n[1]),d=new $n({props:R}),te.push(()=>be(d,"sort",N));let q=pe(n[3]);const W=G=>G[31].id;for(let G=0;Gr=!1)),o.$set(U);const ae={};B[1]&256&&(ae.$$scope={dirty:B,ctx:G}),!f&&B[0]&2&&(f=!0,ae.sort=G[1],ye(()=>f=!1)),u.$set(ae);const x={};B[1]&256&&(x.$$scope={dirty:B,ctx:G}),!m&&B[0]&2&&(m=!0,x.sort=G[1],ye(()=>m=!1)),d.$set(x),B[0]&9369&&(q=pe(G[3]),oe(),S=dt(S,B,W,1,G,q,T,k,Lt,nf,null,Gu),re(),!q.length&&J?J.p(G,B):q.length?J&&(J.d(1),J=null):(J=Qu(G),J.c(),J.m(k,null))),(!$||B[0]&128)&&ee(e,"table-loading",G[7])},i(G){if(!$){A(o.$$.fragment,G),A(u.$$.fragment,G),A(d.$$.fragment,G);for(let B=0;BLoad more',p(t,"type","button"),p(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[7]),ee(t,"btn-disabled",n[7]),p(e,"class","block txt-center m-t-sm")},m(s,o){w(s,e,o),y(e,t),i||(l=K(t,"click",n[26]),i=!0)},p(s,o){o[0]&128&&ee(t,"btn-loading",s[7]),o[0]&128&&ee(t,"btn-disabled",s[7])},d(s){s&&v(e),i=!1,l()}}}function sf(n){let e,t,i,l,s,o,r=n[5]===1?"log":"logs",a,u,f,c,d,m,h,_,g,k,S;return{c(){e=b("div"),t=b("div"),i=Y("Selected "),l=b("strong"),s=Y(n[5]),o=M(),a=Y(r),u=M(),f=b("button"),f.innerHTML='Reset',c=M(),d=b("div"),m=M(),h=b("button"),h.innerHTML='Download as JSON',p(t,"class","txt"),p(f,"type","button"),p(f,"class","btn btn-xs btn-transparent btn-outline p-l-5 p-r-5"),p(d,"class","flex-fill"),p(h,"type","button"),p(h,"class","btn btn-sm"),p(e,"class","bulkbar svelte-91v05h")},m(T,$){w(T,e,$),y(e,t),y(t,i),y(t,l),y(l,s),y(t,o),y(t,a),y(e,u),y(e,f),y(e,c),y(e,d),y(e,m),y(e,h),g=!0,k||(S=[K(f,"click",n[27]),K(h,"click",n[14])],k=!0)},p(T,$){(!g||$[0]&32)&&le(s,T[5]),(!g||$[0]&32)&&r!==(r=T[5]===1?"log":"logs")&&le(a,r)},i(T){g||(T&&Ke(()=>{g&&(_||(_=Pe(e,jn,{duration:150,y:5},!0)),_.run(1))}),g=!0)},o(T){T&&(_||(_=Pe(e,jn,{duration:150,y:5},!1)),_.run(0)),g=!1},d(T){T&&v(e),T&&_&&_.end(),k=!1,we(S)}}}function Kv(n){let e,t,i,l,s;e=new Xo({props:{class:"table-wrapper",$$slots:{default:[Yv]},$$scope:{ctx:n}}});let o=n[3].length&&n[9]&&lf(n),r=n[5]&&sf(n);return{c(){V(e.$$.fragment),t=M(),o&&o.c(),i=M(),r&&r.c(),l=ke()},m(a,u){H(e,a,u),w(a,t,u),o&&o.m(a,u),w(a,i,u),r&&r.m(a,u),w(a,l,u),s=!0},p(a,u){const f={};u[0]&411|u[1]&256&&(f.$$scope={dirty:u,ctx:a}),e.$set(f),a[3].length&&a[9]?o?o.p(a,u):(o=lf(a),o.c(),o.m(i.parentNode,i)):o&&(o.d(1),o=null),a[5]?r?(r.p(a,u),u[0]&32&&A(r,1)):(r=sf(a),r.c(),A(r,1),r.m(l.parentNode,l)):r&&(oe(),I(r,1,1,()=>{r=null}),re())},i(a){s||(A(e.$$.fragment,a),A(r),s=!0)},o(a){I(e.$$.fragment,a),I(r),s=!1},d(a){a&&(v(t),v(i),v(l)),z(e,a),o&&o.d(a),r&&r.d(a)}}}const of=50,mr=/[-:\. ]/gi;function Jv(n){let e=[];if(!n.data)return e;if(n.data.type=="request"){const t=["status","execTime","auth","userIp"];for(let i of t)typeof n.data[i]<"u"&&e.push({key:i});n.data.referer&&!n.data.referer.includes(window.location.host)&&e.push({key:"referer"})}else{const t=Object.keys(n.data);for(const i of t)i!="error"&&i!="details"&&e.length<6&&e.push({key:i})}return n.data.error&&e.push({key:"error",label:"label-danger"}),n.data.details&&e.push({key:"details",label:"label-warning"}),e}function Zv(n,e,t){let i,l,s;const o=ot();let{filter:r=""}=e,{presets:a=""}=e,{sort:u="-rowid"}=e,f=[],c=1,d=0,m=!1,h=0,_={};async function g(B=1,U=!0){t(7,m=!0);const ae=[a,j.normalizeLogsFilter(r)].filter(Boolean).join("&&");return fe.logs.getList(B,of,{sort:u,skipTotal:1,filter:ae}).then(async x=>{if(B<=1&&k(),t(7,m=!1),t(6,c=x.page),t(16,d=x.items.length),o("load",f.concat(x.items)),U){const se=++h;for(;x.items.length&&h==se;){const De=x.items.splice(0,10);for(let je of De)j.pushOrReplaceByKey(f,je);t(3,f),await j.yieldToMain()}}else{for(let se of x.items)j.pushOrReplaceByKey(f,se);t(3,f)}}).catch(x=>{x!=null&&x.isAbort||(t(7,m=!1),console.warn(x),k(),fe.error(x,!ae||(x==null?void 0:x.status)!=400))})}function k(){t(3,f=[]),t(4,_={}),t(6,c=1),t(16,d=0)}function S(){s?T():$()}function T(){t(4,_={})}function $(){for(const B of f)t(4,_[B.id]=B,_);t(4,_)}function C(B){_[B.id]?delete _[B.id]:t(4,_[B.id]=B,_),t(4,_)}function D(){const B=Object.values(_).sort((x,se)=>x.createdse.created?-1:0);if(!B.length)return;if(B.length==1)return j.downloadJson(B[0],"log_"+B[0].created.replaceAll(mr,"")+".json");const U=B[0].created.replaceAll(mr,""),ae=B[B.length-1].created.replaceAll(mr,"");return j.downloadJson(B,`${B.length}_logs_${ae}_to_${U}.json`)}function O(B){Ae.call(this,n,B)}const E=()=>S();function L(B){u=B,t(1,u)}function F(B){u=B,t(1,u)}function P(B){u=B,t(1,u)}const N=B=>C(B),R=B=>o("select",B),q=(B,U)=>{U.code==="Enter"&&(U.preventDefault(),o("select",B))},W=()=>t(0,r=""),J=()=>g(c+1),G=()=>T();return n.$$set=B=>{"filter"in B&&t(0,r=B.filter),"presets"in B&&t(15,a=B.presets),"sort"in B&&t(1,u=B.sort)},n.$$.update=()=>{n.$$.dirty[0]&32771&&(typeof u<"u"||typeof r<"u"||typeof a<"u")&&(k(),g(1)),n.$$.dirty[0]&65536&&t(9,i=d>=of),n.$$.dirty[0]&16&&t(5,l=Object.keys(_).length),n.$$.dirty[0]&40&&t(8,s=f.length&&l===f.length)},[r,u,g,f,_,l,c,m,s,i,o,S,T,C,D,a,d,O,E,L,F,P,N,R,q,W,J,G]}class Gv extends ge{constructor(e){super(),_e(this,e,Zv,Kv,he,{filter:0,presets:15,sort:1,load:2},null,[-1,-1])}get load(){return this.$$.ctx[2]}}/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme * (c) 2023 Jukka Kurkela @@ -45,7 +45,7 @@ var xb=Object.defineProperty;var e0=(n,e,t)=>e in n?xb(n,e,{enumerable:!0,config `),u=0;ur&&(f[d]=` `+f[d],c=m)}a[u]=f.join("")}return a.join(` `)}},n.exports&&(n.exports=t),Prism.plugins.NormalizeWhitespace=new t({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(o){var r=Prism.plugins.NormalizeWhitespace;if(!(o.settings&&o.settings["whitespace-normalization"]===!1)&&Prism.util.isActive(o.element,"whitespace-normalization",!0)){if((!o.element||!o.element.parentNode)&&o.code){o.code=r.normalize(o.code,o.settings);return}var a=o.element.parentNode;if(!(!o.code||!a||a.nodeName.toLowerCase()!=="pre")){o.settings==null&&(o.settings={});for(var u in s)if(Object.hasOwnProperty.call(s,u)){var f=s[u];if(a.hasAttribute("data-"+u))try{var c=JSON.parse(a.getAttribute("data-"+u)||"true");typeof c===f&&(o.settings[u]=c)}catch{}}for(var d=a.childNodes,m="",h="",_=!1,g=0;g>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),n.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.dart}}},string:/[\s\S]+/}},string:void 0}),n.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),n.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:e,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})})(Prism);function wS(n){let e,t,i;return{c(){e=b("div"),t=b("code"),p(t,"class","svelte-10s5tkd"),p(e,"class",i="code-wrapper prism-light "+n[0]+" svelte-10s5tkd")},m(l,s){w(l,e,s),y(e,t),t.innerHTML=n[1]},p(l,[s]){s&2&&(t.innerHTML=l[1]),s&1&&i!==(i="code-wrapper prism-light "+l[0]+" svelte-10s5tkd")&&p(e,"class",i)},i:Q,o:Q,d(l){l&&v(e)}}}function SS(n,e,t){let{class:i=""}=e,{content:l=""}=e,{language:s="javascript"}=e,o="";function r(a){return a=typeof a=="string"?a:"",a=Yl.plugins.NormalizeWhitespace.normalize(a,{"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Yl.highlight(a,Yl.languages[s]||Yl.languages.javascript,s)}return n.$$set=a=>{"class"in a&&t(0,i=a.class),"content"in a&&t(2,l=a.content),"language"in a&&t(3,s=a.language)},n.$$.update=()=>{n.$$.dirty&4&&typeof Yl<"u"&&l&&t(1,o=r(l))},[i,o,l,s]}class Ja extends ge{constructor(e){super(),_e(this,e,SS,wS,he,{class:0,content:2,language:3})}}const $S=n=>({}),Cc=n=>({}),TS=n=>({}),Mc=n=>({});function Oc(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T=n[4]&&!n[2]&&Dc(n);const $=n[19].header,C=kt($,n,n[18],Mc);let D=n[4]&&n[2]&&Ec(n);const O=n[19].default,E=kt(O,n,n[18],null),L=n[19].footer,F=kt(L,n,n[18],Cc);return{c(){e=b("div"),t=b("div"),l=M(),s=b("div"),o=b("div"),T&&T.c(),r=M(),C&&C.c(),a=M(),D&&D.c(),u=M(),f=b("div"),E&&E.c(),c=M(),d=b("div"),F&&F.c(),p(t,"class","overlay"),p(o,"class","overlay-panel-section panel-header"),p(f,"class","overlay-panel-section panel-content"),p(d,"class","overlay-panel-section panel-footer"),p(s,"class",m="overlay-panel "+n[1]+" "+n[8]),ee(s,"popup",n[2]),p(e,"class","overlay-panel-container"),ee(e,"padded",n[2]),ee(e,"active",n[0])},m(P,N){w(P,e,N),y(e,t),y(e,l),y(e,s),y(s,o),T&&T.m(o,null),y(o,r),C&&C.m(o,null),y(o,a),D&&D.m(o,null),y(s,u),y(s,f),E&&E.m(f,null),n[21](f),y(s,c),y(s,d),F&&F.m(d,null),g=!0,k||(S=[K(t,"click",Ye(n[20])),K(f,"scroll",n[22])],k=!0)},p(P,N){n=P,n[4]&&!n[2]?T?(T.p(n,N),N[0]&20&&A(T,1)):(T=Dc(n),T.c(),A(T,1),T.m(o,r)):T&&(oe(),I(T,1,1,()=>{T=null}),re()),C&&C.p&&(!g||N[0]&262144)&&wt(C,$,n,n[18],g?vt($,n[18],N,TS):St(n[18]),Mc),n[4]&&n[2]?D?D.p(n,N):(D=Ec(n),D.c(),D.m(o,null)):D&&(D.d(1),D=null),E&&E.p&&(!g||N[0]&262144)&&wt(E,O,n,n[18],g?vt(O,n[18],N,null):St(n[18]),null),F&&F.p&&(!g||N[0]&262144)&&wt(F,L,n,n[18],g?vt(L,n[18],N,$S):St(n[18]),Cc),(!g||N[0]&258&&m!==(m="overlay-panel "+n[1]+" "+n[8]))&&p(s,"class",m),(!g||N[0]&262)&&ee(s,"popup",n[2]),(!g||N[0]&4)&&ee(e,"padded",n[2]),(!g||N[0]&1)&&ee(e,"active",n[0])},i(P){g||(P&&Ke(()=>{g&&(i||(i=Pe(t,fs,{duration:Si,opacity:0},!0)),i.run(1))}),A(T),A(C,P),A(E,P),A(F,P),P&&Ke(()=>{g&&(_&&_.end(1),h=Eg(s,jn,n[2]?{duration:Si,y:-10}:{duration:Si,x:50}),h.start())}),g=!0)},o(P){P&&(i||(i=Pe(t,fs,{duration:Si,opacity:0},!1)),i.run(0)),I(T),I(C,P),I(E,P),I(F,P),h&&h.invalidate(),P&&(_=_a(s,jn,n[2]?{duration:Si,y:10}:{duration:Si,x:50})),g=!1},d(P){P&&v(e),P&&i&&i.end(),T&&T.d(),C&&C.d(P),D&&D.d(),E&&E.d(P),n[21](null),F&&F.d(P),P&&_&&_.end(),k=!1,we(S)}}}function Dc(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","overlay-close")},m(o,r){w(o,e,r),i=!0,l||(s=K(e,"click",Ye(n[5])),l=!0)},p(o,r){n=o},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,fs,{duration:Si},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,fs,{duration:Si},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function Ec(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-transparent btn-close m-l-auto")},m(l,s){w(l,e,s),t||(i=K(e,"click",Ye(n[5])),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function CS(n){let e,t,i,l,s=n[0]&&Oc(n);return{c(){e=b("div"),s&&s.c(),p(e,"class","overlay-panel-wrapper"),p(e,"tabindex","-1")},m(o,r){w(o,e,r),s&&s.m(e,null),n[23](e),t=!0,i||(l=[K(window,"resize",n[10]),K(window,"keydown",n[9])],i=!0)},p(o,r){o[0]?s?(s.p(o,r),r[0]&1&&A(s,1)):(s=Oc(o),s.c(),A(s,1),s.m(e,null)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){t||(A(s),t=!0)},o(o){I(s),t=!1},d(o){o&&v(e),s&&s.d(),n[23](null),i=!1,we(l)}}}let Ui,Tr=[];function Db(){return Ui=Ui||document.querySelector(".overlays"),Ui||(Ui=document.createElement("div"),Ui.classList.add("overlays"),document.body.appendChild(Ui)),Ui}let Si=150;function Ac(){return 1e3+Db().querySelectorAll(".overlay-panel-container.active").length}function MS(n,e,t){let{$$slots:i={},$$scope:l}=e,{class:s=""}=e,{active:o=!1}=e,{popup:r=!1}=e,{overlayClose:a=!0}=e,{btnClose:u=!0}=e,{escClose:f=!0}=e,{beforeOpen:c=void 0}=e,{beforeHide:d=void 0}=e;const m=ot(),h="op_"+j.randomString(10);let _,g,k,S,T="",$=o;function C(){typeof c=="function"&&c()===!1||t(0,o=!0)}function D(){typeof d=="function"&&d()===!1||t(0,o=!1)}function O(){return o}async function E(U){t(17,$=U),U?(k=document.activeElement,m("show"),_==null||_.focus()):(clearTimeout(S),m("hide"),k==null||k.focus()),await Qt(),L()}function L(){_&&(o?t(6,_.style.zIndex=Ac(),_):t(6,_.style="",_))}function F(){j.pushUnique(Tr,h),document.body.classList.add("overlay-active")}function P(){j.removeByValue(Tr,h),Tr.length||document.body.classList.remove("overlay-active")}function N(U){o&&f&&U.code=="Escape"&&!j.isInput(U.target)&&_&&_.style.zIndex==Ac()&&(U.preventDefault(),D())}function R(U){o&&q(g)}function q(U,ae){ae&&t(8,T=""),!(!U||S)&&(S=setTimeout(()=>{if(clearTimeout(S),S=null,!U)return;if(U.scrollHeight-U.offsetHeight>0)t(8,T="scrollable");else{t(8,T="");return}U.scrollTop==0?t(8,T+=" scroll-top-reached"):U.scrollTop+U.offsetHeight==U.scrollHeight&&t(8,T+=" scroll-bottom-reached")},100))}Vt(()=>(Db().appendChild(_),()=>{var U;clearTimeout(S),P(),(U=_==null?void 0:_.classList)==null||U.add("hidden"),setTimeout(()=>{_==null||_.remove()},0)}));const W=()=>a?D():!0;function J(U){te[U?"unshift":"push"](()=>{g=U,t(7,g)})}const G=U=>q(U.target);function B(U){te[U?"unshift":"push"](()=>{_=U,t(6,_)})}return n.$$set=U=>{"class"in U&&t(1,s=U.class),"active"in U&&t(0,o=U.active),"popup"in U&&t(2,r=U.popup),"overlayClose"in U&&t(3,a=U.overlayClose),"btnClose"in U&&t(4,u=U.btnClose),"escClose"in U&&t(12,f=U.escClose),"beforeOpen"in U&&t(13,c=U.beforeOpen),"beforeHide"in U&&t(14,d=U.beforeHide),"$$scope"in U&&t(18,l=U.$$scope)},n.$$.update=()=>{n.$$.dirty[0]&131073&&$!=o&&E(o),n.$$.dirty[0]&128&&q(g,!0),n.$$.dirty[0]&64&&_&&L(),n.$$.dirty[0]&1&&(o?F():P())},[o,s,r,a,u,D,_,g,T,N,R,q,f,c,d,C,O,$,l,i,W,J,G,B]}class Xt extends ge{constructor(e){super(),_e(this,e,MS,CS,he,{class:1,active:0,popup:2,overlayClose:3,btnClose:4,escClose:12,beforeOpen:13,beforeHide:14,show:15,hide:5,isActive:16},null,[-1,-1])}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[5]}get isActive(){return this.$$.ctx[16]}}function OS(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class",t=n[2]?n[1]:n[0]),p(e,"aria-label","Copy")},m(o,r){w(o,e,r),l||(s=[ve(i=Le.call(null,e,n[2]?"":"Copy")),K(e,"click",fn(n[3]))],l=!0)},p(o,[r]){r&7&&t!==(t=o[2]?o[1]:o[0])&&p(e,"class",t),i&&$t(i.update)&&r&4&&i.update.call(null,o[2]?"":"Copy")},i:Q,o:Q,d(o){o&&v(e),l=!1,we(s)}}}function DS(n,e,t){let{value:i=""}=e,{idleClasses:l="ri-file-copy-line txt-sm link-hint"}=e,{successClasses:s="ri-check-line txt-sm txt-success"}=e,{successDuration:o=500}=e,r;function a(){i&&(j.copyToClipboard(i),clearTimeout(r),t(2,r=setTimeout(()=>{clearTimeout(r),t(2,r=null)},o)))}return Vt(()=>()=>{r&&clearTimeout(r)}),n.$$set=u=>{"value"in u&&t(4,i=u.value),"idleClasses"in u&&t(0,l=u.idleClasses),"successClasses"in u&&t(1,s=u.successClasses),"successDuration"in u&&t(5,o=u.successDuration)},[l,s,r,a,i,o]}class sl extends ge{constructor(e){super(),_e(this,e,DS,OS,he,{value:4,idleClasses:0,successClasses:1,successDuration:5})}}function Ic(n,e,t){const i=n.slice();i[16]=e[t];const l=i[1].data[i[16]];i[17]=l;const s=i[17]!==null&&typeof i[17]=="object";return i[18]=s,i}function ES(n){let e,t,i,l,s,o,r,a,u,f,c=n[1].id+"",d,m,h,_,g,k,S,T,$,C,D,O,E,L,F,P;a=new sl({props:{value:n[1].id}}),S=new V1({props:{level:n[1].level}}),E=new B1({props:{date:n[1].created}});let N=!n[4]&&Lc(n),R=pe(n[5](n[1].data)),q=[];for(let J=0;JI(q[J],1,1,()=>{q[J]=null});return{c(){e=b("table"),t=b("tbody"),i=b("tr"),l=b("td"),l.textContent="id",s=M(),o=b("td"),r=b("div"),V(a.$$.fragment),u=M(),f=b("div"),d=Y(c),m=M(),h=b("tr"),_=b("td"),_.textContent="level",g=M(),k=b("td"),V(S.$$.fragment),T=M(),$=b("tr"),C=b("td"),C.textContent="created",D=M(),O=b("td"),V(E.$$.fragment),L=M(),N&&N.c(),F=M();for(let J=0;J',p(e,"class","block txt-center")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function Lc(n){let e,t,i,l;function s(a,u){return a[1].message?LS:IS}let o=s(n),r=o(n);return{c(){e=b("tr"),t=b("td"),t.textContent="message",i=M(),l=b("td"),r.c(),p(t,"class","min-width txt-hint txt-bold")},m(a,u){w(a,e,u),y(e,t),y(e,i),y(e,l),r.m(l,null)},p(a,u){o===(o=s(a))&&r?r.p(a,u):(r.d(1),r=o(a),r&&(r.c(),r.m(l,null)))},d(a){a&&v(e),r.d()}}}function IS(n){let e;return{c(){e=b("span"),e.textContent="N/A",p(e,"class","txt txt-hint")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function LS(n){let e,t=n[1].message+"",i;return{c(){e=b("span"),i=Y(t),p(e,"class","txt")},m(l,s){w(l,e,s),y(e,i)},p(l,s){s&2&&t!==(t=l[1].message+"")&&le(i,t)},d(l){l&&v(e)}}}function PS(n){let e,t=n[17]+"",i,l=n[4]&&n[16]=="execTime"?"ms":"",s;return{c(){e=b("span"),i=Y(t),s=Y(l),p(e,"class","txt")},m(o,r){w(o,e,r),y(e,i),y(e,s)},p(o,r){r&2&&t!==(t=o[17]+"")&&le(i,t),r&18&&l!==(l=o[4]&&o[16]=="execTime"?"ms":"")&&le(s,l)},i:Q,o:Q,d(o){o&&v(e)}}}function NS(n){let e,t;return e=new Ja({props:{content:n[17],language:"html"}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.content=i[17]),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function FS(n){let e,t=n[17]+"",i;return{c(){e=b("span"),i=Y(t),p(e,"class","label label-danger log-error-label svelte-144j2mz")},m(l,s){w(l,e,s),y(e,i)},p(l,s){s&2&&t!==(t=l[17]+"")&&le(i,t)},i:Q,o:Q,d(l){l&&v(e)}}}function RS(n){let e,t;return e=new Ja({props:{content:JSON.stringify(n[17],null,2)}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.content=JSON.stringify(i[17],null,2)),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function qS(n){let e;return{c(){e=b("span"),e.textContent="N/A",p(e,"class","txt txt-hint")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function Pc(n){let e,t,i,l=n[16]+"",s,o,r,a,u,f,c,d;const m=[qS,RS,FS,NS,PS],h=[];function _(g,k){return k&2&&(a=null),a==null&&(a=!!j.isEmpty(g[17])),a?0:g[18]?1:g[16]=="error"?2:g[16]=="details"?3:4}return u=_(n,-1),f=h[u]=m[u](n),{c(){e=b("tr"),t=b("td"),i=Y("data."),s=Y(l),o=M(),r=b("td"),f.c(),c=M(),p(t,"class","min-width txt-hint txt-bold"),ee(t,"v-align-top",n[18])},m(g,k){w(g,e,k),y(e,t),y(t,i),y(t,s),y(e,o),y(e,r),h[u].m(r,null),y(e,c),d=!0},p(g,k){(!d||k&2)&&l!==(l=g[16]+"")&&le(s,l),(!d||k&34)&&ee(t,"v-align-top",g[18]);let S=u;u=_(g,k),u===S?h[u].p(g,k):(oe(),I(h[S],1,1,()=>{h[S]=null}),re(),f=h[u],f?f.p(g,k):(f=h[u]=m[u](g),f.c()),A(f,1),f.m(r,null))},i(g){d||(A(f),d=!0)},o(g){I(f),d=!1},d(g){g&&v(e),h[u].d()}}}function jS(n){let e,t,i,l;const s=[AS,ES],o=[];function r(a,u){var f;return a[3]?0:(f=a[1])!=null&&f.id?1:-1}return~(e=r(n))&&(t=o[e]=s[e](n)),{c(){t&&t.c(),i=ke()},m(a,u){~e&&o[e].m(a,u),w(a,i,u),l=!0},p(a,u){let f=e;e=r(a),e===f?~e&&o[e].p(a,u):(t&&(oe(),I(o[f],1,1,()=>{o[f]=null}),re()),~e?(t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i)):t=null)},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),~e&&o[e].d(a)}}}function HS(n){let e;return{c(){e=b("h4"),e.textContent="Request log"},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function zS(n){let e,t,i,l,s,o,r,a;return{c(){e=b("button"),e.innerHTML='Close',t=M(),i=b("button"),l=b("i"),s=M(),o=b("span"),o.textContent="Download as JSON",p(e,"type","button"),p(e,"class","btn btn-transparent"),p(l,"class","ri-download-line"),p(o,"class","txt"),p(i,"type","button"),p(i,"class","btn btn-primary"),i.disabled=n[3]},m(u,f){w(u,e,f),w(u,t,f),w(u,i,f),y(i,l),y(i,s),y(i,o),r||(a=[K(e,"click",n[9]),K(i,"click",n[10])],r=!0)},p(u,f){f&8&&(i.disabled=u[3])},d(u){u&&(v(e),v(t),v(i)),r=!1,we(a)}}}function VS(n){let e,t,i={class:"overlay-panel-lg log-panel",$$slots:{footer:[zS],header:[HS],default:[jS]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[11](e),e.$on("hide",n[7]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&2097178&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[11](null),z(e,l)}}}const Nc="log_view";function BS(n,e,t){let i;const l=ot();let s,o={},r=!1;function a(T){return f(T).then($=>{t(1,o=$),h()}),s==null?void 0:s.show()}function u(){return fe.cancelRequest(Nc),s==null?void 0:s.hide()}async function f(T){if(T&&typeof T!="string")return t(3,r=!1),T;t(3,r=!0);let $={};try{$=await fe.logs.getOne(T,{requestKey:Nc})}catch(C){C.isAbort||(u(),console.warn("resolveModel:",C),ni(`Unable to load log with id "${T}"`))}return t(3,r=!1),$}const c=["execTime","type","auth","status","method","url","referer","remoteIp","userIp","userAgent","error","details"];function d(T){if(!T)return[];let $=[];for(let D of c)typeof T[D]<"u"&&$.push(D);const C=Object.keys(T);for(let D of C)$.includes(D)||$.push(D);return $}function m(){j.downloadJson(o,"log_"+o.created.replaceAll(/[-:\. ]/gi,"")+".json")}function h(){l("show",o)}function _(){l("hide",o),t(1,o={})}const g=()=>u(),k=()=>m();function S(T){te[T?"unshift":"push"](()=>{s=T,t(2,s)})}return n.$$.update=()=>{var T;n.$$.dirty&2&&t(4,i=((T=o.data)==null?void 0:T.type)=="request")},[u,o,s,r,i,d,m,_,a,g,k,S]}class US extends ge{constructor(e){super(),_e(this,e,BS,VS,he,{show:8,hide:0})}get show(){return this.$$.ctx[8]}get hide(){return this.$$.ctx[0]}}function WS(n,e,t){const i=n.slice();return i[1]=e[t],i}function YS(n){let e;return{c(){e=b("code"),e.textContent=`${n[1].level}:${n[1].label}`,p(e,"class","txt-xs")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function KS(n){let e,t,i,l=pe(R1),s=[];for(let o=0;o{"class"in l&&t(0,i=l.class)},[i]}class Eb extends ge{constructor(e){super(),_e(this,e,JS,KS,he,{class:0})}}function ZS(n){let e,t,i,l,s,o,r,a,u;return t=new me({props:{class:"form-field required",name:"logs.maxDays",$$slots:{default:[XS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),l=new me({props:{class:"form-field",name:"logs.minLevel",$$slots:{default:[QS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field form-field-toggle",name:"logs.logIp",$$slots:{default:[xS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),V(t.$$.fragment),i=M(),V(l.$$.fragment),s=M(),V(o.$$.fragment),p(e,"id",n[6]),p(e,"class","grid"),p(e,"autocomplete","off")},m(f,c){w(f,e,c),H(t,e,null),y(e,i),H(l,e,null),y(e,s),H(o,e,null),r=!0,a||(u=K(e,"submit",Ye(n[7])),a=!0)},p(f,c){const d={};c&12582914&&(d.$$scope={dirty:c,ctx:f}),t.$set(d);const m={};c&12582914&&(m.$$scope={dirty:c,ctx:f}),l.$set(m);const h={};c&12582914&&(h.$$scope={dirty:c,ctx:f}),o.$set(h)},i(f){r||(A(t.$$.fragment,f),A(l.$$.fragment,f),A(o.$$.fragment,f),r=!0)},o(f){I(t.$$.fragment,f),I(l.$$.fragment,f),I(o.$$.fragment,f),r=!1},d(f){f&&v(e),z(t),z(l),z(o),a=!1,u()}}}function GS(n){let e;return{c(){e=b("div"),e.innerHTML='
',p(e,"class","block txt-center")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function XS(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=Y("Max days retention"),l=M(),s=b("input"),r=M(),a=b("div"),a.innerHTML="Set to 0 to disable logs persistence.",p(e,"for",i=n[22]),p(s,"type","number"),p(s,"id",o=n[22]),s.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),y(e,t),w(c,l,d),w(c,s,d),ue(s,n[1].logs.maxDays),w(c,r,d),w(c,a,d),u||(f=K(s,"input",n[11]),u=!0)},p(c,d){d&4194304&&i!==(i=c[22])&&p(e,"for",i),d&4194304&&o!==(o=c[22])&&p(s,"id",o),d&2&&st(s.value)!==c[1].logs.maxDays&&ue(s,c[1].logs.maxDays)},d(c){c&&(v(e),v(l),v(s),v(r),v(a)),u=!1,f()}}}function QS(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return f=new Eb({}),{c(){e=b("label"),t=Y("Min log level"),l=M(),s=b("input"),o=M(),r=b("div"),a=b("p"),a.textContent="Logs with level below the minimum will be ignored.",u=M(),V(f.$$.fragment),p(e,"for",i=n[22]),p(s,"type","number"),s.required=!0,p(s,"min","-100"),p(s,"max","100"),p(r,"class","help-block")},m(h,_){w(h,e,_),y(e,t),w(h,l,_),w(h,s,_),ue(s,n[1].logs.minLevel),w(h,o,_),w(h,r,_),y(r,a),y(r,u),H(f,r,null),c=!0,d||(m=K(s,"input",n[12]),d=!0)},p(h,_){(!c||_&4194304&&i!==(i=h[22]))&&p(e,"for",i),_&2&&st(s.value)!==h[1].logs.minLevel&&ue(s,h[1].logs.minLevel)},i(h){c||(A(f.$$.fragment,h),c=!0)},o(h){I(f.$$.fragment,h),c=!1},d(h){h&&(v(e),v(l),v(s),v(o),v(r)),z(f),d=!1,m()}}}function xS(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable IP logging"),p(e,"type","checkbox"),p(e,"id",t=n[22]),p(l,"for",o=n[22])},m(u,f){w(u,e,f),e.checked=n[1].logs.logIp,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[13]),r=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&2&&(e.checked=u[1].logs.logIp),f&4194304&&o!==(o=u[22])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function e$(n){let e,t,i,l;const s=[GS,ZS],o=[];function r(a,u){return a[4]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,u){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}function t$(n){let e;return{c(){e=b("h4"),e.textContent="Logs settings"},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function n$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),s.textContent="Save changes",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[3],p(s,"class","txt"),p(l,"type","submit"),p(l,"form",n[6]),p(l,"class","btn btn-expanded"),l.disabled=o=!n[5]||n[3],ee(l,"btn-loading",n[3])},m(u,f){w(u,e,f),y(e,t),w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"click",n[0]),r=!0)},p(u,f){f&8&&(e.disabled=u[3]),f&40&&o!==(o=!u[5]||u[3])&&(l.disabled=o),f&8&&ee(l,"btn-loading",u[3])},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function i$(n){let e,t,i={popup:!0,class:"admin-panel",beforeHide:n[14],$$slots:{footer:[n$],header:[t$],default:[e$]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[15](e),e.$on("hide",n[16]),e.$on("show",n[17]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&8&&(o.beforeHide=l[14]),s&8388666&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[15](null),z(e,l)}}}function l$(n,e,t){let i,l;const s=ot(),o="logs_settings_"+j.randomString(3);let r,a=!1,u=!1,f={},c={};function d(){return h(),_(),r==null?void 0:r.show()}function m(){return r==null?void 0:r.hide()}function h(){Gt(),t(9,f={}),t(1,c=JSON.parse(JSON.stringify(f||{})))}async function _(){t(4,u=!0);try{const L=await fe.settings.getAll()||{};k(L)}catch(L){fe.error(L)}t(4,u=!1)}async function g(){if(l){t(3,a=!0);try{const L=await fe.settings.update(j.filterRedactedProps(c));k(L),t(3,a=!1),m(),It("Successfully saved logs settings."),s("save",L)}catch(L){t(3,a=!1),fe.error(L)}}}function k(L={}){t(1,c={logs:(L==null?void 0:L.logs)||{}}),t(9,f=JSON.parse(JSON.stringify(c)))}function S(){c.logs.maxDays=st(this.value),t(1,c)}function T(){c.logs.minLevel=st(this.value),t(1,c)}function $(){c.logs.logIp=this.checked,t(1,c)}const C=()=>!a;function D(L){te[L?"unshift":"push"](()=>{r=L,t(2,r)})}function O(L){Ae.call(this,n,L)}function E(L){Ae.call(this,n,L)}return n.$$.update=()=>{n.$$.dirty&512&&t(10,i=JSON.stringify(f)),n.$$.dirty&1026&&t(5,l=i!=JSON.stringify(c))},[m,c,r,a,u,l,o,g,d,f,i,S,T,$,C,D,O,E]}class s$ extends ge{constructor(e){super(),_e(this,e,l$,i$,he,{show:8,hide:0})}get show(){return this.$$.ctx[8]}get hide(){return this.$$.ctx[0]}}function o$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Include requests by admins"),p(e,"type","checkbox"),p(e,"id",t=n[22]),p(l,"for",o=n[22])},m(u,f){w(u,e,f),e.checked=n[2],w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[11]),r=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&4&&(e.checked=u[2]),f&4194304&&o!==(o=u[22])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Fc(n){let e,t;return e=new bS({props:{filter:n[1],presets:n[5]}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.filter=i[1]),l&32&&(s.presets=i[5]),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Rc(n){let e,t,i;function l(o){n[13](o)}let s={presets:n[5]};return n[1]!==void 0&&(s.filter=n[1]),e=new Gv({props:s}),te.push(()=>be(e,"filter",l)),e.$on("select",n[14]),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};r&32&&(a.presets=o[5]),!t&&r&2&&(t=!0,a.filter=o[1],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function r$(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$=n[4],C,D=n[4],O,E,L,F;u=new Go({}),u.$on("refresh",n[10]),h=new me({props:{class:"form-field form-field-toggle m-0",$$slots:{default:[o$,({uniqueId:R})=>({22:R}),({uniqueId:R})=>R?4194304:0]},$$scope:{ctx:n}}}),g=new Ms({props:{value:n[1],placeholder:"Search term or filter like `level > 0 && data.auth = 'guest'`",extraAutocompleteKeys:["level","message","data."]}}),g.$on("submit",n[12]),S=new Eb({props:{class:"block txt-sm txt-hint m-t-xs m-b-base"}});let P=Fc(n),N=Rc(n);return{c(){e=b("div"),t=b("header"),i=b("nav"),l=b("div"),s=Y(n[6]),o=M(),r=b("button"),r.innerHTML='',a=M(),V(u.$$.fragment),f=M(),c=b("div"),d=M(),m=b("div"),V(h.$$.fragment),_=M(),V(g.$$.fragment),k=M(),V(S.$$.fragment),T=M(),P.c(),C=M(),N.c(),O=ke(),p(l,"class","breadcrumb-item"),p(i,"class","breadcrumbs"),p(r,"type","button"),p(r,"aria-label","Logs settings"),p(r,"class","btn btn-transparent btn-circle"),p(c,"class","flex-fill"),p(m,"class","inline-flex"),p(t,"class","page-header"),p(e,"class","page-header-wrapper m-b-0")},m(R,q){w(R,e,q),y(e,t),y(t,i),y(i,l),y(l,s),y(t,o),y(t,r),y(t,a),H(u,t,null),y(t,f),y(t,c),y(t,d),y(t,m),H(h,m,null),y(e,_),H(g,e,null),y(e,k),H(S,e,null),y(e,T),P.m(e,null),w(R,C,q),N.m(R,q),w(R,O,q),E=!0,L||(F=[ve(Le.call(null,r,{text:"Logs settings",position:"right"})),K(r,"click",n[9])],L=!0)},p(R,q){(!E||q&64)&&le(s,R[6]);const W={};q&12582916&&(W.$$scope={dirty:q,ctx:R}),h.$set(W);const J={};q&2&&(J.value=R[1]),g.$set(J),q&16&&he($,$=R[4])?(oe(),I(P,1,1,Q),re(),P=Fc(R),P.c(),A(P,1),P.m(e,null)):P.p(R,q),q&16&&he(D,D=R[4])?(oe(),I(N,1,1,Q),re(),N=Rc(R),N.c(),A(N,1),N.m(O.parentNode,O)):N.p(R,q)},i(R){E||(A(u.$$.fragment,R),A(h.$$.fragment,R),A(g.$$.fragment,R),A(S.$$.fragment,R),A(P),A(N),E=!0)},o(R){I(u.$$.fragment,R),I(h.$$.fragment,R),I(g.$$.fragment,R),I(S.$$.fragment,R),I(P),I(N),E=!1},d(R){R&&(v(e),v(C),v(O)),z(u),z(h),z(g),z(S),P.d(R),N.d(R),L=!1,we(F)}}}function a$(n){let e,t,i,l,s,o;e=new gn({props:{$$slots:{default:[r$]},$$scope:{ctx:n}}});let r={};i=new US({props:r}),n[15](i),i.$on("show",n[16]),i.$on("hide",n[17]);let a={};return s=new s$({props:a}),n[18](s),s.$on("save",n[7]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(u,f){H(e,u,f),w(u,t,f),H(i,u,f),w(u,l,f),H(s,u,f),o=!0},p(u,[f]){const c={};f&8388735&&(c.$$scope={dirty:f,ctx:u}),e.$set(c);const d={};i.$set(d);const m={};s.$set(m)},i(u){o||(A(e.$$.fragment,u),A(i.$$.fragment,u),A(s.$$.fragment,u),o=!0)},o(u){I(e.$$.fragment,u),I(i.$$.fragment,u),I(s.$$.fragment,u),o=!1},d(u){u&&(v(t),v(l)),z(e,u),n[15](null),z(i,u),n[18](null),z(s,u)}}}const to="logId",qc="adminRequests",jc="adminLogRequests";function u$(n,e,t){var L;let i,l,s;We(n,Vo,F=>t(19,l=F)),We(n,Dt,F=>t(6,s=F)),tn(Dt,s="Logs",s);const o=new URLSearchParams(l);let r,a,u=1,f=o.get("filter")||"",c=(o.get(qc)||((L=window.localStorage)==null?void 0:L.getItem(jc)))<<0,d=c;function m(){t(4,u++,u)}function h(F={}){let P={};P.filter=f||null,P[qc]=c<<0||null,j.replaceHashQueryParams(Object.assign(P,F))}const _=()=>a==null?void 0:a.show(),g=()=>m();function k(){c=this.checked,t(2,c)}const S=F=>t(1,f=F.detail);function T(F){f=F,t(1,f)}const $=F=>r==null?void 0:r.show(F==null?void 0:F.detail);function C(F){te[F?"unshift":"push"](()=>{r=F,t(0,r)})}const D=F=>{var N;let P={};P[to]=((N=F.detail)==null?void 0:N.id)||null,j.replaceHashQueryParams(P)},O=()=>{let F={};F[to]=null,j.replaceHashQueryParams(F)};function E(F){te[F?"unshift":"push"](()=>{a=F,t(3,a)})}return n.$$.update=()=>{var F;n.$$.dirty&1&&o.get(to)&&r&&r.show(o.get(to)),n.$$.dirty&4&&t(5,i=c?"":'data.auth!="admin"'),n.$$.dirty&260&&d!=c&&(t(8,d=c),(F=window.localStorage)==null||F.setItem(jc,c<<0),h()),n.$$.dirty&2&&typeof f<"u"&&h()},[r,f,c,a,u,i,s,m,d,_,g,k,S,T,$,C,D,O,E]}class f$ extends ge{constructor(e){super(),_e(this,e,u$,a$,he,{})}}function c$(n){let e,t,i;return{c(){e=b("span"),p(e,"class","dragline svelte-1g2t3dj"),ee(e,"dragging",n[1])},m(l,s){w(l,e,s),n[4](e),t||(i=[K(e,"mousedown",n[5]),K(e,"touchstart",n[2])],t=!0)},p(l,[s]){s&2&&ee(e,"dragging",l[1])},i:Q,o:Q,d(l){l&&v(e),n[4](null),t=!1,we(i)}}}function d$(n,e,t){const i=ot();let{tolerance:l=0}=e,s,o=0,r=0,a=0,u=0,f=!1;function c(g){g.stopPropagation(),o=g.clientX,r=g.clientY,a=g.clientX-s.offsetLeft,u=g.clientY-s.offsetTop,document.addEventListener("touchmove",m),document.addEventListener("mousemove",m),document.addEventListener("touchend",d),document.addEventListener("mouseup",d)}function d(g){f&&(g.preventDefault(),t(1,f=!1),s.classList.remove("no-pointer-events"),i("dragstop",{event:g,elem:s})),document.removeEventListener("touchmove",m),document.removeEventListener("mousemove",m),document.removeEventListener("touchend",d),document.removeEventListener("mouseup",d)}function m(g){let k=g.clientX-o,S=g.clientY-r,T=g.clientX-a,$=g.clientY-u;!f&&Math.abs(T-s.offsetLeft){s=g,t(0,s)})}const _=g=>{g.button==0&&c(g)};return n.$$set=g=>{"tolerance"in g&&t(3,l=g.tolerance)},[s,f,c,l,h,_]}class p$ extends ge{constructor(e){super(),_e(this,e,d$,c$,he,{tolerance:3})}}function m$(n){let e,t,i,l,s;const o=n[5].default,r=kt(o,n,n[4],null);return l=new p$({}),l.$on("dragstart",n[7]),l.$on("dragging",n[8]),l.$on("dragstop",n[9]),{c(){e=b("aside"),r&&r.c(),i=M(),V(l.$$.fragment),p(e,"class",t="page-sidebar "+n[0])},m(a,u){w(a,e,u),r&&r.m(e,null),n[6](e),w(a,i,u),H(l,a,u),s=!0},p(a,[u]){r&&r.p&&(!s||u&16)&&wt(r,o,a,a[4],s?vt(o,a[4],u,null):St(a[4]),null),(!s||u&1&&t!==(t="page-sidebar "+a[0]))&&p(e,"class",t)},i(a){s||(A(r,a),A(l.$$.fragment,a),s=!0)},o(a){I(r,a),I(l.$$.fragment,a),s=!1},d(a){a&&(v(e),v(i)),r&&r.d(a),n[6](null),z(l,a)}}}const Hc="@adminSidebarWidth";function h$(n,e,t){let{$$slots:i={},$$scope:l}=e,{class:s=""}=e,o,r,a=localStorage.getItem(Hc)||null;function u(m){te[m?"unshift":"push"](()=>{o=m,t(1,o),t(2,a)})}const f=()=>{t(3,r=o.offsetWidth)},c=m=>{t(2,a=r+m.detail.diffX+"px")},d=()=>{j.triggerResize()};return n.$$set=m=>{"class"in m&&t(0,s=m.class),"$$scope"in m&&t(4,l=m.$$scope)},n.$$.update=()=>{n.$$.dirty&6&&a&&o&&(t(1,o.style.width=a,o),localStorage.setItem(Hc,a))},[s,o,a,r,l,i,u,f,c,d]}class Ab extends ge{constructor(e){super(),_e(this,e,h$,m$,he,{class:0})}}const Za=Dn({});function an(n,e,t){Za.set({text:n,yesCallback:e,noCallback:t})}function Ib(){Za.set({})}function zc(n){let e,t,i;const l=n[17].default,s=kt(l,n,n[16],null);return{c(){e=b("div"),s&&s.c(),p(e,"class",n[1]),ee(e,"active",n[0])},m(o,r){w(o,e,r),s&&s.m(e,null),n[18](e),i=!0},p(o,r){s&&s.p&&(!i||r&65536)&&wt(s,l,o,o[16],i?vt(l,o[16],r,null):St(o[16]),null),(!i||r&2)&&p(e,"class",o[1]),(!i||r&3)&&ee(e,"active",o[0])},i(o){i||(A(s,o),o&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,y:3},!0)),t.run(1))}),i=!0)},o(o){I(s,o),o&&(t||(t=Pe(e,jn,{duration:150,y:3},!1)),t.run(0)),i=!1},d(o){o&&v(e),s&&s.d(o),n[18](null),o&&t&&t.end()}}}function _$(n){let e,t,i,l,s=n[0]&&zc(n);return{c(){e=b("div"),s&&s.c(),p(e,"class","toggler-container"),p(e,"tabindex","-1")},m(o,r){w(o,e,r),s&&s.m(e,null),n[19](e),t=!0,i||(l=[K(window,"mousedown",n[5]),K(window,"click",n[6]),K(window,"keydown",n[4]),K(window,"focusin",n[7])],i=!0)},p(o,[r]){o[0]?s?(s.p(o,r),r&1&&A(s,1)):(s=zc(o),s.c(),A(s,1),s.m(e,null)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){t||(A(s),t=!0)},o(o){I(s),t=!1},d(o){o&&v(e),s&&s.d(),n[19](null),i=!1,we(l)}}}function g$(n,e,t){let{$$slots:i={},$$scope:l}=e,{trigger:s=void 0}=e,{active:o=!1}=e,{escClose:r=!0}=e,{autoScroll:a=!0}=e,{closableClass:u="closable"}=e,{class:f=""}=e,c,d,m,h,_=!1;const g=ot();function k(){t(0,o=!1),_=!1,clearTimeout(h)}function S(){t(0,o=!0),clearTimeout(h),h=setTimeout(()=>{a&&(d!=null&&d.scrollIntoViewIfNeeded?d==null||d.scrollIntoViewIfNeeded():d!=null&&d.scrollIntoView&&(d==null||d.scrollIntoView({behavior:"smooth",block:"nearest"})))},180)}function T(){o?k():S()}function $(W){return!c||W.classList.contains(u)||(m==null?void 0:m.contains(W))&&!c.contains(W)||c.contains(W)&&W.closest&&W.closest("."+u)}function C(W){(!o||$(W.target))&&(W.preventDefault(),W.stopPropagation(),T())}function D(W){(W.code==="Enter"||W.code==="Space")&&(!o||$(W.target))&&(W.preventDefault(),W.stopPropagation(),T())}function O(W){o&&r&&W.code==="Escape"&&(W.preventDefault(),k())}function E(W){o&&!(c!=null&&c.contains(W.target))?_=!0:_&&(_=!1)}function L(W){var J;o&&_&&!(c!=null&&c.contains(W.target))&&!(m!=null&&m.contains(W.target))&&!((J=W.target)!=null&&J.closest(".flatpickr-calendar"))&&k()}function F(W){E(W),L(W)}function P(W){N(),c==null||c.addEventListener("click",C),t(15,m=W||(c==null?void 0:c.parentNode)),m==null||m.addEventListener("click",C),m==null||m.addEventListener("keydown",D)}function N(){clearTimeout(h),c==null||c.removeEventListener("click",C),m==null||m.removeEventListener("click",C),m==null||m.removeEventListener("keydown",D)}Vt(()=>(P(),()=>N()));function R(W){te[W?"unshift":"push"](()=>{d=W,t(3,d)})}function q(W){te[W?"unshift":"push"](()=>{c=W,t(2,c)})}return n.$$set=W=>{"trigger"in W&&t(8,s=W.trigger),"active"in W&&t(0,o=W.active),"escClose"in W&&t(9,r=W.escClose),"autoScroll"in W&&t(10,a=W.autoScroll),"closableClass"in W&&t(11,u=W.closableClass),"class"in W&&t(1,f=W.class),"$$scope"in W&&t(16,l=W.$$scope)},n.$$.update=()=>{var W,J;n.$$.dirty&260&&c&&P(s),n.$$.dirty&32769&&(o?((W=m==null?void 0:m.classList)==null||W.add("active"),g("show")):((J=m==null?void 0:m.classList)==null||J.remove("active"),g("hide")))},[o,f,c,d,O,E,L,F,s,r,a,u,k,S,T,m,l,i,R,q]}class En extends ge{constructor(e){super(),_e(this,e,g$,_$,he,{trigger:8,active:0,escClose:9,autoScroll:10,closableClass:11,class:1,hide:12,show:13,toggle:14})}get hide(){return this.$$.ctx[12]}get show(){return this.$$.ctx[13]}get toggle(){return this.$$.ctx[14]}}function Vc(n,e,t){const i=n.slice();return i[27]=e[t],i}function b$(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("input"),l=M(),s=b("label"),o=Y("Unique"),p(e,"type","checkbox"),p(e,"id",t=n[30]),e.checked=i=n[3].unique,p(s,"for",r=n[30])},m(f,c){w(f,e,c),w(f,l,c),w(f,s,c),y(s,o),a||(u=K(e,"change",n[19]),a=!0)},p(f,c){c[0]&1073741824&&t!==(t=f[30])&&p(e,"id",t),c[0]&8&&i!==(i=f[3].unique)&&(e.checked=i),c[0]&1073741824&&r!==(r=f[30])&&p(s,"for",r)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function y$(n){let e,t,i,l;function s(a){n[20](a)}var o=n[7];function r(a,u){var c;let f={id:a[30],placeholder:`eg. CREATE INDEX idx_test on ${(c=a[0])==null?void 0:c.name} (created)`,language:"sql-create-index",minHeight:"85"};return a[2]!==void 0&&(f.value=a[2]),{props:f}}return o&&(e=Ot(o,r(n)),te.push(()=>be(e,"value",s))),{c(){e&&V(e.$$.fragment),i=ke()},m(a,u){e&&H(e,a,u),w(a,i,u),l=!0},p(a,u){var f;if(u[0]&128&&o!==(o=a[7])){if(e){oe();const c=e;I(c.$$.fragment,1,0,()=>{z(c,1)}),re()}o?(e=Ot(o,r(a)),te.push(()=>be(e,"value",s)),V(e.$$.fragment),A(e.$$.fragment,1),H(e,i.parentNode,i)):e=null}else if(o){const c={};u[0]&1073741824&&(c.id=a[30]),u[0]&1&&(c.placeholder=`eg. CREATE INDEX idx_test on ${(f=a[0])==null?void 0:f.name} (created)`),!t&&u[0]&4&&(t=!0,c.value=a[2],ye(()=>t=!1)),e.$set(c)}},i(a){l||(e&&A(e.$$.fragment,a),l=!0)},o(a){e&&I(e.$$.fragment,a),l=!1},d(a){a&&v(i),e&&z(e,a)}}}function k$(n){let e;return{c(){e=b("textarea"),e.disabled=!0,p(e,"rows","7"),p(e,"placeholder","Loading...")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function v$(n){let e,t,i,l;const s=[k$,y$],o=[];function r(a,u){return a[8]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,u){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}function Bc(n){let e,t,i,l=pe(n[10]),s=[];for(let o=0;o({30:a}),({uniqueId:a})=>[a?1073741824:0]]},$$scope:{ctx:n}}}),i=new me({props:{class:"form-field required m-b-sm",name:`indexes.${n[6]||""}`,$$slots:{default:[v$,({uniqueId:a})=>({30:a}),({uniqueId:a})=>[a?1073741824:0]]},$$scope:{ctx:n}}});let r=n[10].length>0&&Bc(n);return{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),r&&r.c(),s=ke()},m(a,u){H(e,a,u),w(a,t,u),H(i,a,u),w(a,l,u),r&&r.m(a,u),w(a,s,u),o=!0},p(a,u){const f={};u[0]&1073741837|u[1]&1&&(f.$$scope={dirty:u,ctx:a}),e.$set(f);const c={};u[0]&64&&(c.name=`indexes.${a[6]||""}`),u[0]&1073742213|u[1]&1&&(c.$$scope={dirty:u,ctx:a}),i.$set(c),a[10].length>0?r?r.p(a,u):(r=Bc(a),r.c(),r.m(s.parentNode,s)):r&&(r.d(1),r=null)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),o=!0)},o(a){I(e.$$.fragment,a),I(i.$$.fragment,a),o=!1},d(a){a&&(v(t),v(l),v(s)),z(e,a),z(i,a),r&&r.d(a)}}}function S$(n){let e,t=n[5]?"Update":"Create",i,l;return{c(){e=b("h4"),i=Y(t),l=Y(" index")},m(s,o){w(s,e,o),y(e,i),y(e,l)},p(s,o){o[0]&32&&t!==(t=s[5]?"Update":"Create")&&le(i,t)},d(s){s&&v(e)}}}function Wc(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-hint btn-transparent m-r-auto")},m(l,s){w(l,e,s),t||(i=[ve(Le.call(null,e,{text:"Delete",position:"top"})),K(e,"click",n[16])],t=!0)},p:Q,d(l){l&&v(e),t=!1,we(i)}}}function $$(n){let e,t,i,l,s,o,r=n[5]!=""&&Wc(n);return{c(){r&&r.c(),e=M(),t=b("button"),t.innerHTML='Cancel',i=M(),l=b("button"),l.innerHTML='Set index',p(t,"type","button"),p(t,"class","btn btn-transparent"),p(l,"type","button"),p(l,"class","btn"),ee(l,"btn-disabled",n[9].length<=0)},m(a,u){r&&r.m(a,u),w(a,e,u),w(a,t,u),w(a,i,u),w(a,l,u),s||(o=[K(t,"click",n[17]),K(l,"click",n[18])],s=!0)},p(a,u){a[5]!=""?r?r.p(a,u):(r=Wc(a),r.c(),r.m(e.parentNode,e)):r&&(r.d(1),r=null),u[0]&512&&ee(l,"btn-disabled",a[9].length<=0)},d(a){a&&(v(e),v(t),v(i),v(l)),r&&r.d(a),s=!1,we(o)}}}function T$(n){let e,t;const i=[{popup:!0},n[14]];let l={$$slots:{footer:[$$],header:[S$],default:[w$]},$$scope:{ctx:n}};for(let s=0;sB.name==W);G?j.removeByValue(J.columns,G):j.pushUnique(J.columns,{name:W}),t(2,d=j.buildIndex(J))}Vt(async()=>{t(8,_=!0);try{t(7,h=(await rt(()=>import("./CodeEditor-d15a301a.js"),["./CodeEditor-d15a301a.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(W){console.warn(W)}t(8,_=!1)});const D=()=>T(),O=()=>k(),E=()=>$(),L=W=>{t(3,l.unique=W.target.checked,l),t(3,l.tableName=l.tableName||(u==null?void 0:u.name),l),t(2,d=j.buildIndex(l))};function F(W){d=W,t(2,d)}const P=W=>C(W);function N(W){te[W?"unshift":"push"](()=>{f=W,t(4,f)})}function R(W){Ae.call(this,n,W)}function q(W){Ae.call(this,n,W)}return n.$$set=W=>{e=Ne(Ne({},e),Kt(W)),t(14,r=Ge(e,o)),"collection"in W&&t(0,u=W.collection)},n.$$.update=()=>{var W,J,G;n.$$.dirty[0]&1&&t(10,i=(((J=(W=u==null?void 0:u.schema)==null?void 0:W.filter(B=>!B.toDelete))==null?void 0:J.map(B=>B.name))||[]).concat(["created","updated"])),n.$$.dirty[0]&4&&t(3,l=j.parseIndex(d)),n.$$.dirty[0]&8&&t(9,s=((G=l.columns)==null?void 0:G.map(B=>B.name))||[])},[u,k,d,l,f,c,m,h,_,s,i,T,$,C,r,g,D,O,E,L,F,P,N,R,q]}class M$ extends ge{constructor(e){super(),_e(this,e,C$,T$,he,{collection:0,show:15,hide:1},null,[-1,-1])}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[1]}}function Yc(n,e,t){const i=n.slice();i[10]=e[t],i[13]=t;const l=j.parseIndex(i[10]);return i[11]=l,i}function Kc(n){let e;return{c(){e=b("strong"),e.textContent="Unique:"},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Jc(n){var d;let e,t,i,l=((d=n[11].columns)==null?void 0:d.map(Zc).join(", "))+"",s,o,r,a,u,f=n[11].unique&&Kc();function c(){return n[4](n[10],n[13])}return{c(){var m,h;e=b("button"),f&&f.c(),t=M(),i=b("span"),s=Y(l),p(i,"class","txt"),p(e,"type","button"),p(e,"class",o="label link-primary "+((h=(m=n[2].indexes)==null?void 0:m[n[13]])!=null&&h.message?"label-danger":"")+" svelte-167lbwu")},m(m,h){var _,g;w(m,e,h),f&&f.m(e,null),y(e,t),y(e,i),y(i,s),a||(u=[ve(r=Le.call(null,e,((g=(_=n[2].indexes)==null?void 0:_[n[13]])==null?void 0:g.message)||"")),K(e,"click",c)],a=!0)},p(m,h){var _,g,k,S,T;n=m,n[11].unique?f||(f=Kc(),f.c(),f.m(e,t)):f&&(f.d(1),f=null),h&1&&l!==(l=((_=n[11].columns)==null?void 0:_.map(Zc).join(", "))+"")&&le(s,l),h&4&&o!==(o="label link-primary "+((k=(g=n[2].indexes)==null?void 0:g[n[13]])!=null&&k.message?"label-danger":"")+" svelte-167lbwu")&&p(e,"class",o),r&&$t(r.update)&&h&4&&r.update.call(null,((T=(S=n[2].indexes)==null?void 0:S[n[13]])==null?void 0:T.message)||"")},d(m){m&&v(e),f&&f.d(),a=!1,we(u)}}}function O$(n){var $,C,D;let e,t,i=(((C=($=n[0])==null?void 0:$.indexes)==null?void 0:C.length)||0)+"",l,s,o,r,a,u,f,c,d,m,h,_,g=pe(((D=n[0])==null?void 0:D.indexes)||[]),k=[];for(let O=0;Obe(c,"collection",S)),c.$on("remove",n[8]),c.$on("submit",n[9]),{c(){e=b("div"),t=Y("Unique constraints and indexes ("),l=Y(i),s=Y(")"),o=M(),r=b("div");for(let O=0;O+ New index',f=M(),V(c.$$.fragment),p(e,"class","section-title"),p(u,"type","button"),p(u,"class","btn btn-xs btn-transparent btn-pill btn-outline"),p(r,"class","indexes-list svelte-167lbwu")},m(O,E){w(O,e,E),y(e,t),y(e,l),y(e,s),w(O,o,E),w(O,r,E);for(let L=0;Ld=!1)),c.$set(L)},i(O){m||(A(c.$$.fragment,O),m=!0)},o(O){I(c.$$.fragment,O),m=!1},d(O){O&&(v(e),v(o),v(r),v(f)),ut(k,O),n[6](null),z(c,O),h=!1,_()}}}const Zc=n=>n.name;function D$(n,e,t){let i;We(n,_i,m=>t(2,i=m));let{collection:l}=e,s;function o(m,h){for(let _=0;_s==null?void 0:s.show(m,h),a=()=>s==null?void 0:s.show();function u(m){te[m?"unshift":"push"](()=>{s=m,t(1,s)})}function f(m){l=m,t(0,l)}const c=m=>{for(let h=0;h{o(m.detail.old,m.detail.new)};return n.$$set=m=>{"collection"in m&&t(0,l=m.collection)},[l,s,i,o,r,a,u,f,c,d]}class E$ extends ge{constructor(e){super(),_e(this,e,D$,O$,he,{collection:0})}}function Gc(n,e,t){const i=n.slice();return i[6]=e[t],i}function Xc(n){let e,t,i,l,s,o,r;function a(){return n[4](n[6])}function u(...f){return n[5](n[6],...f)}return{c(){e=b("div"),t=b("i"),i=M(),l=b("span"),l.textContent=`${n[6].label}`,s=M(),p(t,"class","icon "+n[6].icon+" svelte-1gz9b6p"),p(l,"class","txt"),p(e,"tabindex","0"),p(e,"class","dropdown-item closable svelte-1gz9b6p")},m(f,c){w(f,e,c),y(e,t),y(e,i),y(e,l),y(e,s),o||(r=[K(e,"click",fn(a)),K(e,"keydown",fn(u))],o=!0)},p(f,c){n=f},d(f){f&&v(e),o=!1,we(r)}}}function A$(n){let e,t=pe(n[2]),i=[];for(let l=0;l{o(u.value)},a=(u,f)=>{(f.code==="Enter"||f.code==="Space")&&o(u.value)};return n.$$set=u=>{"class"in u&&t(0,i=u.class)},[i,l,s,o,r,a]}class P$ extends ge{constructor(e){super(),_e(this,e,L$,I$,he,{class:0})}}const N$=n=>({interactive:n&64,hasErrors:n&32}),Qc=n=>({interactive:n[6],hasErrors:n[5]}),F$=n=>({interactive:n&64,hasErrors:n&32}),xc=n=>({interactive:n[6],hasErrors:n[5]}),R$=n=>({interactive:n&64,hasErrors:n&32}),ed=n=>({interactive:n[6],hasErrors:n[5]});function td(n){let e;return{c(){e=b("div"),e.innerHTML='',p(e,"class","drag-handle-wrapper"),p(e,"draggable",!0),p(e,"aria-label","Sort")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function nd(n){let e,t,i;return{c(){e=b("div"),t=b("span"),i=Y(n[4]),p(t,"class","label label-success"),p(e,"class","field-labels")},m(l,s){w(l,e,s),y(e,t),y(t,i)},p(l,s){s&16&&le(i,l[4])},d(l){l&&v(e)}}}function q$(n){let e,t,i,l,s,o,r,a,u,f,c,d,m=n[0].required&&nd(n);return{c(){m&&m.c(),e=M(),t=b("div"),i=b("i"),s=M(),o=b("input"),p(i,"class",l=j.getFieldTypeIcon(n[0].type)),p(t,"class","form-field-addon prefix no-pointer-events field-type-icon"),ee(t,"txt-disabled",!n[6]),p(o,"type","text"),o.required=!0,o.disabled=r=!n[6],o.readOnly=a=n[0].id&&n[0].system,p(o,"spellcheck","false"),o.autofocus=u=!n[0].id,p(o,"placeholder","Field name"),o.value=f=n[0].name},m(h,_){m&&m.m(h,_),w(h,e,_),w(h,t,_),y(t,i),w(h,s,_),w(h,o,_),n[14](o),n[0].id||o.focus(),c||(d=K(o,"input",n[15]),c=!0)},p(h,_){h[0].required?m?m.p(h,_):(m=nd(h),m.c(),m.m(e.parentNode,e)):m&&(m.d(1),m=null),_&1&&l!==(l=j.getFieldTypeIcon(h[0].type))&&p(i,"class",l),_&64&&ee(t,"txt-disabled",!h[6]),_&64&&r!==(r=!h[6])&&(o.disabled=r),_&1&&a!==(a=h[0].id&&h[0].system)&&(o.readOnly=a),_&1&&u!==(u=!h[0].id)&&(o.autofocus=u),_&1&&f!==(f=h[0].name)&&o.value!==f&&(o.value=f)},d(h){h&&(v(e),v(t),v(s),v(o)),m&&m.d(h),n[14](null),c=!1,d()}}}function j$(n){let e;return{c(){e=b("span"),p(e,"class","separator")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function H$(n){let e,t,i,l,s;return{c(){e=b("button"),t=b("i"),p(t,"class","ri-settings-3-line"),p(e,"type","button"),p(e,"aria-label","Toggle field options"),p(e,"class",i="btn btn-sm btn-circle options-trigger "+(n[3]?"btn-secondary":"btn-transparent")),ee(e,"btn-hint",!n[3]&&!n[5]),ee(e,"btn-danger",n[5])},m(o,r){w(o,e,r),y(e,t),l||(s=K(e,"click",n[11]),l=!0)},p(o,r){r&8&&i!==(i="btn btn-sm btn-circle options-trigger "+(o[3]?"btn-secondary":"btn-transparent"))&&p(e,"class",i),r&40&&ee(e,"btn-hint",!o[3]&&!o[5]),r&40&&ee(e,"btn-danger",o[5])},d(o){o&&v(e),l=!1,s()}}}function z$(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-warning btn-transparent options-trigger"),p(e,"aria-label","Restore")},m(l,s){w(l,e,s),t||(i=[ve(Le.call(null,e,"Restore")),K(e,"click",n[9])],t=!0)},p:Q,d(l){l&&v(e),t=!1,we(i)}}}function id(n){let e,t,i,l,s,o,r,a,u,f,c;const d=n[13].options,m=kt(d,n,n[18],xc);s=new me({props:{class:"form-field form-field-toggle",name:"requried",$$slots:{default:[V$,({uniqueId:k})=>({24:k}),({uniqueId:k})=>k?16777216:0]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field form-field-toggle",name:"presentable",$$slots:{default:[B$,({uniqueId:k})=>({24:k}),({uniqueId:k})=>k?16777216:0]},$$scope:{ctx:n}}});const h=n[13].optionsFooter,_=kt(h,n,n[18],Qc);let g=!n[0].toDelete&&ld(n);return{c(){e=b("div"),t=b("div"),m&&m.c(),i=M(),l=b("div"),V(s.$$.fragment),o=M(),V(r.$$.fragment),a=M(),_&&_.c(),u=M(),g&&g.c(),p(t,"class","hidden-empty m-b-sm"),p(l,"class","schema-field-options-footer"),p(e,"class","schema-field-options")},m(k,S){w(k,e,S),y(e,t),m&&m.m(t,null),y(e,i),y(e,l),H(s,l,null),y(l,o),H(r,l,null),y(l,a),_&&_.m(l,null),y(l,u),g&&g.m(l,null),c=!0},p(k,S){m&&m.p&&(!c||S&262240)&&wt(m,d,k,k[18],c?vt(d,k[18],S,F$):St(k[18]),xc);const T={};S&17039377&&(T.$$scope={dirty:S,ctx:k}),s.$set(T);const $={};S&17039361&&($.$$scope={dirty:S,ctx:k}),r.$set($),_&&_.p&&(!c||S&262240)&&wt(_,h,k,k[18],c?vt(h,k[18],S,N$):St(k[18]),Qc),k[0].toDelete?g&&(oe(),I(g,1,1,()=>{g=null}),re()):g?(g.p(k,S),S&1&&A(g,1)):(g=ld(k),g.c(),A(g,1),g.m(l,null))},i(k){c||(A(m,k),A(s.$$.fragment,k),A(r.$$.fragment,k),A(_,k),A(g),k&&Ke(()=>{c&&(f||(f=Pe(e,et,{duration:150},!0)),f.run(1))}),c=!0)},o(k){I(m,k),I(s.$$.fragment,k),I(r.$$.fragment,k),I(_,k),I(g),k&&(f||(f=Pe(e,et,{duration:150},!1)),f.run(0)),c=!1},d(k){k&&v(e),m&&m.d(k),z(s),z(r),_&&_.d(k),g&&g.d(),k&&f&&f.end()}}}function V$(n){let e,t,i,l,s,o,r,a,u,f,c,d;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),o=Y(n[4]),r=M(),a=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[24]),p(s,"class","txt"),p(a,"class","ri-information-line link-hint"),p(l,"for",f=n[24])},m(m,h){w(m,e,h),e.checked=n[0].required,w(m,i,h),w(m,l,h),y(l,s),y(s,o),y(l,r),y(l,a),c||(d=[K(e,"change",n[16]),ve(u=Le.call(null,a,{text:`Requires the field value NOT to be ${j.zeroDefaultStr(n[0])}.`}))],c=!0)},p(m,h){h&16777216&&t!==(t=m[24])&&p(e,"id",t),h&1&&(e.checked=m[0].required),h&16&&le(o,m[4]),u&&$t(u.update)&&h&1&&u.update.call(null,{text:`Requires the field value NOT to be ${j.zeroDefaultStr(m[0])}.`}),h&16777216&&f!==(f=m[24])&&p(l,"for",f)},d(m){m&&(v(e),v(i),v(l)),c=!1,we(d)}}}function B$(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Presentable",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[24]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[24])},m(c,d){w(c,e,d),e.checked=n[0].presentable,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[17]),ve(Le.call(null,r,{text:"Whether the field should be preferred in the Admin UI relation listings (default to auto)."}))],u=!0)},p(c,d){d&16777216&&t!==(t=c[24])&&p(e,"id",t),d&1&&(e.checked=c[0].presentable),d&16777216&&a!==(a=c[24])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function ld(n){let e,t,i,l,s,o,r,a,u;return a=new En({props:{class:"dropdown dropdown-sm dropdown-upside dropdown-right dropdown-nowrap no-min-width",$$slots:{default:[U$]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),i=M(),l=b("div"),s=b("button"),o=b("i"),r=M(),V(a.$$.fragment),p(t,"class","flex-fill"),p(o,"class","ri-more-line"),p(s,"type","button"),p(s,"aria-label","More"),p(s,"class","btn btn-circle btn-sm btn-transparent"),p(l,"class","inline-flex flex-gap-sm flex-nowrap"),p(e,"class","m-l-auto txt-right")},m(f,c){w(f,e,c),y(e,t),y(e,i),y(e,l),y(l,s),y(s,o),y(s,r),H(a,s,null),u=!0},p(f,c){const d={};c&262144&&(d.$$scope={dirty:c,ctx:f}),a.$set(d)},i(f){u||(A(a.$$.fragment,f),u=!0)},o(f){I(a.$$.fragment,f),u=!1},d(f){f&&v(e),z(a)}}}function U$(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Remove',p(e,"type","button"),p(e,"class","dropdown-item txt-right")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[8]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function W$(n){let e,t,i,l,s,o,r,a,u,f=n[6]&&td();l=new me({props:{class:"form-field required m-0 "+(n[6]?"":"disabled"),name:"schema."+n[1]+".name",inlineError:!0,$$slots:{default:[q$]},$$scope:{ctx:n}}});const c=n[13].default,d=kt(c,n,n[18],ed),m=d||j$();function h(S,T){if(S[0].toDelete)return z$;if(S[6])return H$}let _=h(n),g=_&&_(n),k=n[6]&&n[3]&&id(n);return{c(){e=b("div"),t=b("div"),f&&f.c(),i=M(),V(l.$$.fragment),s=M(),m&&m.c(),o=M(),g&&g.c(),r=M(),k&&k.c(),p(t,"class","schema-field-header"),p(e,"class","schema-field"),ee(e,"required",n[0].required),ee(e,"expanded",n[6]&&n[3]),ee(e,"deleted",n[0].toDelete)},m(S,T){w(S,e,T),y(e,t),f&&f.m(t,null),y(t,i),H(l,t,null),y(t,s),m&&m.m(t,null),y(t,o),g&&g.m(t,null),y(e,r),k&&k.m(e,null),u=!0},p(S,[T]){S[6]?f||(f=td(),f.c(),f.m(t,i)):f&&(f.d(1),f=null);const $={};T&64&&($.class="form-field required m-0 "+(S[6]?"":"disabled")),T&2&&($.name="schema."+S[1]+".name"),T&262229&&($.$$scope={dirty:T,ctx:S}),l.$set($),d&&d.p&&(!u||T&262240)&&wt(d,c,S,S[18],u?vt(c,S[18],T,R$):St(S[18]),ed),_===(_=h(S))&&g?g.p(S,T):(g&&g.d(1),g=_&&_(S),g&&(g.c(),g.m(t,null))),S[6]&&S[3]?k?(k.p(S,T),T&72&&A(k,1)):(k=id(S),k.c(),A(k,1),k.m(e,null)):k&&(oe(),I(k,1,1,()=>{k=null}),re()),(!u||T&1)&&ee(e,"required",S[0].required),(!u||T&72)&&ee(e,"expanded",S[6]&&S[3]),(!u||T&1)&&ee(e,"deleted",S[0].toDelete)},i(S){u||(A(l.$$.fragment,S),A(m,S),A(k),S&&Ke(()=>{u&&(a||(a=Pe(e,et,{duration:150},!0)),a.run(1))}),u=!0)},o(S){I(l.$$.fragment,S),I(m,S),I(k),S&&(a||(a=Pe(e,et,{duration:150},!1)),a.run(0)),u=!1},d(S){S&&v(e),f&&f.d(),z(l),m&&m.d(S),g&&g.d(),k&&k.d(),S&&a&&a.end()}}}let Cr=[];function Y$(n,e,t){let i,l,s,o;We(n,_i,P=>t(12,o=P));let{$$slots:r={},$$scope:a}=e;const u="f_"+j.randomString(8),f=ot(),c={bool:"Nonfalsey",number:"Nonzero"};let{key:d=""}=e,{field:m=j.initSchemaField()}=e,h,_=!1;function g(){m.id?t(0,m.toDelete=!0,m):f("remove")}function k(){t(0,m.toDelete=!1,m),Gt({})}function S(P){return j.slugify(P)}function T(){t(3,_=!0),D()}function $(){t(3,_=!1)}function C(){_?$():T()}function D(){for(let P of Cr)P.id!=u&&P.collapse()}Vt(()=>(Cr.push({id:u,collapse:$}),m.onMountSelect&&(t(0,m.onMountSelect=!1,m),h==null||h.select()),()=>{j.removeByKey(Cr,"id",u)}));function O(P){te[P?"unshift":"push"](()=>{h=P,t(2,h)})}const E=P=>{const N=m.name;t(0,m.name=S(P.target.value),m),P.target.value=m.name,f("rename",{oldName:N,newName:m.name})};function L(){m.required=this.checked,t(0,m)}function F(){m.presentable=this.checked,t(0,m)}return n.$$set=P=>{"key"in P&&t(1,d=P.key),"field"in P&&t(0,m=P.field),"$$scope"in P&&t(18,a=P.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&m.toDelete&&m.originalName&&m.name!==m.originalName&&t(0,m.name=m.originalName,m),n.$$.dirty&1&&!m.originalName&&m.name&&t(0,m.originalName=m.name,m),n.$$.dirty&1&&typeof m.toDelete>"u"&&t(0,m.toDelete=!1,m),n.$$.dirty&1&&m.required&&t(0,m.nullable=!1,m),n.$$.dirty&1&&t(6,i=!m.toDelete&&!(m.id&&m.system)),n.$$.dirty&4098&&t(5,l=!j.isEmpty(j.getNestedVal(o,`schema.${d}`))),n.$$.dirty&1&&t(4,s=c[m==null?void 0:m.type]||"Nonempty")},[m,d,h,_,s,l,i,f,g,k,S,C,o,r,O,E,L,F,a]}class si extends ge{constructor(e){super(),_e(this,e,Y$,W$,he,{key:1,field:0})}}function K$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Min length"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"step","1"),p(s,"min","0")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.min),r||(a=K(s,"input",n[3]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&st(s.value)!==u[0].options.min&&ue(s,u[0].options.min)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function J$(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("label"),t=Y("Max length"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"step","1"),p(s,"min",r=n[0].options.min||0)},m(f,c){w(f,e,c),y(e,t),w(f,l,c),w(f,s,c),ue(s,n[0].options.max),a||(u=K(s,"input",n[4]),a=!0)},p(f,c){c&512&&i!==(i=f[9])&&p(e,"for",i),c&512&&o!==(o=f[9])&&p(s,"id",o),c&1&&r!==(r=f[0].options.min||0)&&p(s,"min",r),c&1&&st(s.value)!==f[0].options.max&&ue(s,f[0].options.max)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function Z$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Regex pattern"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","text"),p(s,"id",o=n[9]),p(s,"placeholder","Valid Go regular expression, eg. ^\\w+$")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.pattern),r||(a=K(s,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&s.value!==u[0].options.pattern&&ue(s,u[0].options.pattern)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function G$(n){let e,t,i,l,s,o,r,a,u,f;return i=new me({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[K$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[J$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field",name:"schema."+n[1]+".options.pattern",$$slots:{default:[Z$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),p(t,"class","col-sm-3"),p(s,"class","col-sm-3"),p(a,"class","col-sm-6"),p(e,"class","grid grid-sm")},m(c,d){w(c,e,d),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),f=!0},p(c,d){const m={};d&2&&(m.name="schema."+c[1]+".options.min"),d&1537&&(m.$$scope={dirty:d,ctx:c}),i.$set(m);const h={};d&2&&(h.name="schema."+c[1]+".options.max"),d&1537&&(h.$$scope={dirty:d,ctx:c}),o.$set(h);const _={};d&2&&(_.name="schema."+c[1]+".options.pattern"),d&1537&&(_.$$scope={dirty:d,ctx:c}),u.$set(_)},i(c){f||(A(i.$$.fragment,c),A(o.$$.fragment,c),A(u.$$.fragment,c),f=!0)},o(c){I(i.$$.fragment,c),I(o.$$.fragment,c),I(u.$$.fragment,c),f=!1},d(c){c&&v(e),z(i),z(o),z(u)}}}function X$(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[6](r)}let o={$$slots:{options:[G$]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[7]),e.$on("remove",n[8]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&1027&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function Q$(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(){s.options.min=st(this.value),t(0,s)}function a(){s.options.max=st(this.value),t(0,s)}function u(){s.options.pattern=this.value,t(0,s)}function f(m){s=m,t(0,s)}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(2,l=Ge(e,i)),"field"in m&&t(0,s=m.field),"key"in m&&t(1,o=m.key)},[s,o,l,r,a,u,f,c,d]}class x$ extends ge{constructor(e){super(),_e(this,e,Q$,X$,he,{field:0,key:1})}}function eT(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Min"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9])},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.min),r||(a=K(s,"input",n[4]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&st(s.value)!==u[0].options.min&&ue(s,u[0].options.min)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function tT(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("label"),t=Y("Max"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"min",r=n[0].options.min)},m(f,c){w(f,e,c),y(e,t),w(f,l,c),w(f,s,c),ue(s,n[0].options.max),a||(u=K(s,"input",n[5]),a=!0)},p(f,c){c&512&&i!==(i=f[9])&&p(e,"for",i),c&512&&o!==(o=f[9])&&p(s,"id",o),c&1&&r!==(r=f[0].options.min)&&p(s,"min",r),c&1&&st(s.value)!==f[0].options.max&&ue(s,f[0].options.max)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function nT(n){let e,t,i,l,s,o,r;return i=new me({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[eT,({uniqueId:a})=>({9:a}),({uniqueId:a})=>a?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[tT,({uniqueId:a})=>({9:a}),({uniqueId:a})=>a?512:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),p(t,"class","col-sm-6"),p(s,"class","col-sm-6"),p(e,"class","grid grid-sm")},m(a,u){w(a,e,u),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),r=!0},p(a,u){const f={};u&2&&(f.name="schema."+a[1]+".options.min"),u&1537&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.max"),u&1537&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){I(i.$$.fragment,a),I(o.$$.fragment,a),r=!1},d(a){a&&v(e),z(i),z(o)}}}function iT(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="No decimals",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[9]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[9])},m(c,d){w(c,e,d),e.checked=n[0].options.noDecimal,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[3]),ve(Le.call(null,r,{text:"Existing decimal numbers will not be affected."}))],u=!0)},p(c,d){d&512&&t!==(t=c[9])&&p(e,"id",t),d&1&&(e.checked=c[0].options.noDecimal),d&512&&a!==(a=c[9])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function lT(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle",name:"schema."+n[1]+".options.noDecimal",$$slots:{default:[iT,({uniqueId:i})=>({9:i}),({uniqueId:i})=>i?512:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.name="schema."+i[1]+".options.noDecimal"),l&1537&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function sT(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[6](r)}let o={$$slots:{optionsFooter:[lT],options:[nT]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[7]),e.$on("remove",n[8]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&1027&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function oT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(){s.options.noDecimal=this.checked,t(0,s)}function a(){s.options.min=st(this.value),t(0,s)}function u(){s.options.max=st(this.value),t(0,s)}function f(m){s=m,t(0,s)}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(2,l=Ge(e,i)),"field"in m&&t(0,s=m.field),"key"in m&&t(1,o=m.key)},[s,o,l,r,a,u,f,c,d]}class rT extends ge{constructor(e){super(),_e(this,e,oT,sT,he,{field:0,key:1})}}function aT(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[3](r)}let o={};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[4]),e.$on("remove",n[5]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function uT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(f){s=f,t(0,s)}function a(f){Ae.call(this,n,f)}function u(f){Ae.call(this,n,f)}return n.$$set=f=>{e=Ne(Ne({},e),Kt(f)),t(2,l=Ge(e,i)),"field"in f&&t(0,s=f.field),"key"in f&&t(1,o=f.key)},[s,o,l,r,a,u]}class fT extends ge{constructor(e){super(),_e(this,e,uT,aT,he,{field:0,key:1})}}function cT(n){let e,t,i,l,s=[{type:t=n[5].type||"text"},{value:n[4]},{disabled:n[3]},{readOnly:n[2]},n[5]],o={};for(let r=0;r{t(0,o=j.splitNonEmpty(c.target.value,r))};return n.$$set=c=>{e=Ne(Ne({},e),Kt(c)),t(5,s=Ge(e,l)),"value"in c&&t(0,o=c.value),"separator"in c&&t(1,r=c.separator),"readonly"in c&&t(2,a=c.readonly),"disabled"in c&&t(3,u=c.disabled)},n.$$.update=()=>{n.$$.dirty&3&&t(4,i=j.joinNonEmpty(o,r+" "))},[o,r,a,u,i,s,f]}class Ll extends ge{constructor(e){super(),_e(this,e,dT,cT,he,{value:0,separator:1,readonly:2,disabled:3})}}function pT(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[3](g)}let _={id:n[8],disabled:!j.isEmpty(n[0].options.onlyDomains)};return n[0].options.exceptDomains!==void 0&&(_.value=n[0].options.exceptDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Except domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[8]),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`List of domains that are NOT allowed. + `),i=b("div");for(let o=0;o{"class"in l&&t(0,i=l.class)},[i]}class Eb extends ge{constructor(e){super(),_e(this,e,JS,KS,he,{class:0})}}function ZS(n){let e,t,i,l,s,o,r,a,u;return t=new me({props:{class:"form-field required",name:"logs.maxDays",$$slots:{default:[XS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),l=new me({props:{class:"form-field",name:"logs.minLevel",$$slots:{default:[QS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field form-field-toggle",name:"logs.logIp",$$slots:{default:[xS,({uniqueId:f})=>({22:f}),({uniqueId:f})=>f?4194304:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),V(t.$$.fragment),i=M(),V(l.$$.fragment),s=M(),V(o.$$.fragment),p(e,"id",n[6]),p(e,"class","grid"),p(e,"autocomplete","off")},m(f,c){w(f,e,c),H(t,e,null),y(e,i),H(l,e,null),y(e,s),H(o,e,null),r=!0,a||(u=K(e,"submit",Ye(n[7])),a=!0)},p(f,c){const d={};c&12582914&&(d.$$scope={dirty:c,ctx:f}),t.$set(d);const m={};c&12582914&&(m.$$scope={dirty:c,ctx:f}),l.$set(m);const h={};c&12582914&&(h.$$scope={dirty:c,ctx:f}),o.$set(h)},i(f){r||(A(t.$$.fragment,f),A(l.$$.fragment,f),A(o.$$.fragment,f),r=!0)},o(f){I(t.$$.fragment,f),I(l.$$.fragment,f),I(o.$$.fragment,f),r=!1},d(f){f&&v(e),z(t),z(l),z(o),a=!1,u()}}}function GS(n){let e;return{c(){e=b("div"),e.innerHTML='
',p(e,"class","block txt-center")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function XS(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=Y("Max days retention"),l=M(),s=b("input"),r=M(),a=b("div"),a.innerHTML="Set to 0 to disable logs persistence.",p(e,"for",i=n[22]),p(s,"type","number"),p(s,"id",o=n[22]),s.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),y(e,t),w(c,l,d),w(c,s,d),ue(s,n[1].logs.maxDays),w(c,r,d),w(c,a,d),u||(f=K(s,"input",n[11]),u=!0)},p(c,d){d&4194304&&i!==(i=c[22])&&p(e,"for",i),d&4194304&&o!==(o=c[22])&&p(s,"id",o),d&2&&st(s.value)!==c[1].logs.maxDays&&ue(s,c[1].logs.maxDays)},d(c){c&&(v(e),v(l),v(s),v(r),v(a)),u=!1,f()}}}function QS(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return f=new Eb({}),{c(){e=b("label"),t=Y("Min log level"),l=M(),s=b("input"),o=M(),r=b("div"),a=b("p"),a.textContent="Logs with level below the minimum will be ignored.",u=M(),V(f.$$.fragment),p(e,"for",i=n[22]),p(s,"type","number"),s.required=!0,p(s,"min","-100"),p(s,"max","100"),p(r,"class","help-block")},m(h,_){w(h,e,_),y(e,t),w(h,l,_),w(h,s,_),ue(s,n[1].logs.minLevel),w(h,o,_),w(h,r,_),y(r,a),y(r,u),H(f,r,null),c=!0,d||(m=K(s,"input",n[12]),d=!0)},p(h,_){(!c||_&4194304&&i!==(i=h[22]))&&p(e,"for",i),_&2&&st(s.value)!==h[1].logs.minLevel&&ue(s,h[1].logs.minLevel)},i(h){c||(A(f.$$.fragment,h),c=!0)},o(h){I(f.$$.fragment,h),c=!1},d(h){h&&(v(e),v(l),v(s),v(o),v(r)),z(f),d=!1,m()}}}function xS(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable IP logging"),p(e,"type","checkbox"),p(e,"id",t=n[22]),p(l,"for",o=n[22])},m(u,f){w(u,e,f),e.checked=n[1].logs.logIp,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[13]),r=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&2&&(e.checked=u[1].logs.logIp),f&4194304&&o!==(o=u[22])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function e$(n){let e,t,i,l;const s=[GS,ZS],o=[];function r(a,u){return a[4]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,u){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}function t$(n){let e;return{c(){e=b("h4"),e.textContent="Logs settings"},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function n$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),s.textContent="Save changes",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[3],p(s,"class","txt"),p(l,"type","submit"),p(l,"form",n[6]),p(l,"class","btn btn-expanded"),l.disabled=o=!n[5]||n[3],ee(l,"btn-loading",n[3])},m(u,f){w(u,e,f),y(e,t),w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"click",n[0]),r=!0)},p(u,f){f&8&&(e.disabled=u[3]),f&40&&o!==(o=!u[5]||u[3])&&(l.disabled=o),f&8&&ee(l,"btn-loading",u[3])},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function i$(n){let e,t,i={popup:!0,class:"admin-panel",beforeHide:n[14],$$slots:{footer:[n$],header:[t$],default:[e$]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[15](e),e.$on("hide",n[16]),e.$on("show",n[17]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&8&&(o.beforeHide=l[14]),s&8388666&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[15](null),z(e,l)}}}function l$(n,e,t){let i,l;const s=ot(),o="logs_settings_"+j.randomString(3);let r,a=!1,u=!1,f={},c={};function d(){return h(),_(),r==null?void 0:r.show()}function m(){return r==null?void 0:r.hide()}function h(){Gt(),t(9,f={}),t(1,c=JSON.parse(JSON.stringify(f||{})))}async function _(){t(4,u=!0);try{const L=await fe.settings.getAll()||{};k(L)}catch(L){fe.error(L)}t(4,u=!1)}async function g(){if(l){t(3,a=!0);try{const L=await fe.settings.update(j.filterRedactedProps(c));k(L),t(3,a=!1),m(),It("Successfully saved logs settings."),s("save",L)}catch(L){t(3,a=!1),fe.error(L)}}}function k(L={}){t(1,c={logs:(L==null?void 0:L.logs)||{}}),t(9,f=JSON.parse(JSON.stringify(c)))}function S(){c.logs.maxDays=st(this.value),t(1,c)}function T(){c.logs.minLevel=st(this.value),t(1,c)}function $(){c.logs.logIp=this.checked,t(1,c)}const C=()=>!a;function D(L){te[L?"unshift":"push"](()=>{r=L,t(2,r)})}function O(L){Ae.call(this,n,L)}function E(L){Ae.call(this,n,L)}return n.$$.update=()=>{n.$$.dirty&512&&t(10,i=JSON.stringify(f)),n.$$.dirty&1026&&t(5,l=i!=JSON.stringify(c))},[m,c,r,a,u,l,o,g,d,f,i,S,T,$,C,D,O,E]}class s$ extends ge{constructor(e){super(),_e(this,e,l$,i$,he,{show:8,hide:0})}get show(){return this.$$.ctx[8]}get hide(){return this.$$.ctx[0]}}function o$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Include requests by admins"),p(e,"type","checkbox"),p(e,"id",t=n[22]),p(l,"for",o=n[22])},m(u,f){w(u,e,f),e.checked=n[2],w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[11]),r=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&4&&(e.checked=u[2]),f&4194304&&o!==(o=u[22])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Fc(n){let e,t;return e=new bS({props:{filter:n[1],presets:n[5]}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.filter=i[1]),l&32&&(s.presets=i[5]),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Rc(n){let e,t,i;function l(o){n[13](o)}let s={presets:n[5]};return n[1]!==void 0&&(s.filter=n[1]),e=new Gv({props:s}),te.push(()=>be(e,"filter",l)),e.$on("select",n[14]),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};r&32&&(a.presets=o[5]),!t&&r&2&&(t=!0,a.filter=o[1],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function r$(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$=n[4],C,D=n[4],O,E,L,F;u=new Go({}),u.$on("refresh",n[10]),h=new me({props:{class:"form-field form-field-toggle m-0",$$slots:{default:[o$,({uniqueId:R})=>({22:R}),({uniqueId:R})=>R?4194304:0]},$$scope:{ctx:n}}}),g=new Ms({props:{value:n[1],placeholder:"Search term or filter like `level > 0 && data.auth = 'guest'`",extraAutocompleteKeys:["level","message","data."]}}),g.$on("submit",n[12]),S=new Eb({props:{class:"block txt-sm txt-hint m-t-xs m-b-base"}});let P=Fc(n),N=Rc(n);return{c(){e=b("div"),t=b("header"),i=b("nav"),l=b("div"),s=Y(n[6]),o=M(),r=b("button"),r.innerHTML='',a=M(),V(u.$$.fragment),f=M(),c=b("div"),d=M(),m=b("div"),V(h.$$.fragment),_=M(),V(g.$$.fragment),k=M(),V(S.$$.fragment),T=M(),P.c(),C=M(),N.c(),O=ke(),p(l,"class","breadcrumb-item"),p(i,"class","breadcrumbs"),p(r,"type","button"),p(r,"aria-label","Logs settings"),p(r,"class","btn btn-transparent btn-circle"),p(c,"class","flex-fill"),p(m,"class","inline-flex"),p(t,"class","page-header"),p(e,"class","page-header-wrapper m-b-0")},m(R,q){w(R,e,q),y(e,t),y(t,i),y(i,l),y(l,s),y(t,o),y(t,r),y(t,a),H(u,t,null),y(t,f),y(t,c),y(t,d),y(t,m),H(h,m,null),y(e,_),H(g,e,null),y(e,k),H(S,e,null),y(e,T),P.m(e,null),w(R,C,q),N.m(R,q),w(R,O,q),E=!0,L||(F=[ve(Le.call(null,r,{text:"Logs settings",position:"right"})),K(r,"click",n[9])],L=!0)},p(R,q){(!E||q&64)&&le(s,R[6]);const W={};q&12582916&&(W.$$scope={dirty:q,ctx:R}),h.$set(W);const J={};q&2&&(J.value=R[1]),g.$set(J),q&16&&he($,$=R[4])?(oe(),I(P,1,1,Q),re(),P=Fc(R),P.c(),A(P,1),P.m(e,null)):P.p(R,q),q&16&&he(D,D=R[4])?(oe(),I(N,1,1,Q),re(),N=Rc(R),N.c(),A(N,1),N.m(O.parentNode,O)):N.p(R,q)},i(R){E||(A(u.$$.fragment,R),A(h.$$.fragment,R),A(g.$$.fragment,R),A(S.$$.fragment,R),A(P),A(N),E=!0)},o(R){I(u.$$.fragment,R),I(h.$$.fragment,R),I(g.$$.fragment,R),I(S.$$.fragment,R),I(P),I(N),E=!1},d(R){R&&(v(e),v(C),v(O)),z(u),z(h),z(g),z(S),P.d(R),N.d(R),L=!1,we(F)}}}function a$(n){let e,t,i,l,s,o;e=new gn({props:{$$slots:{default:[r$]},$$scope:{ctx:n}}});let r={};i=new US({props:r}),n[15](i),i.$on("show",n[16]),i.$on("hide",n[17]);let a={};return s=new s$({props:a}),n[18](s),s.$on("save",n[7]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(u,f){H(e,u,f),w(u,t,f),H(i,u,f),w(u,l,f),H(s,u,f),o=!0},p(u,[f]){const c={};f&8388735&&(c.$$scope={dirty:f,ctx:u}),e.$set(c);const d={};i.$set(d);const m={};s.$set(m)},i(u){o||(A(e.$$.fragment,u),A(i.$$.fragment,u),A(s.$$.fragment,u),o=!0)},o(u){I(e.$$.fragment,u),I(i.$$.fragment,u),I(s.$$.fragment,u),o=!1},d(u){u&&(v(t),v(l)),z(e,u),n[15](null),z(i,u),n[18](null),z(s,u)}}}const to="logId",qc="adminRequests",jc="adminLogRequests";function u$(n,e,t){var L;let i,l,s;We(n,Vo,F=>t(19,l=F)),We(n,Dt,F=>t(6,s=F)),tn(Dt,s="Logs",s);const o=new URLSearchParams(l);let r,a,u=1,f=o.get("filter")||"",c=(o.get(qc)||((L=window.localStorage)==null?void 0:L.getItem(jc)))<<0,d=c;function m(){t(4,u++,u)}function h(F={}){let P={};P.filter=f||null,P[qc]=c<<0||null,j.replaceHashQueryParams(Object.assign(P,F))}const _=()=>a==null?void 0:a.show(),g=()=>m();function k(){c=this.checked,t(2,c)}const S=F=>t(1,f=F.detail);function T(F){f=F,t(1,f)}const $=F=>r==null?void 0:r.show(F==null?void 0:F.detail);function C(F){te[F?"unshift":"push"](()=>{r=F,t(0,r)})}const D=F=>{var N;let P={};P[to]=((N=F.detail)==null?void 0:N.id)||null,j.replaceHashQueryParams(P)},O=()=>{let F={};F[to]=null,j.replaceHashQueryParams(F)};function E(F){te[F?"unshift":"push"](()=>{a=F,t(3,a)})}return n.$$.update=()=>{var F;n.$$.dirty&1&&o.get(to)&&r&&r.show(o.get(to)),n.$$.dirty&4&&t(5,i=c?"":'data.auth!="admin"'),n.$$.dirty&260&&d!=c&&(t(8,d=c),(F=window.localStorage)==null||F.setItem(jc,c<<0),h()),n.$$.dirty&2&&typeof f<"u"&&h()},[r,f,c,a,u,i,s,m,d,_,g,k,S,T,$,C,D,O,E]}class f$ extends ge{constructor(e){super(),_e(this,e,u$,a$,he,{})}}function c$(n){let e,t,i;return{c(){e=b("span"),p(e,"class","dragline svelte-1g2t3dj"),ee(e,"dragging",n[1])},m(l,s){w(l,e,s),n[4](e),t||(i=[K(e,"mousedown",n[5]),K(e,"touchstart",n[2])],t=!0)},p(l,[s]){s&2&&ee(e,"dragging",l[1])},i:Q,o:Q,d(l){l&&v(e),n[4](null),t=!1,we(i)}}}function d$(n,e,t){const i=ot();let{tolerance:l=0}=e,s,o=0,r=0,a=0,u=0,f=!1;function c(g){g.stopPropagation(),o=g.clientX,r=g.clientY,a=g.clientX-s.offsetLeft,u=g.clientY-s.offsetTop,document.addEventListener("touchmove",m),document.addEventListener("mousemove",m),document.addEventListener("touchend",d),document.addEventListener("mouseup",d)}function d(g){f&&(g.preventDefault(),t(1,f=!1),s.classList.remove("no-pointer-events"),i("dragstop",{event:g,elem:s})),document.removeEventListener("touchmove",m),document.removeEventListener("mousemove",m),document.removeEventListener("touchend",d),document.removeEventListener("mouseup",d)}function m(g){let k=g.clientX-o,S=g.clientY-r,T=g.clientX-a,$=g.clientY-u;!f&&Math.abs(T-s.offsetLeft){s=g,t(0,s)})}const _=g=>{g.button==0&&c(g)};return n.$$set=g=>{"tolerance"in g&&t(3,l=g.tolerance)},[s,f,c,l,h,_]}class p$ extends ge{constructor(e){super(),_e(this,e,d$,c$,he,{tolerance:3})}}function m$(n){let e,t,i,l,s;const o=n[5].default,r=kt(o,n,n[4],null);return l=new p$({}),l.$on("dragstart",n[7]),l.$on("dragging",n[8]),l.$on("dragstop",n[9]),{c(){e=b("aside"),r&&r.c(),i=M(),V(l.$$.fragment),p(e,"class",t="page-sidebar "+n[0])},m(a,u){w(a,e,u),r&&r.m(e,null),n[6](e),w(a,i,u),H(l,a,u),s=!0},p(a,[u]){r&&r.p&&(!s||u&16)&&wt(r,o,a,a[4],s?vt(o,a[4],u,null):St(a[4]),null),(!s||u&1&&t!==(t="page-sidebar "+a[0]))&&p(e,"class",t)},i(a){s||(A(r,a),A(l.$$.fragment,a),s=!0)},o(a){I(r,a),I(l.$$.fragment,a),s=!1},d(a){a&&(v(e),v(i)),r&&r.d(a),n[6](null),z(l,a)}}}const Hc="@adminSidebarWidth";function h$(n,e,t){let{$$slots:i={},$$scope:l}=e,{class:s=""}=e,o,r,a=localStorage.getItem(Hc)||null;function u(m){te[m?"unshift":"push"](()=>{o=m,t(1,o),t(2,a)})}const f=()=>{t(3,r=o.offsetWidth)},c=m=>{t(2,a=r+m.detail.diffX+"px")},d=()=>{j.triggerResize()};return n.$$set=m=>{"class"in m&&t(0,s=m.class),"$$scope"in m&&t(4,l=m.$$scope)},n.$$.update=()=>{n.$$.dirty&6&&a&&o&&(t(1,o.style.width=a,o),localStorage.setItem(Hc,a))},[s,o,a,r,l,i,u,f,c,d]}class Ab extends ge{constructor(e){super(),_e(this,e,h$,m$,he,{class:0})}}const Za=Dn({});function an(n,e,t){Za.set({text:n,yesCallback:e,noCallback:t})}function Ib(){Za.set({})}function zc(n){let e,t,i;const l=n[17].default,s=kt(l,n,n[16],null);return{c(){e=b("div"),s&&s.c(),p(e,"class",n[1]),ee(e,"active",n[0])},m(o,r){w(o,e,r),s&&s.m(e,null),n[18](e),i=!0},p(o,r){s&&s.p&&(!i||r&65536)&&wt(s,l,o,o[16],i?vt(l,o[16],r,null):St(o[16]),null),(!i||r&2)&&p(e,"class",o[1]),(!i||r&3)&&ee(e,"active",o[0])},i(o){i||(A(s,o),o&&Ke(()=>{i&&(t||(t=Pe(e,jn,{duration:150,y:3},!0)),t.run(1))}),i=!0)},o(o){I(s,o),o&&(t||(t=Pe(e,jn,{duration:150,y:3},!1)),t.run(0)),i=!1},d(o){o&&v(e),s&&s.d(o),n[18](null),o&&t&&t.end()}}}function _$(n){let e,t,i,l,s=n[0]&&zc(n);return{c(){e=b("div"),s&&s.c(),p(e,"class","toggler-container"),p(e,"tabindex","-1")},m(o,r){w(o,e,r),s&&s.m(e,null),n[19](e),t=!0,i||(l=[K(window,"mousedown",n[5]),K(window,"click",n[6]),K(window,"keydown",n[4]),K(window,"focusin",n[7])],i=!0)},p(o,[r]){o[0]?s?(s.p(o,r),r&1&&A(s,1)):(s=zc(o),s.c(),A(s,1),s.m(e,null)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){t||(A(s),t=!0)},o(o){I(s),t=!1},d(o){o&&v(e),s&&s.d(),n[19](null),i=!1,we(l)}}}function g$(n,e,t){let{$$slots:i={},$$scope:l}=e,{trigger:s=void 0}=e,{active:o=!1}=e,{escClose:r=!0}=e,{autoScroll:a=!0}=e,{closableClass:u="closable"}=e,{class:f=""}=e,c,d,m,h,_=!1;const g=ot();function k(){t(0,o=!1),_=!1,clearTimeout(h)}function S(){t(0,o=!0),clearTimeout(h),h=setTimeout(()=>{a&&(d!=null&&d.scrollIntoViewIfNeeded?d==null||d.scrollIntoViewIfNeeded():d!=null&&d.scrollIntoView&&(d==null||d.scrollIntoView({behavior:"smooth",block:"nearest"})))},180)}function T(){o?k():S()}function $(W){return!c||W.classList.contains(u)||(m==null?void 0:m.contains(W))&&!c.contains(W)||c.contains(W)&&W.closest&&W.closest("."+u)}function C(W){(!o||$(W.target))&&(W.preventDefault(),W.stopPropagation(),T())}function D(W){(W.code==="Enter"||W.code==="Space")&&(!o||$(W.target))&&(W.preventDefault(),W.stopPropagation(),T())}function O(W){o&&r&&W.code==="Escape"&&(W.preventDefault(),k())}function E(W){o&&!(c!=null&&c.contains(W.target))?_=!0:_&&(_=!1)}function L(W){var J;o&&_&&!(c!=null&&c.contains(W.target))&&!(m!=null&&m.contains(W.target))&&!((J=W.target)!=null&&J.closest(".flatpickr-calendar"))&&k()}function F(W){E(W),L(W)}function P(W){N(),c==null||c.addEventListener("click",C),t(15,m=W||(c==null?void 0:c.parentNode)),m==null||m.addEventListener("click",C),m==null||m.addEventListener("keydown",D)}function N(){clearTimeout(h),c==null||c.removeEventListener("click",C),m==null||m.removeEventListener("click",C),m==null||m.removeEventListener("keydown",D)}Vt(()=>(P(),()=>N()));function R(W){te[W?"unshift":"push"](()=>{d=W,t(3,d)})}function q(W){te[W?"unshift":"push"](()=>{c=W,t(2,c)})}return n.$$set=W=>{"trigger"in W&&t(8,s=W.trigger),"active"in W&&t(0,o=W.active),"escClose"in W&&t(9,r=W.escClose),"autoScroll"in W&&t(10,a=W.autoScroll),"closableClass"in W&&t(11,u=W.closableClass),"class"in W&&t(1,f=W.class),"$$scope"in W&&t(16,l=W.$$scope)},n.$$.update=()=>{var W,J;n.$$.dirty&260&&c&&P(s),n.$$.dirty&32769&&(o?((W=m==null?void 0:m.classList)==null||W.add("active"),g("show")):((J=m==null?void 0:m.classList)==null||J.remove("active"),g("hide")))},[o,f,c,d,O,E,L,F,s,r,a,u,k,S,T,m,l,i,R,q]}class En extends ge{constructor(e){super(),_e(this,e,g$,_$,he,{trigger:8,active:0,escClose:9,autoScroll:10,closableClass:11,class:1,hide:12,show:13,toggle:14})}get hide(){return this.$$.ctx[12]}get show(){return this.$$.ctx[13]}get toggle(){return this.$$.ctx[14]}}function Vc(n,e,t){const i=n.slice();return i[27]=e[t],i}function b$(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("input"),l=M(),s=b("label"),o=Y("Unique"),p(e,"type","checkbox"),p(e,"id",t=n[30]),e.checked=i=n[3].unique,p(s,"for",r=n[30])},m(f,c){w(f,e,c),w(f,l,c),w(f,s,c),y(s,o),a||(u=K(e,"change",n[19]),a=!0)},p(f,c){c[0]&1073741824&&t!==(t=f[30])&&p(e,"id",t),c[0]&8&&i!==(i=f[3].unique)&&(e.checked=i),c[0]&1073741824&&r!==(r=f[30])&&p(s,"for",r)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function y$(n){let e,t,i,l;function s(a){n[20](a)}var o=n[7];function r(a,u){var c;let f={id:a[30],placeholder:`eg. CREATE INDEX idx_test on ${(c=a[0])==null?void 0:c.name} (created)`,language:"sql-create-index",minHeight:"85"};return a[2]!==void 0&&(f.value=a[2]),{props:f}}return o&&(e=Ot(o,r(n)),te.push(()=>be(e,"value",s))),{c(){e&&V(e.$$.fragment),i=ke()},m(a,u){e&&H(e,a,u),w(a,i,u),l=!0},p(a,u){var f;if(u[0]&128&&o!==(o=a[7])){if(e){oe();const c=e;I(c.$$.fragment,1,0,()=>{z(c,1)}),re()}o?(e=Ot(o,r(a)),te.push(()=>be(e,"value",s)),V(e.$$.fragment),A(e.$$.fragment,1),H(e,i.parentNode,i)):e=null}else if(o){const c={};u[0]&1073741824&&(c.id=a[30]),u[0]&1&&(c.placeholder=`eg. CREATE INDEX idx_test on ${(f=a[0])==null?void 0:f.name} (created)`),!t&&u[0]&4&&(t=!0,c.value=a[2],ye(()=>t=!1)),e.$set(c)}},i(a){l||(e&&A(e.$$.fragment,a),l=!0)},o(a){e&&I(e.$$.fragment,a),l=!1},d(a){a&&v(i),e&&z(e,a)}}}function k$(n){let e;return{c(){e=b("textarea"),e.disabled=!0,p(e,"rows","7"),p(e,"placeholder","Loading...")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function v$(n){let e,t,i,l;const s=[k$,y$],o=[];function r(a,u){return a[8]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,u){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}function Bc(n){let e,t,i,l=pe(n[10]),s=[];for(let o=0;o({30:a}),({uniqueId:a})=>[a?1073741824:0]]},$$scope:{ctx:n}}}),i=new me({props:{class:"form-field required m-b-sm",name:`indexes.${n[6]||""}`,$$slots:{default:[v$,({uniqueId:a})=>({30:a}),({uniqueId:a})=>[a?1073741824:0]]},$$scope:{ctx:n}}});let r=n[10].length>0&&Bc(n);return{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),r&&r.c(),s=ke()},m(a,u){H(e,a,u),w(a,t,u),H(i,a,u),w(a,l,u),r&&r.m(a,u),w(a,s,u),o=!0},p(a,u){const f={};u[0]&1073741837|u[1]&1&&(f.$$scope={dirty:u,ctx:a}),e.$set(f);const c={};u[0]&64&&(c.name=`indexes.${a[6]||""}`),u[0]&1073742213|u[1]&1&&(c.$$scope={dirty:u,ctx:a}),i.$set(c),a[10].length>0?r?r.p(a,u):(r=Bc(a),r.c(),r.m(s.parentNode,s)):r&&(r.d(1),r=null)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),o=!0)},o(a){I(e.$$.fragment,a),I(i.$$.fragment,a),o=!1},d(a){a&&(v(t),v(l),v(s)),z(e,a),z(i,a),r&&r.d(a)}}}function S$(n){let e,t=n[5]?"Update":"Create",i,l;return{c(){e=b("h4"),i=Y(t),l=Y(" index")},m(s,o){w(s,e,o),y(e,i),y(e,l)},p(s,o){o[0]&32&&t!==(t=s[5]?"Update":"Create")&&le(i,t)},d(s){s&&v(e)}}}function Wc(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-hint btn-transparent m-r-auto")},m(l,s){w(l,e,s),t||(i=[ve(Le.call(null,e,{text:"Delete",position:"top"})),K(e,"click",n[16])],t=!0)},p:Q,d(l){l&&v(e),t=!1,we(i)}}}function $$(n){let e,t,i,l,s,o,r=n[5]!=""&&Wc(n);return{c(){r&&r.c(),e=M(),t=b("button"),t.innerHTML='Cancel',i=M(),l=b("button"),l.innerHTML='Set index',p(t,"type","button"),p(t,"class","btn btn-transparent"),p(l,"type","button"),p(l,"class","btn"),ee(l,"btn-disabled",n[9].length<=0)},m(a,u){r&&r.m(a,u),w(a,e,u),w(a,t,u),w(a,i,u),w(a,l,u),s||(o=[K(t,"click",n[17]),K(l,"click",n[18])],s=!0)},p(a,u){a[5]!=""?r?r.p(a,u):(r=Wc(a),r.c(),r.m(e.parentNode,e)):r&&(r.d(1),r=null),u[0]&512&&ee(l,"btn-disabled",a[9].length<=0)},d(a){a&&(v(e),v(t),v(i),v(l)),r&&r.d(a),s=!1,we(o)}}}function T$(n){let e,t;const i=[{popup:!0},n[14]];let l={$$slots:{footer:[$$],header:[S$],default:[w$]},$$scope:{ctx:n}};for(let s=0;sB.name==W);G?j.removeByValue(J.columns,G):j.pushUnique(J.columns,{name:W}),t(2,d=j.buildIndex(J))}Vt(async()=>{t(8,_=!0);try{t(7,h=(await rt(()=>import("./CodeEditor-e3209658.js"),["./CodeEditor-e3209658.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(W){console.warn(W)}t(8,_=!1)});const D=()=>T(),O=()=>k(),E=()=>$(),L=W=>{t(3,l.unique=W.target.checked,l),t(3,l.tableName=l.tableName||(u==null?void 0:u.name),l),t(2,d=j.buildIndex(l))};function F(W){d=W,t(2,d)}const P=W=>C(W);function N(W){te[W?"unshift":"push"](()=>{f=W,t(4,f)})}function R(W){Ae.call(this,n,W)}function q(W){Ae.call(this,n,W)}return n.$$set=W=>{e=Ne(Ne({},e),Kt(W)),t(14,r=Ge(e,o)),"collection"in W&&t(0,u=W.collection)},n.$$.update=()=>{var W,J,G;n.$$.dirty[0]&1&&t(10,i=(((J=(W=u==null?void 0:u.schema)==null?void 0:W.filter(B=>!B.toDelete))==null?void 0:J.map(B=>B.name))||[]).concat(["created","updated"])),n.$$.dirty[0]&4&&t(3,l=j.parseIndex(d)),n.$$.dirty[0]&8&&t(9,s=((G=l.columns)==null?void 0:G.map(B=>B.name))||[])},[u,k,d,l,f,c,m,h,_,s,i,T,$,C,r,g,D,O,E,L,F,P,N,R,q]}class M$ extends ge{constructor(e){super(),_e(this,e,C$,T$,he,{collection:0,show:15,hide:1},null,[-1,-1])}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[1]}}function Yc(n,e,t){const i=n.slice();i[10]=e[t],i[13]=t;const l=j.parseIndex(i[10]);return i[11]=l,i}function Kc(n){let e;return{c(){e=b("strong"),e.textContent="Unique:"},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Jc(n){var d;let e,t,i,l=((d=n[11].columns)==null?void 0:d.map(Zc).join(", "))+"",s,o,r,a,u,f=n[11].unique&&Kc();function c(){return n[4](n[10],n[13])}return{c(){var m,h;e=b("button"),f&&f.c(),t=M(),i=b("span"),s=Y(l),p(i,"class","txt"),p(e,"type","button"),p(e,"class",o="label link-primary "+((h=(m=n[2].indexes)==null?void 0:m[n[13]])!=null&&h.message?"label-danger":"")+" svelte-167lbwu")},m(m,h){var _,g;w(m,e,h),f&&f.m(e,null),y(e,t),y(e,i),y(i,s),a||(u=[ve(r=Le.call(null,e,((g=(_=n[2].indexes)==null?void 0:_[n[13]])==null?void 0:g.message)||"")),K(e,"click",c)],a=!0)},p(m,h){var _,g,k,S,T;n=m,n[11].unique?f||(f=Kc(),f.c(),f.m(e,t)):f&&(f.d(1),f=null),h&1&&l!==(l=((_=n[11].columns)==null?void 0:_.map(Zc).join(", "))+"")&&le(s,l),h&4&&o!==(o="label link-primary "+((k=(g=n[2].indexes)==null?void 0:g[n[13]])!=null&&k.message?"label-danger":"")+" svelte-167lbwu")&&p(e,"class",o),r&&$t(r.update)&&h&4&&r.update.call(null,((T=(S=n[2].indexes)==null?void 0:S[n[13]])==null?void 0:T.message)||"")},d(m){m&&v(e),f&&f.d(),a=!1,we(u)}}}function O$(n){var $,C,D;let e,t,i=(((C=($=n[0])==null?void 0:$.indexes)==null?void 0:C.length)||0)+"",l,s,o,r,a,u,f,c,d,m,h,_,g=pe(((D=n[0])==null?void 0:D.indexes)||[]),k=[];for(let O=0;Obe(c,"collection",S)),c.$on("remove",n[8]),c.$on("submit",n[9]),{c(){e=b("div"),t=Y("Unique constraints and indexes ("),l=Y(i),s=Y(")"),o=M(),r=b("div");for(let O=0;O+ New index',f=M(),V(c.$$.fragment),p(e,"class","section-title"),p(u,"type","button"),p(u,"class","btn btn-xs btn-transparent btn-pill btn-outline"),p(r,"class","indexes-list svelte-167lbwu")},m(O,E){w(O,e,E),y(e,t),y(e,l),y(e,s),w(O,o,E),w(O,r,E);for(let L=0;Ld=!1)),c.$set(L)},i(O){m||(A(c.$$.fragment,O),m=!0)},o(O){I(c.$$.fragment,O),m=!1},d(O){O&&(v(e),v(o),v(r),v(f)),ut(k,O),n[6](null),z(c,O),h=!1,_()}}}const Zc=n=>n.name;function D$(n,e,t){let i;We(n,_i,m=>t(2,i=m));let{collection:l}=e,s;function o(m,h){for(let _=0;_s==null?void 0:s.show(m,h),a=()=>s==null?void 0:s.show();function u(m){te[m?"unshift":"push"](()=>{s=m,t(1,s)})}function f(m){l=m,t(0,l)}const c=m=>{for(let h=0;h{o(m.detail.old,m.detail.new)};return n.$$set=m=>{"collection"in m&&t(0,l=m.collection)},[l,s,i,o,r,a,u,f,c,d]}class E$ extends ge{constructor(e){super(),_e(this,e,D$,O$,he,{collection:0})}}function Gc(n,e,t){const i=n.slice();return i[6]=e[t],i}function Xc(n){let e,t,i,l,s,o,r;function a(){return n[4](n[6])}function u(...f){return n[5](n[6],...f)}return{c(){e=b("div"),t=b("i"),i=M(),l=b("span"),l.textContent=`${n[6].label}`,s=M(),p(t,"class","icon "+n[6].icon+" svelte-1gz9b6p"),p(l,"class","txt"),p(e,"tabindex","0"),p(e,"class","dropdown-item closable svelte-1gz9b6p")},m(f,c){w(f,e,c),y(e,t),y(e,i),y(e,l),y(e,s),o||(r=[K(e,"click",fn(a)),K(e,"keydown",fn(u))],o=!0)},p(f,c){n=f},d(f){f&&v(e),o=!1,we(r)}}}function A$(n){let e,t=pe(n[2]),i=[];for(let l=0;l{o(u.value)},a=(u,f)=>{(f.code==="Enter"||f.code==="Space")&&o(u.value)};return n.$$set=u=>{"class"in u&&t(0,i=u.class)},[i,l,s,o,r,a]}class P$ extends ge{constructor(e){super(),_e(this,e,L$,I$,he,{class:0})}}const N$=n=>({interactive:n&64,hasErrors:n&32}),Qc=n=>({interactive:n[6],hasErrors:n[5]}),F$=n=>({interactive:n&64,hasErrors:n&32}),xc=n=>({interactive:n[6],hasErrors:n[5]}),R$=n=>({interactive:n&64,hasErrors:n&32}),ed=n=>({interactive:n[6],hasErrors:n[5]});function td(n){let e;return{c(){e=b("div"),e.innerHTML='',p(e,"class","drag-handle-wrapper"),p(e,"draggable",!0),p(e,"aria-label","Sort")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function nd(n){let e,t,i;return{c(){e=b("div"),t=b("span"),i=Y(n[4]),p(t,"class","label label-success"),p(e,"class","field-labels")},m(l,s){w(l,e,s),y(e,t),y(t,i)},p(l,s){s&16&&le(i,l[4])},d(l){l&&v(e)}}}function q$(n){let e,t,i,l,s,o,r,a,u,f,c,d,m=n[0].required&&nd(n);return{c(){m&&m.c(),e=M(),t=b("div"),i=b("i"),s=M(),o=b("input"),p(i,"class",l=j.getFieldTypeIcon(n[0].type)),p(t,"class","form-field-addon prefix no-pointer-events field-type-icon"),ee(t,"txt-disabled",!n[6]),p(o,"type","text"),o.required=!0,o.disabled=r=!n[6],o.readOnly=a=n[0].id&&n[0].system,p(o,"spellcheck","false"),o.autofocus=u=!n[0].id,p(o,"placeholder","Field name"),o.value=f=n[0].name},m(h,_){m&&m.m(h,_),w(h,e,_),w(h,t,_),y(t,i),w(h,s,_),w(h,o,_),n[14](o),n[0].id||o.focus(),c||(d=K(o,"input",n[15]),c=!0)},p(h,_){h[0].required?m?m.p(h,_):(m=nd(h),m.c(),m.m(e.parentNode,e)):m&&(m.d(1),m=null),_&1&&l!==(l=j.getFieldTypeIcon(h[0].type))&&p(i,"class",l),_&64&&ee(t,"txt-disabled",!h[6]),_&64&&r!==(r=!h[6])&&(o.disabled=r),_&1&&a!==(a=h[0].id&&h[0].system)&&(o.readOnly=a),_&1&&u!==(u=!h[0].id)&&(o.autofocus=u),_&1&&f!==(f=h[0].name)&&o.value!==f&&(o.value=f)},d(h){h&&(v(e),v(t),v(s),v(o)),m&&m.d(h),n[14](null),c=!1,d()}}}function j$(n){let e;return{c(){e=b("span"),p(e,"class","separator")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function H$(n){let e,t,i,l,s;return{c(){e=b("button"),t=b("i"),p(t,"class","ri-settings-3-line"),p(e,"type","button"),p(e,"aria-label","Toggle field options"),p(e,"class",i="btn btn-sm btn-circle options-trigger "+(n[3]?"btn-secondary":"btn-transparent")),ee(e,"btn-hint",!n[3]&&!n[5]),ee(e,"btn-danger",n[5])},m(o,r){w(o,e,r),y(e,t),l||(s=K(e,"click",n[11]),l=!0)},p(o,r){r&8&&i!==(i="btn btn-sm btn-circle options-trigger "+(o[3]?"btn-secondary":"btn-transparent"))&&p(e,"class",i),r&40&&ee(e,"btn-hint",!o[3]&&!o[5]),r&40&&ee(e,"btn-danger",o[5])},d(o){o&&v(e),l=!1,s()}}}function z$(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-warning btn-transparent options-trigger"),p(e,"aria-label","Restore")},m(l,s){w(l,e,s),t||(i=[ve(Le.call(null,e,"Restore")),K(e,"click",n[9])],t=!0)},p:Q,d(l){l&&v(e),t=!1,we(i)}}}function id(n){let e,t,i,l,s,o,r,a,u,f,c;const d=n[13].options,m=kt(d,n,n[18],xc);s=new me({props:{class:"form-field form-field-toggle",name:"requried",$$slots:{default:[V$,({uniqueId:k})=>({24:k}),({uniqueId:k})=>k?16777216:0]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field form-field-toggle",name:"presentable",$$slots:{default:[B$,({uniqueId:k})=>({24:k}),({uniqueId:k})=>k?16777216:0]},$$scope:{ctx:n}}});const h=n[13].optionsFooter,_=kt(h,n,n[18],Qc);let g=!n[0].toDelete&&ld(n);return{c(){e=b("div"),t=b("div"),m&&m.c(),i=M(),l=b("div"),V(s.$$.fragment),o=M(),V(r.$$.fragment),a=M(),_&&_.c(),u=M(),g&&g.c(),p(t,"class","hidden-empty m-b-sm"),p(l,"class","schema-field-options-footer"),p(e,"class","schema-field-options")},m(k,S){w(k,e,S),y(e,t),m&&m.m(t,null),y(e,i),y(e,l),H(s,l,null),y(l,o),H(r,l,null),y(l,a),_&&_.m(l,null),y(l,u),g&&g.m(l,null),c=!0},p(k,S){m&&m.p&&(!c||S&262240)&&wt(m,d,k,k[18],c?vt(d,k[18],S,F$):St(k[18]),xc);const T={};S&17039377&&(T.$$scope={dirty:S,ctx:k}),s.$set(T);const $={};S&17039361&&($.$$scope={dirty:S,ctx:k}),r.$set($),_&&_.p&&(!c||S&262240)&&wt(_,h,k,k[18],c?vt(h,k[18],S,N$):St(k[18]),Qc),k[0].toDelete?g&&(oe(),I(g,1,1,()=>{g=null}),re()):g?(g.p(k,S),S&1&&A(g,1)):(g=ld(k),g.c(),A(g,1),g.m(l,null))},i(k){c||(A(m,k),A(s.$$.fragment,k),A(r.$$.fragment,k),A(_,k),A(g),k&&Ke(()=>{c&&(f||(f=Pe(e,et,{duration:150},!0)),f.run(1))}),c=!0)},o(k){I(m,k),I(s.$$.fragment,k),I(r.$$.fragment,k),I(_,k),I(g),k&&(f||(f=Pe(e,et,{duration:150},!1)),f.run(0)),c=!1},d(k){k&&v(e),m&&m.d(k),z(s),z(r),_&&_.d(k),g&&g.d(),k&&f&&f.end()}}}function V$(n){let e,t,i,l,s,o,r,a,u,f,c,d;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),o=Y(n[4]),r=M(),a=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[24]),p(s,"class","txt"),p(a,"class","ri-information-line link-hint"),p(l,"for",f=n[24])},m(m,h){w(m,e,h),e.checked=n[0].required,w(m,i,h),w(m,l,h),y(l,s),y(s,o),y(l,r),y(l,a),c||(d=[K(e,"change",n[16]),ve(u=Le.call(null,a,{text:`Requires the field value NOT to be ${j.zeroDefaultStr(n[0])}.`}))],c=!0)},p(m,h){h&16777216&&t!==(t=m[24])&&p(e,"id",t),h&1&&(e.checked=m[0].required),h&16&&le(o,m[4]),u&&$t(u.update)&&h&1&&u.update.call(null,{text:`Requires the field value NOT to be ${j.zeroDefaultStr(m[0])}.`}),h&16777216&&f!==(f=m[24])&&p(l,"for",f)},d(m){m&&(v(e),v(i),v(l)),c=!1,we(d)}}}function B$(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Presentable",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[24]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[24])},m(c,d){w(c,e,d),e.checked=n[0].presentable,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[17]),ve(Le.call(null,r,{text:"Whether the field should be preferred in the Admin UI relation listings (default to auto)."}))],u=!0)},p(c,d){d&16777216&&t!==(t=c[24])&&p(e,"id",t),d&1&&(e.checked=c[0].presentable),d&16777216&&a!==(a=c[24])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function ld(n){let e,t,i,l,s,o,r,a,u;return a=new En({props:{class:"dropdown dropdown-sm dropdown-upside dropdown-right dropdown-nowrap no-min-width",$$slots:{default:[U$]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),i=M(),l=b("div"),s=b("button"),o=b("i"),r=M(),V(a.$$.fragment),p(t,"class","flex-fill"),p(o,"class","ri-more-line"),p(s,"type","button"),p(s,"aria-label","More"),p(s,"class","btn btn-circle btn-sm btn-transparent"),p(l,"class","inline-flex flex-gap-sm flex-nowrap"),p(e,"class","m-l-auto txt-right")},m(f,c){w(f,e,c),y(e,t),y(e,i),y(e,l),y(l,s),y(s,o),y(s,r),H(a,s,null),u=!0},p(f,c){const d={};c&262144&&(d.$$scope={dirty:c,ctx:f}),a.$set(d)},i(f){u||(A(a.$$.fragment,f),u=!0)},o(f){I(a.$$.fragment,f),u=!1},d(f){f&&v(e),z(a)}}}function U$(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='Remove',p(e,"type","button"),p(e,"class","dropdown-item txt-right")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[8]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function W$(n){let e,t,i,l,s,o,r,a,u,f=n[6]&&td();l=new me({props:{class:"form-field required m-0 "+(n[6]?"":"disabled"),name:"schema."+n[1]+".name",inlineError:!0,$$slots:{default:[q$]},$$scope:{ctx:n}}});const c=n[13].default,d=kt(c,n,n[18],ed),m=d||j$();function h(S,T){if(S[0].toDelete)return z$;if(S[6])return H$}let _=h(n),g=_&&_(n),k=n[6]&&n[3]&&id(n);return{c(){e=b("div"),t=b("div"),f&&f.c(),i=M(),V(l.$$.fragment),s=M(),m&&m.c(),o=M(),g&&g.c(),r=M(),k&&k.c(),p(t,"class","schema-field-header"),p(e,"class","schema-field"),ee(e,"required",n[0].required),ee(e,"expanded",n[6]&&n[3]),ee(e,"deleted",n[0].toDelete)},m(S,T){w(S,e,T),y(e,t),f&&f.m(t,null),y(t,i),H(l,t,null),y(t,s),m&&m.m(t,null),y(t,o),g&&g.m(t,null),y(e,r),k&&k.m(e,null),u=!0},p(S,[T]){S[6]?f||(f=td(),f.c(),f.m(t,i)):f&&(f.d(1),f=null);const $={};T&64&&($.class="form-field required m-0 "+(S[6]?"":"disabled")),T&2&&($.name="schema."+S[1]+".name"),T&262229&&($.$$scope={dirty:T,ctx:S}),l.$set($),d&&d.p&&(!u||T&262240)&&wt(d,c,S,S[18],u?vt(c,S[18],T,R$):St(S[18]),ed),_===(_=h(S))&&g?g.p(S,T):(g&&g.d(1),g=_&&_(S),g&&(g.c(),g.m(t,null))),S[6]&&S[3]?k?(k.p(S,T),T&72&&A(k,1)):(k=id(S),k.c(),A(k,1),k.m(e,null)):k&&(oe(),I(k,1,1,()=>{k=null}),re()),(!u||T&1)&&ee(e,"required",S[0].required),(!u||T&72)&&ee(e,"expanded",S[6]&&S[3]),(!u||T&1)&&ee(e,"deleted",S[0].toDelete)},i(S){u||(A(l.$$.fragment,S),A(m,S),A(k),S&&Ke(()=>{u&&(a||(a=Pe(e,et,{duration:150},!0)),a.run(1))}),u=!0)},o(S){I(l.$$.fragment,S),I(m,S),I(k),S&&(a||(a=Pe(e,et,{duration:150},!1)),a.run(0)),u=!1},d(S){S&&v(e),f&&f.d(),z(l),m&&m.d(S),g&&g.d(),k&&k.d(),S&&a&&a.end()}}}let Cr=[];function Y$(n,e,t){let i,l,s,o;We(n,_i,P=>t(12,o=P));let{$$slots:r={},$$scope:a}=e;const u="f_"+j.randomString(8),f=ot(),c={bool:"Nonfalsey",number:"Nonzero"};let{key:d=""}=e,{field:m=j.initSchemaField()}=e,h,_=!1;function g(){m.id?t(0,m.toDelete=!0,m):f("remove")}function k(){t(0,m.toDelete=!1,m),Gt({})}function S(P){return j.slugify(P)}function T(){t(3,_=!0),D()}function $(){t(3,_=!1)}function C(){_?$():T()}function D(){for(let P of Cr)P.id!=u&&P.collapse()}Vt(()=>(Cr.push({id:u,collapse:$}),m.onMountSelect&&(t(0,m.onMountSelect=!1,m),h==null||h.select()),()=>{j.removeByKey(Cr,"id",u)}));function O(P){te[P?"unshift":"push"](()=>{h=P,t(2,h)})}const E=P=>{const N=m.name;t(0,m.name=S(P.target.value),m),P.target.value=m.name,f("rename",{oldName:N,newName:m.name})};function L(){m.required=this.checked,t(0,m)}function F(){m.presentable=this.checked,t(0,m)}return n.$$set=P=>{"key"in P&&t(1,d=P.key),"field"in P&&t(0,m=P.field),"$$scope"in P&&t(18,a=P.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&m.toDelete&&m.originalName&&m.name!==m.originalName&&t(0,m.name=m.originalName,m),n.$$.dirty&1&&!m.originalName&&m.name&&t(0,m.originalName=m.name,m),n.$$.dirty&1&&typeof m.toDelete>"u"&&t(0,m.toDelete=!1,m),n.$$.dirty&1&&m.required&&t(0,m.nullable=!1,m),n.$$.dirty&1&&t(6,i=!m.toDelete&&!(m.id&&m.system)),n.$$.dirty&4098&&t(5,l=!j.isEmpty(j.getNestedVal(o,`schema.${d}`))),n.$$.dirty&1&&t(4,s=c[m==null?void 0:m.type]||"Nonempty")},[m,d,h,_,s,l,i,f,g,k,S,C,o,r,O,E,L,F,a]}class si extends ge{constructor(e){super(),_e(this,e,Y$,W$,he,{key:1,field:0})}}function K$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Min length"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"step","1"),p(s,"min","0")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.min),r||(a=K(s,"input",n[3]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&st(s.value)!==u[0].options.min&&ue(s,u[0].options.min)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function J$(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("label"),t=Y("Max length"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"step","1"),p(s,"min",r=n[0].options.min||0)},m(f,c){w(f,e,c),y(e,t),w(f,l,c),w(f,s,c),ue(s,n[0].options.max),a||(u=K(s,"input",n[4]),a=!0)},p(f,c){c&512&&i!==(i=f[9])&&p(e,"for",i),c&512&&o!==(o=f[9])&&p(s,"id",o),c&1&&r!==(r=f[0].options.min||0)&&p(s,"min",r),c&1&&st(s.value)!==f[0].options.max&&ue(s,f[0].options.max)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function Z$(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Regex pattern"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","text"),p(s,"id",o=n[9]),p(s,"placeholder","Valid Go regular expression, eg. ^\\w+$")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.pattern),r||(a=K(s,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&s.value!==u[0].options.pattern&&ue(s,u[0].options.pattern)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function G$(n){let e,t,i,l,s,o,r,a,u,f;return i=new me({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[K$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[J$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field",name:"schema."+n[1]+".options.pattern",$$slots:{default:[Z$,({uniqueId:c})=>({9:c}),({uniqueId:c})=>c?512:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),p(t,"class","col-sm-3"),p(s,"class","col-sm-3"),p(a,"class","col-sm-6"),p(e,"class","grid grid-sm")},m(c,d){w(c,e,d),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),f=!0},p(c,d){const m={};d&2&&(m.name="schema."+c[1]+".options.min"),d&1537&&(m.$$scope={dirty:d,ctx:c}),i.$set(m);const h={};d&2&&(h.name="schema."+c[1]+".options.max"),d&1537&&(h.$$scope={dirty:d,ctx:c}),o.$set(h);const _={};d&2&&(_.name="schema."+c[1]+".options.pattern"),d&1537&&(_.$$scope={dirty:d,ctx:c}),u.$set(_)},i(c){f||(A(i.$$.fragment,c),A(o.$$.fragment,c),A(u.$$.fragment,c),f=!0)},o(c){I(i.$$.fragment,c),I(o.$$.fragment,c),I(u.$$.fragment,c),f=!1},d(c){c&&v(e),z(i),z(o),z(u)}}}function X$(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[6](r)}let o={$$slots:{options:[G$]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[7]),e.$on("remove",n[8]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&1027&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function Q$(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(){s.options.min=st(this.value),t(0,s)}function a(){s.options.max=st(this.value),t(0,s)}function u(){s.options.pattern=this.value,t(0,s)}function f(m){s=m,t(0,s)}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(2,l=Ge(e,i)),"field"in m&&t(0,s=m.field),"key"in m&&t(1,o=m.key)},[s,o,l,r,a,u,f,c,d]}class x$ extends ge{constructor(e){super(),_e(this,e,Q$,X$,he,{field:0,key:1})}}function eT(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Min"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9])},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.min),r||(a=K(s,"input",n[4]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(s,"id",o),f&1&&st(s.value)!==u[0].options.min&&ue(s,u[0].options.min)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function tT(n){let e,t,i,l,s,o,r,a,u;return{c(){e=b("label"),t=Y("Max"),l=M(),s=b("input"),p(e,"for",i=n[9]),p(s,"type","number"),p(s,"id",o=n[9]),p(s,"min",r=n[0].options.min)},m(f,c){w(f,e,c),y(e,t),w(f,l,c),w(f,s,c),ue(s,n[0].options.max),a||(u=K(s,"input",n[5]),a=!0)},p(f,c){c&512&&i!==(i=f[9])&&p(e,"for",i),c&512&&o!==(o=f[9])&&p(s,"id",o),c&1&&r!==(r=f[0].options.min)&&p(s,"min",r),c&1&&st(s.value)!==f[0].options.max&&ue(s,f[0].options.max)},d(f){f&&(v(e),v(l),v(s)),a=!1,u()}}}function nT(n){let e,t,i,l,s,o,r;return i=new me({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[eT,({uniqueId:a})=>({9:a}),({uniqueId:a})=>a?512:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[tT,({uniqueId:a})=>({9:a}),({uniqueId:a})=>a?512:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),p(t,"class","col-sm-6"),p(s,"class","col-sm-6"),p(e,"class","grid grid-sm")},m(a,u){w(a,e,u),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),r=!0},p(a,u){const f={};u&2&&(f.name="schema."+a[1]+".options.min"),u&1537&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.max"),u&1537&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){I(i.$$.fragment,a),I(o.$$.fragment,a),r=!1},d(a){a&&v(e),z(i),z(o)}}}function iT(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="No decimals",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[9]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[9])},m(c,d){w(c,e,d),e.checked=n[0].options.noDecimal,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[3]),ve(Le.call(null,r,{text:"Existing decimal numbers will not be affected."}))],u=!0)},p(c,d){d&512&&t!==(t=c[9])&&p(e,"id",t),d&1&&(e.checked=c[0].options.noDecimal),d&512&&a!==(a=c[9])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function lT(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle",name:"schema."+n[1]+".options.noDecimal",$$slots:{default:[iT,({uniqueId:i})=>({9:i}),({uniqueId:i})=>i?512:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.name="schema."+i[1]+".options.noDecimal"),l&1537&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function sT(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[6](r)}let o={$$slots:{optionsFooter:[lT],options:[nT]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[7]),e.$on("remove",n[8]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&1027&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function oT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(){s.options.noDecimal=this.checked,t(0,s)}function a(){s.options.min=st(this.value),t(0,s)}function u(){s.options.max=st(this.value),t(0,s)}function f(m){s=m,t(0,s)}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(2,l=Ge(e,i)),"field"in m&&t(0,s=m.field),"key"in m&&t(1,o=m.key)},[s,o,l,r,a,u,f,c,d]}class rT extends ge{constructor(e){super(),_e(this,e,oT,sT,he,{field:0,key:1})}}function aT(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[3](r)}let o={};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[4]),e.$on("remove",n[5]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function uT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(f){s=f,t(0,s)}function a(f){Ae.call(this,n,f)}function u(f){Ae.call(this,n,f)}return n.$$set=f=>{e=Ne(Ne({},e),Kt(f)),t(2,l=Ge(e,i)),"field"in f&&t(0,s=f.field),"key"in f&&t(1,o=f.key)},[s,o,l,r,a,u]}class fT extends ge{constructor(e){super(),_e(this,e,uT,aT,he,{field:0,key:1})}}function cT(n){let e,t,i,l,s=[{type:t=n[5].type||"text"},{value:n[4]},{disabled:n[3]},{readOnly:n[2]},n[5]],o={};for(let r=0;r{t(0,o=j.splitNonEmpty(c.target.value,r))};return n.$$set=c=>{e=Ne(Ne({},e),Kt(c)),t(5,s=Ge(e,l)),"value"in c&&t(0,o=c.value),"separator"in c&&t(1,r=c.separator),"readonly"in c&&t(2,a=c.readonly),"disabled"in c&&t(3,u=c.disabled)},n.$$.update=()=>{n.$$.dirty&3&&t(4,i=j.joinNonEmpty(o,r+" "))},[o,r,a,u,i,s,f]}class Ll extends ge{constructor(e){super(),_e(this,e,dT,cT,he,{value:0,separator:1,readonly:2,disabled:3})}}function pT(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[3](g)}let _={id:n[8],disabled:!j.isEmpty(n[0].options.onlyDomains)};return n[0].options.exceptDomains!==void 0&&(_.value=n[0].options.exceptDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Except domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[8]),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`List of domains that are NOT allowed. This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(g,k){(!c||k&256&&s!==(s=g[8]))&&p(e,"for",s);const S={};k&256&&(S.id=g[8]),k&1&&(S.disabled=!j.isEmpty(g[0].options.onlyDomains)),!a&&k&1&&(a=!0,S.value=g[0].options.exceptDomains,ye(()=>a=!1)),r.$set(S)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){I(r.$$.fragment,g),c=!1},d(g){g&&(v(e),v(o),v(u),v(f)),z(r,g),d=!1,m()}}}function mT(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[4](g)}let _={id:n[8]+".options.onlyDomains",disabled:!j.isEmpty(n[0].options.exceptDomains)};return n[0].options.onlyDomains!==void 0&&(_.value=n[0].options.onlyDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Only domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[8]+".options.onlyDomains"),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`List of domains that are ONLY allowed. This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(g,k){(!c||k&256&&s!==(s=g[8]+".options.onlyDomains"))&&p(e,"for",s);const S={};k&256&&(S.id=g[8]+".options.onlyDomains"),k&1&&(S.disabled=!j.isEmpty(g[0].options.exceptDomains)),!a&&k&1&&(a=!0,S.value=g[0].options.onlyDomains,ye(()=>a=!1)),r.$set(S)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){I(r.$$.fragment,g),c=!1},d(g){g&&(v(e),v(o),v(u),v(f)),z(r,g),d=!1,m()}}}function hT(n){let e,t,i,l,s,o,r;return i=new me({props:{class:"form-field",name:"schema."+n[1]+".options.exceptDomains",$$slots:{default:[pT,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"schema."+n[1]+".options.onlyDomains",$$slots:{default:[mT,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),p(t,"class","col-sm-6"),p(s,"class","col-sm-6"),p(e,"class","grid grid-sm")},m(a,u){w(a,e,u),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),r=!0},p(a,u){const f={};u&2&&(f.name="schema."+a[1]+".options.exceptDomains"),u&769&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.onlyDomains"),u&769&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){I(i.$$.fragment,a),I(o.$$.fragment,a),r=!1},d(a){a&&v(e),z(i),z(o)}}}function _T(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[5](r)}let o={$$slots:{options:[hT]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[6]),e.$on("remove",n[7]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&515&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function gT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(d){n.$$.not_equal(s.options.exceptDomains,d)&&(s.options.exceptDomains=d,t(0,s))}function a(d){n.$$.not_equal(s.options.onlyDomains,d)&&(s.options.onlyDomains=d,t(0,s))}function u(d){s=d,t(0,s)}function f(d){Ae.call(this,n,d)}function c(d){Ae.call(this,n,d)}return n.$$set=d=>{e=Ne(Ne({},e),Kt(d)),t(2,l=Ge(e,i)),"field"in d&&t(0,s=d.field),"key"in d&&t(1,o=d.key)},[s,o,l,r,a,u,f,c]}class Lb extends ge{constructor(e){super(),_e(this,e,gT,_T,he,{field:0,key:1})}}function bT(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[3](r)}let o={};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[4]),e.$on("remove",n[5]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function yT(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(f){s=f,t(0,s)}function a(f){Ae.call(this,n,f)}function u(f){Ae.call(this,n,f)}return n.$$set=f=>{e=Ne(Ne({},e),Kt(f)),t(2,l=Ge(e,i)),"field"in f&&t(0,s=f.field),"key"in f&&t(1,o=f.key)},[s,o,l,r,a,u]}class kT extends ge{constructor(e){super(),_e(this,e,yT,bT,he,{field:0,key:1})}}function vT(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Strip urls domain",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[8]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[8])},m(c,d){w(c,e,d),e.checked=n[0].options.convertUrls,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[3]),ve(Le.call(null,r,{text:"This could help making the editor content more portable between environments since there will be no local base url to replace."}))],u=!0)},p(c,d){d&256&&t!==(t=c[8])&&p(e,"id",t),d&1&&(e.checked=c[0].options.convertUrls),d&256&&a!==(a=c[8])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function wT(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle",name:"schema."+n[1]+".options.convertUrls",$$slots:{default:[vT,({uniqueId:i})=>({8:i}),({uniqueId:i})=>i?256:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&2&&(s.name="schema."+i[1]+".options.convertUrls"),l&769&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function ST(n){let e,t,i;const l=[{key:n[1]},n[2]];function s(r){n[4](r)}let o={$$slots:{optionsFooter:[wT]},$$scope:{ctx:n}};for(let r=0;rbe(e,"field",s)),e.$on("rename",n[5]),e.$on("remove",n[6]),{c(){V(e.$$.fragment)},m(r,a){H(e,r,a),i=!0},p(r,[a]){const u=a&6?pt(l,[a&2&&{key:r[1]},a&4&&Tt(r[2])]):{};a&515&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.field=r[0],ye(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function $T(n,e,t){const i=["field","key"];let l=Ge(e,i),{field:s}=e,{key:o=""}=e;function r(){t(0,s.options={convertUrls:!1},s)}function a(){s.options.convertUrls=this.checked,t(0,s)}function u(d){s=d,t(0,s)}function f(d){Ae.call(this,n,d)}function c(d){Ae.call(this,n,d)}return n.$$set=d=>{e=Ne(Ne({},e),Kt(d)),t(2,l=Ge(e,i)),"field"in d&&t(0,s=d.field),"key"in d&&t(1,o=d.key)},n.$$.update=()=>{n.$$.dirty&1&&j.isEmpty(s.options)&&r()},[s,o,l,a,u,f,c]}class TT extends ge{constructor(e){super(),_e(this,e,$T,ST,he,{field:0,key:1})}}var Mr=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],yl={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console<"u"&&console.warn(n)},getWeek:function(n){var e=new Date(n.getTime());e.setHours(0,0,0,0),e.setDate(e.getDate()+3-(e.getDay()+6)%7);var t=new Date(e.getFullYear(),0,4);return 1+Math.round(((e.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},gs={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var e=n%100;if(e>3&&e<21)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},pn=function(n,e){return e===void 0&&(e=2),("000"+n).slice(e*-1)},Ln=function(n){return n===!0?1:0};function sd(n,e){var t;return function(){var i=this,l=arguments;clearTimeout(t),t=setTimeout(function(){return n.apply(i,l)},e)}}var Or=function(n){return n instanceof Array?n:[n]};function rn(n,e,t){if(t===!0)return n.classList.add(e);n.classList.remove(e)}function ct(n,e,t){var i=window.document.createElement(n);return e=e||"",t=t||"",i.className=e,t!==void 0&&(i.textContent=t),i}function no(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function Pb(n,e){if(e(n))return n;if(n.parentNode)return Pb(n.parentNode,e)}function io(n,e){var t=ct("div","numInputWrapper"),i=ct("input","numInput "+n),l=ct("span","arrowUp"),s=ct("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?i.type="number":(i.type="text",i.pattern="\\d*"),e!==void 0)for(var o in e)i.setAttribute(o,e[o]);return t.appendChild(i),t.appendChild(l),t.appendChild(s),t}function yn(n){try{if(typeof n.composedPath=="function"){var e=n.composedPath();return e[0]}return n.target}catch{return n.target}}var Dr=function(){},qo=function(n,e,t){return t.months[e?"shorthand":"longhand"][n]},CT={D:Dr,F:function(n,e,t){n.setMonth(t.months.longhand.indexOf(e))},G:function(n,e){n.setHours((n.getHours()>=12?12:0)+parseFloat(e))},H:function(n,e){n.setHours(parseFloat(e))},J:function(n,e){n.setDate(parseFloat(e))},K:function(n,e,t){n.setHours(n.getHours()%12+12*Ln(new RegExp(t.amPM[1],"i").test(e)))},M:function(n,e,t){n.setMonth(t.months.shorthand.indexOf(e))},S:function(n,e){n.setSeconds(parseFloat(e))},U:function(n,e){return new Date(parseFloat(e)*1e3)},W:function(n,e,t){var i=parseInt(e),l=new Date(n.getFullYear(),0,2+(i-1)*7,0,0,0,0);return l.setDate(l.getDate()-l.getDay()+t.firstDayOfWeek),l},Y:function(n,e){n.setFullYear(parseFloat(e))},Z:function(n,e){return new Date(e)},d:function(n,e){n.setDate(parseFloat(e))},h:function(n,e){n.setHours((n.getHours()>=12?12:0)+parseFloat(e))},i:function(n,e){n.setMinutes(parseFloat(e))},j:function(n,e){n.setDate(parseFloat(e))},l:Dr,m:function(n,e){n.setMonth(parseFloat(e)-1)},n:function(n,e){n.setMonth(parseFloat(e)-1)},s:function(n,e){n.setSeconds(parseFloat(e))},u:function(n,e){return new Date(parseFloat(e))},w:Dr,y:function(n,e){n.setFullYear(2e3+parseFloat(e))}},Ji={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},os={Z:function(n){return n.toISOString()},D:function(n,e,t){return e.weekdays.shorthand[os.w(n,e,t)]},F:function(n,e,t){return qo(os.n(n,e,t)-1,!1,e)},G:function(n,e,t){return pn(os.h(n,e,t))},H:function(n){return pn(n.getHours())},J:function(n,e){return e.ordinal!==void 0?n.getDate()+e.ordinal(n.getDate()):n.getDate()},K:function(n,e){return e.amPM[Ln(n.getHours()>11)]},M:function(n,e){return qo(n.getMonth(),!0,e)},S:function(n){return pn(n.getSeconds())},U:function(n){return n.getTime()/1e3},W:function(n,e,t){return t.getWeek(n)},Y:function(n){return pn(n.getFullYear(),4)},d:function(n){return pn(n.getDate())},h:function(n){return n.getHours()%12?n.getHours()%12:12},i:function(n){return pn(n.getMinutes())},j:function(n){return n.getDate()},l:function(n,e){return e.weekdays.longhand[n.getDay()]},m:function(n){return pn(n.getMonth()+1)},n:function(n){return n.getMonth()+1},s:function(n){return n.getSeconds()},u:function(n){return n.getTime()},w:function(n){return n.getDay()},y:function(n){return String(n.getFullYear()).substring(2)}},Nb=function(n){var e=n.config,t=e===void 0?yl:e,i=n.l10n,l=i===void 0?gs:i,s=n.isMobile,o=s===void 0?!1:s;return function(r,a,u){var f=u||l;return t.formatDate!==void 0&&!o?t.formatDate(r,a,f):a.split("").map(function(c,d,m){return os[c]&&m[d-1]!=="\\"?os[c](r,f,t):c!=="\\"?c:""}).join("")}},fa=function(n){var e=n.config,t=e===void 0?yl:e,i=n.l10n,l=i===void 0?gs:i;return function(s,o,r,a){if(!(s!==0&&!s)){var u=a||l,f,c=s;if(s instanceof Date)f=new Date(s.getTime());else if(typeof s!="string"&&s.toFixed!==void 0)f=new Date(s);else if(typeof s=="string"){var d=o||(t||yl).dateFormat,m=String(s).trim();if(m==="today")f=new Date,r=!0;else if(t&&t.parseDate)f=t.parseDate(s,d);else if(/Z$/.test(m)||/GMT$/.test(m))f=new Date(s);else{for(var h=void 0,_=[],g=0,k=0,S="";gMath.min(e,t)&&n=0?new Date:new Date(t.config.minDate.getTime()),ie=Ar(t.config);X.setHours(ie.hours,ie.minutes,ie.seconds,X.getMilliseconds()),t.selectedDates=[X],t.latestSelectedDateObj=X}Z!==void 0&&Z.type!=="blur"&&oi(Z);var de=t._input.value;c(),en(),t._input.value!==de&&t._debouncedChange()}function u(Z,X){return Z%12+12*Ln(X===t.l10n.amPM[1])}function f(Z){switch(Z%24){case 0:case 12:return 12;default:return Z%12}}function c(){if(!(t.hourElement===void 0||t.minuteElement===void 0)){var Z=(parseInt(t.hourElement.value.slice(-2),10)||0)%24,X=(parseInt(t.minuteElement.value,10)||0)%60,ie=t.secondElement!==void 0?(parseInt(t.secondElement.value,10)||0)%60:0;t.amPM!==void 0&&(Z=u(Z,t.amPM.textContent));var de=t.config.minTime!==void 0||t.config.minDate&&t.minDateHasTime&&t.latestSelectedDateObj&&kn(t.latestSelectedDateObj,t.config.minDate,!0)===0,$e=t.config.maxTime!==void 0||t.config.maxDate&&t.maxDateHasTime&&t.latestSelectedDateObj&&kn(t.latestSelectedDateObj,t.config.maxDate,!0)===0;if(t.config.maxTime!==void 0&&t.config.minTime!==void 0&&t.config.minTime>t.config.maxTime){var Ie=Er(t.config.minTime.getHours(),t.config.minTime.getMinutes(),t.config.minTime.getSeconds()),Je=Er(t.config.maxTime.getHours(),t.config.maxTime.getMinutes(),t.config.maxTime.getSeconds()),qe=Er(Z,X,ie);if(qe>Je&&qe=12)]),t.secondElement!==void 0&&(t.secondElement.value=pn(ie)))}function h(Z){var X=yn(Z),ie=parseInt(X.value)+(Z.delta||0);(ie/1e3>1||Z.key==="Enter"&&!/[^\d]/.test(ie.toString()))&&tt(ie)}function _(Z,X,ie,de){if(X instanceof Array)return X.forEach(function($e){return _(Z,$e,ie,de)});if(Z instanceof Array)return Z.forEach(function($e){return _($e,X,ie,de)});Z.addEventListener(X,ie,de),t._handlers.push({remove:function(){return Z.removeEventListener(X,ie,de)}})}function g(){gt("onChange")}function k(){if(t.config.wrap&&["open","close","toggle","clear"].forEach(function(ie){Array.prototype.forEach.call(t.element.querySelectorAll("[data-"+ie+"]"),function(de){return _(de,"click",t[ie])})}),t.isMobile){al();return}var Z=sd(ze,50);if(t._debouncedChange=sd(g,ET),t.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&_(t.daysContainer,"mouseover",function(ie){t.config.mode==="range"&&Oe(yn(ie))}),_(t._input,"keydown",Te),t.calendarContainer!==void 0&&_(t.calendarContainer,"keydown",Te),!t.config.inline&&!t.config.static&&_(window,"resize",Z),window.ontouchstart!==void 0?_(window.document,"touchstart",Ze):_(window.document,"mousedown",Ze),_(window.document,"focus",Ze,{capture:!0}),t.config.clickOpens===!0&&(_(t._input,"focus",t.open),_(t._input,"click",t.open)),t.daysContainer!==void 0&&(_(t.monthNav,"click",Bn),_(t.monthNav,["keyup","increment"],h),_(t.daysContainer,"click",ol)),t.timeContainer!==void 0&&t.minuteElement!==void 0&&t.hourElement!==void 0){var X=function(ie){return yn(ie).select()};_(t.timeContainer,["increment"],a),_(t.timeContainer,"blur",a,{capture:!0}),_(t.timeContainer,"click",T),_([t.hourElement,t.minuteElement],["focus","click"],X),t.secondElement!==void 0&&_(t.secondElement,"focus",function(){return t.secondElement&&t.secondElement.select()}),t.amPM!==void 0&&_(t.amPM,"click",function(ie){a(ie)})}t.config.allowInput&&_(t._input,"blur",Pt)}function S(Z,X){var ie=Z!==void 0?t.parseDate(Z):t.latestSelectedDateObj||(t.config.minDate&&t.config.minDate>t.now?t.config.minDate:t.config.maxDate&&t.config.maxDate1),t.calendarContainer.appendChild(Z);var $e=t.config.appendTo!==void 0&&t.config.appendTo.nodeType!==void 0;if((t.config.inline||t.config.static)&&(t.calendarContainer.classList.add(t.config.inline?"inline":"static"),t.config.inline&&(!$e&&t.element.parentNode?t.element.parentNode.insertBefore(t.calendarContainer,t._input.nextSibling):t.config.appendTo!==void 0&&t.config.appendTo.appendChild(t.calendarContainer)),t.config.static)){var Ie=ct("div","flatpickr-wrapper");t.element.parentNode&&t.element.parentNode.insertBefore(Ie,t.element),Ie.appendChild(t.element),t.altInput&&Ie.appendChild(t.altInput),Ie.appendChild(t.calendarContainer)}!t.config.static&&!t.config.inline&&(t.config.appendTo!==void 0?t.config.appendTo:window.document.body).appendChild(t.calendarContainer)}function D(Z,X,ie,de){var $e=Xe(X,!0),Ie=ct("span",Z,X.getDate().toString());return Ie.dateObj=X,Ie.$i=de,Ie.setAttribute("aria-label",t.formatDate(X,t.config.ariaDateFormat)),Z.indexOf("hidden")===-1&&kn(X,t.now)===0&&(t.todayDateElem=Ie,Ie.classList.add("today"),Ie.setAttribute("aria-current","date")),$e?(Ie.tabIndex=-1,Ce(X)&&(Ie.classList.add("selected"),t.selectedDateElem=Ie,t.config.mode==="range"&&(rn(Ie,"startRange",t.selectedDates[0]&&kn(X,t.selectedDates[0],!0)===0),rn(Ie,"endRange",t.selectedDates[1]&&kn(X,t.selectedDates[1],!0)===0),Z==="nextMonthDay"&&Ie.classList.add("inRange")))):Ie.classList.add("flatpickr-disabled"),t.config.mode==="range"&&Qe(X)&&!Ce(X)&&Ie.classList.add("inRange"),t.weekNumbers&&t.config.showMonths===1&&Z!=="prevMonthDay"&&de%7===6&&t.weekNumbers.insertAdjacentHTML("beforeend",""+t.config.getWeek(X)+""),gt("onDayCreate",Ie),Ie}function O(Z){Z.focus(),t.config.mode==="range"&&Oe(Z)}function E(Z){for(var X=Z>0?0:t.config.showMonths-1,ie=Z>0?t.config.showMonths:-1,de=X;de!=ie;de+=Z)for(var $e=t.daysContainer.children[de],Ie=Z>0?0:$e.children.length-1,Je=Z>0?$e.children.length:-1,qe=Ie;qe!=Je;qe+=Z){var xe=$e.children[qe];if(xe.className.indexOf("hidden")===-1&&Xe(xe.dateObj))return xe}}function L(Z,X){for(var ie=Z.className.indexOf("Month")===-1?Z.dateObj.getMonth():t.currentMonth,de=X>0?t.config.showMonths:-1,$e=X>0?1:-1,Ie=ie-t.currentMonth;Ie!=de;Ie+=$e)for(var Je=t.daysContainer.children[Ie],qe=ie-t.currentMonth===Ie?Z.$i+X:X<0?Je.children.length-1:0,xe=Je.children.length,Re=qe;Re>=0&&Re0?xe:-1);Re+=$e){var Be=Je.children[Re];if(Be.className.indexOf("hidden")===-1&&Xe(Be.dateObj)&&Math.abs(Z.$i-Re)>=Math.abs(X))return O(Be)}t.changeMonth($e),F(E($e),0)}function F(Z,X){var ie=s(),de=Ct(ie||document.body),$e=Z!==void 0?Z:de?ie:t.selectedDateElem!==void 0&&Ct(t.selectedDateElem)?t.selectedDateElem:t.todayDateElem!==void 0&&Ct(t.todayDateElem)?t.todayDateElem:E(X>0?1:-1);$e===void 0?t._input.focus():de?L($e,X):O($e)}function P(Z,X){for(var ie=(new Date(Z,X,1).getDay()-t.l10n.firstDayOfWeek+7)%7,de=t.utils.getDaysInMonth((X-1+12)%12,Z),$e=t.utils.getDaysInMonth(X,Z),Ie=window.document.createDocumentFragment(),Je=t.config.showMonths>1,qe=Je?"prevMonthDay hidden":"prevMonthDay",xe=Je?"nextMonthDay hidden":"nextMonthDay",Re=de+1-ie,Be=0;Re<=de;Re++,Be++)Ie.appendChild(D("flatpickr-day "+qe,new Date(Z,X-1,Re),Re,Be));for(Re=1;Re<=$e;Re++,Be++)Ie.appendChild(D("flatpickr-day",new Date(Z,X,Re),Re,Be));for(var yt=$e+1;yt<=42-ie&&(t.config.showMonths===1||Be%7!==0);yt++,Be++)Ie.appendChild(D("flatpickr-day "+xe,new Date(Z,X+1,yt%$e),yt,Be));var Xn=ct("div","dayContainer");return Xn.appendChild(Ie),Xn}function N(){if(t.daysContainer!==void 0){no(t.daysContainer),t.weekNumbers&&no(t.weekNumbers);for(var Z=document.createDocumentFragment(),X=0;X1||t.config.monthSelectorType!=="dropdown")){var Z=function(de){return t.config.minDate!==void 0&&t.currentYear===t.config.minDate.getFullYear()&&det.config.maxDate.getMonth())};t.monthsDropdownContainer.tabIndex=-1,t.monthsDropdownContainer.innerHTML="";for(var X=0;X<12;X++)if(Z(X)){var ie=ct("option","flatpickr-monthDropdown-month");ie.value=new Date(t.currentYear,X).getMonth().toString(),ie.textContent=qo(X,t.config.shorthandCurrentMonth,t.l10n),ie.tabIndex=-1,t.currentMonth===X&&(ie.selected=!0),t.monthsDropdownContainer.appendChild(ie)}}}function q(){var Z=ct("div","flatpickr-month"),X=window.document.createDocumentFragment(),ie;t.config.showMonths>1||t.config.monthSelectorType==="static"?ie=ct("span","cur-month"):(t.monthsDropdownContainer=ct("select","flatpickr-monthDropdown-months"),t.monthsDropdownContainer.setAttribute("aria-label",t.l10n.monthAriaLabel),_(t.monthsDropdownContainer,"change",function(Je){var qe=yn(Je),xe=parseInt(qe.value,10);t.changeMonth(xe-t.currentMonth),gt("onMonthChange")}),R(),ie=t.monthsDropdownContainer);var de=io("cur-year",{tabindex:"-1"}),$e=de.getElementsByTagName("input")[0];$e.setAttribute("aria-label",t.l10n.yearAriaLabel),t.config.minDate&&$e.setAttribute("min",t.config.minDate.getFullYear().toString()),t.config.maxDate&&($e.setAttribute("max",t.config.maxDate.getFullYear().toString()),$e.disabled=!!t.config.minDate&&t.config.minDate.getFullYear()===t.config.maxDate.getFullYear());var Ie=ct("div","flatpickr-current-month");return Ie.appendChild(ie),Ie.appendChild(de),X.appendChild(Ie),Z.appendChild(X),{container:Z,yearElement:$e,monthElement:ie}}function W(){no(t.monthNav),t.monthNav.appendChild(t.prevMonthNav),t.config.showMonths&&(t.yearElements=[],t.monthElements=[]);for(var Z=t.config.showMonths;Z--;){var X=q();t.yearElements.push(X.yearElement),t.monthElements.push(X.monthElement),t.monthNav.appendChild(X.container)}t.monthNav.appendChild(t.nextMonthNav)}function J(){return t.monthNav=ct("div","flatpickr-months"),t.yearElements=[],t.monthElements=[],t.prevMonthNav=ct("span","flatpickr-prev-month"),t.prevMonthNav.innerHTML=t.config.prevArrow,t.nextMonthNav=ct("span","flatpickr-next-month"),t.nextMonthNav.innerHTML=t.config.nextArrow,W(),Object.defineProperty(t,"_hidePrevMonthArrow",{get:function(){return t.__hidePrevMonthArrow},set:function(Z){t.__hidePrevMonthArrow!==Z&&(rn(t.prevMonthNav,"flatpickr-disabled",Z),t.__hidePrevMonthArrow=Z)}}),Object.defineProperty(t,"_hideNextMonthArrow",{get:function(){return t.__hideNextMonthArrow},set:function(Z){t.__hideNextMonthArrow!==Z&&(rn(t.nextMonthNav,"flatpickr-disabled",Z),t.__hideNextMonthArrow=Z)}}),t.currentYearElement=t.yearElements[0],Jt(),t.monthNav}function G(){t.calendarContainer.classList.add("hasTime"),t.config.noCalendar&&t.calendarContainer.classList.add("noCalendar");var Z=Ar(t.config);t.timeContainer=ct("div","flatpickr-time"),t.timeContainer.tabIndex=-1;var X=ct("span","flatpickr-time-separator",":"),ie=io("flatpickr-hour",{"aria-label":t.l10n.hourAriaLabel});t.hourElement=ie.getElementsByTagName("input")[0];var de=io("flatpickr-minute",{"aria-label":t.l10n.minuteAriaLabel});if(t.minuteElement=de.getElementsByTagName("input")[0],t.hourElement.tabIndex=t.minuteElement.tabIndex=-1,t.hourElement.value=pn(t.latestSelectedDateObj?t.latestSelectedDateObj.getHours():t.config.time_24hr?Z.hours:f(Z.hours)),t.minuteElement.value=pn(t.latestSelectedDateObj?t.latestSelectedDateObj.getMinutes():Z.minutes),t.hourElement.setAttribute("step",t.config.hourIncrement.toString()),t.minuteElement.setAttribute("step",t.config.minuteIncrement.toString()),t.hourElement.setAttribute("min",t.config.time_24hr?"0":"1"),t.hourElement.setAttribute("max",t.config.time_24hr?"23":"12"),t.hourElement.setAttribute("maxlength","2"),t.minuteElement.setAttribute("min","0"),t.minuteElement.setAttribute("max","59"),t.minuteElement.setAttribute("maxlength","2"),t.timeContainer.appendChild(ie),t.timeContainer.appendChild(X),t.timeContainer.appendChild(de),t.config.time_24hr&&t.timeContainer.classList.add("time24hr"),t.config.enableSeconds){t.timeContainer.classList.add("hasSeconds");var $e=io("flatpickr-second");t.secondElement=$e.getElementsByTagName("input")[0],t.secondElement.value=pn(t.latestSelectedDateObj?t.latestSelectedDateObj.getSeconds():Z.seconds),t.secondElement.setAttribute("step",t.minuteElement.getAttribute("step")),t.secondElement.setAttribute("min","0"),t.secondElement.setAttribute("max","59"),t.secondElement.setAttribute("maxlength","2"),t.timeContainer.appendChild(ct("span","flatpickr-time-separator",":")),t.timeContainer.appendChild($e)}return t.config.time_24hr||(t.amPM=ct("span","flatpickr-am-pm",t.l10n.amPM[Ln((t.latestSelectedDateObj?t.hourElement.value:t.config.defaultHour)>11)]),t.amPM.title=t.l10n.toggleTitle,t.amPM.tabIndex=-1,t.timeContainer.appendChild(t.amPM)),t.timeContainer}function B(){t.weekdayContainer?no(t.weekdayContainer):t.weekdayContainer=ct("div","flatpickr-weekdays");for(var Z=t.config.showMonths;Z--;){var X=ct("div","flatpickr-weekdaycontainer");t.weekdayContainer.appendChild(X)}return U(),t.weekdayContainer}function U(){if(t.weekdayContainer){var Z=t.l10n.firstDayOfWeek,X=od(t.l10n.weekdays.shorthand);Z>0&&Z @@ -77,7 +77,7 @@ var xb=Object.defineProperty;var e0=(n,e,t)=>e in n?xb(n,e,{enumerable:!0,config `),l=b("code"),l.textContent="id",s=Y(` , `),o=b("code"),o.textContent="created",r=Y(` , `),a=b("code"),a.textContent="updated",u=M(),O&&O.c(),f=Y(` - .`),c=M(),d=b("div");for(let N=0;NC=!1)),$.$set(q)},i(N){if(!D){for(let R=0;RD.name===$))}function f($){return i.findIndex(C=>C===$)}function c($,C){var D;!((D=l==null?void 0:l.schema)!=null&&D.length)||$===C||!C||t(0,l.indexes=l.indexes.map(O=>j.replaceIndexColumn(O,$,C)),l)}function d($,C,D,O){D[O]=$,t(0,l)}const m=$=>o($),h=$=>c($.detail.oldName,$.detail.newName);function _($){n.$$.not_equal(l.schema,$)&&(l.schema=$,t(0,l))}const g=$=>{if(!$.detail)return;const C=$.detail.target;C.style.opacity=0,setTimeout(()=>{var D;(D=C==null?void 0:C.style)==null||D.removeProperty("opacity")},0),$.detail.dataTransfer.setDragImage(C,0,0)},k=()=>{Gt({})},S=$=>r($.detail);function T($){l=$,t(0,l)}return n.$$set=$=>{"collection"in $&&t(0,l=$.collection)},n.$$.update=()=>{n.$$.dirty&1&&typeof l.schema>"u"&&t(0,l.schema=[],l),n.$$.dirty&1&&(i=l.schema.filter($=>!$.toDelete)||[])},[l,s,o,r,f,c,d,m,h,_,g,k,S,T]}class xC extends ge{constructor(e){super(),_e(this,e,QC,XC,he,{collection:0})}}const e5=n=>({isAdminOnly:n&512}),Pd=n=>({isAdminOnly:n[9]}),t5=n=>({isAdminOnly:n&512}),Nd=n=>({isAdminOnly:n[9]}),n5=n=>({isAdminOnly:n&512}),Fd=n=>({isAdminOnly:n[9]});function i5(n){let e,t;return e=new me({props:{class:"form-field rule-field "+(n[4]?"requied":"")+" "+(n[9]?"disabled":""),name:n[3],$$slots:{default:[s5,({uniqueId:i})=>({18:i}),({uniqueId:i})=>i?262144:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&528&&(s.class="form-field rule-field "+(i[4]?"requied":"")+" "+(i[9]?"disabled":"")),l&8&&(s.name=i[3]),l&295655&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function l5(n){let e;return{c(){e=b("div"),e.innerHTML='',p(e,"class","txt-center")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function Rd(n){let e,t,i;return{c(){e=b("button"),e.innerHTML=' Set Admins only',p(e,"type","button"),p(e,"class","btn btn-sm btn-transparent btn-hint lock-toggle svelte-1akuazq")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[11]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function qd(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Unlock and set custom rule
',p(e,"type","button"),p(e,"class","unlock-overlay svelte-1akuazq"),p(e,"aria-label","Unlock and set custom rule")},m(o,r){w(o,e,r),i=!0,l||(s=K(e,"click",n[10]),l=!0)},p:Q,i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.98},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.98},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function s5(n){let e,t,i,l,s,o,r=n[9]?"- Admins only":"",a,u,f,c,d,m,h,_,g,k,S;const T=n[12].beforeLabel,$=kt(T,n,n[15],Fd),C=n[12].afterLabel,D=kt(C,n,n[15],Nd);let O=!n[9]&&Rd(n);function E(q){n[14](q)}var L=n[7];function F(q,W){let J={id:q[18],baseCollection:q[1],disabled:q[9],placeholder:q[9]?"":q[5]};return q[0]!==void 0&&(J.value=q[0]),{props:J}}L&&(m=Ot(L,F(n)),n[13](m),te.push(()=>be(m,"value",E)));let P=n[9]&&qd(n);const N=n[12].default,R=kt(N,n,n[15],Pd);return{c(){e=b("div"),t=b("label"),$&&$.c(),i=M(),l=b("span"),s=Y(n[2]),o=M(),a=Y(r),u=M(),D&&D.c(),f=M(),O&&O.c(),d=M(),m&&V(m.$$.fragment),_=M(),P&&P.c(),g=M(),k=b("div"),R&&R.c(),p(l,"class","txt"),ee(l,"txt-hint",n[9]),p(t,"for",c=n[18]),p(e,"class","input-wrapper svelte-1akuazq"),p(k,"class","help-block")},m(q,W){w(q,e,W),y(e,t),$&&$.m(t,null),y(t,i),y(t,l),y(l,s),y(l,o),y(l,a),y(t,u),D&&D.m(t,null),y(t,f),O&&O.m(t,null),y(e,d),m&&H(m,e,null),y(e,_),P&&P.m(e,null),w(q,g,W),w(q,k,W),R&&R.m(k,null),S=!0},p(q,W){if($&&$.p&&(!S||W&33280)&&wt($,T,q,q[15],S?vt(T,q[15],W,n5):St(q[15]),Fd),(!S||W&4)&&le(s,q[2]),(!S||W&512)&&r!==(r=q[9]?"- Admins only":"")&&le(a,r),(!S||W&512)&&ee(l,"txt-hint",q[9]),D&&D.p&&(!S||W&33280)&&wt(D,C,q,q[15],S?vt(C,q[15],W,t5):St(q[15]),Nd),q[9]?O&&(O.d(1),O=null):O?O.p(q,W):(O=Rd(q),O.c(),O.m(t,null)),(!S||W&262144&&c!==(c=q[18]))&&p(t,"for",c),W&128&&L!==(L=q[7])){if(m){oe();const J=m;I(J.$$.fragment,1,0,()=>{z(J,1)}),re()}L?(m=Ot(L,F(q)),q[13](m),te.push(()=>be(m,"value",E)),V(m.$$.fragment),A(m.$$.fragment,1),H(m,e,_)):m=null}else if(L){const J={};W&262144&&(J.id=q[18]),W&2&&(J.baseCollection=q[1]),W&512&&(J.disabled=q[9]),W&544&&(J.placeholder=q[9]?"":q[5]),!h&&W&1&&(h=!0,J.value=q[0],ye(()=>h=!1)),m.$set(J)}q[9]?P?(P.p(q,W),W&512&&A(P,1)):(P=qd(q),P.c(),A(P,1),P.m(e,null)):P&&(oe(),I(P,1,1,()=>{P=null}),re()),R&&R.p&&(!S||W&33280)&&wt(R,N,q,q[15],S?vt(N,q[15],W,e5):St(q[15]),Pd)},i(q){S||(A($,q),A(D,q),m&&A(m.$$.fragment,q),A(P),A(R,q),S=!0)},o(q){I($,q),I(D,q),m&&I(m.$$.fragment,q),I(P),I(R,q),S=!1},d(q){q&&(v(e),v(g),v(k)),$&&$.d(q),D&&D.d(q),O&&O.d(),n[13](null),m&&z(m),P&&P.d(),R&&R.d(q)}}}function o5(n){let e,t,i,l;const s=[l5,i5],o=[];function r(a,u){return a[8]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,[u]){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}let jd;function r5(n,e,t){let i,{$$slots:l={},$$scope:s}=e,{collection:o=null}=e,{rule:r=null}=e,{label:a="Rule"}=e,{formKey:u="rule"}=e,{required:f=!1}=e,{placeholder:c="Leave empty to grant everyone access..."}=e,d=null,m=null,h=jd,_=!1;g();async function g(){h||_||(t(8,_=!0),t(7,h=(await rt(()=>import("./FilterAutocompleteInput-e50206fe.js"),["./FilterAutocompleteInput-e50206fe.js","./index-9ee652b3.js"],import.meta.url)).default),jd=h,t(8,_=!1))}async function k(){t(0,r=m||""),await Qt(),d==null||d.focus()}async function S(){m=r,t(0,r=null)}function T(C){te[C?"unshift":"push"](()=>{d=C,t(6,d)})}function $(C){r=C,t(0,r)}return n.$$set=C=>{"collection"in C&&t(1,o=C.collection),"rule"in C&&t(0,r=C.rule),"label"in C&&t(2,a=C.label),"formKey"in C&&t(3,u=C.formKey),"required"in C&&t(4,f=C.required),"placeholder"in C&&t(5,c=C.placeholder),"$$scope"in C&&t(15,s=C.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&t(9,i=r===null)},[r,o,a,u,f,c,d,h,_,i,k,S,l,T,$,s]}class vl extends ge{constructor(e){super(),_e(this,e,r5,o5,he,{collection:1,rule:0,label:2,formKey:3,required:4,placeholder:5})}}function Hd(n,e,t){const i=n.slice();return i[11]=e[t],i}function zd(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L=pe(n[2]),F=[];for(let P=0;P@request
filter:",c=M(),d=b("div"),d.innerHTML="@request.headers.* @request.query.* @request.data.* @request.auth.*",m=M(),h=b("hr"),_=M(),g=b("p"),g.innerHTML="You could also add constraints and query other collections using the @collection filter:",k=M(),S=b("div"),S.innerHTML="@collection.ANY_COLLECTION_NAME.*",T=M(),$=b("hr"),C=M(),D=b("p"),D.innerHTML=`Example rule: + .`),c=M(),d=b("div");for(let N=0;NC=!1)),$.$set(q)},i(N){if(!D){for(let R=0;RD.name===$))}function f($){return i.findIndex(C=>C===$)}function c($,C){var D;!((D=l==null?void 0:l.schema)!=null&&D.length)||$===C||!C||t(0,l.indexes=l.indexes.map(O=>j.replaceIndexColumn(O,$,C)),l)}function d($,C,D,O){D[O]=$,t(0,l)}const m=$=>o($),h=$=>c($.detail.oldName,$.detail.newName);function _($){n.$$.not_equal(l.schema,$)&&(l.schema=$,t(0,l))}const g=$=>{if(!$.detail)return;const C=$.detail.target;C.style.opacity=0,setTimeout(()=>{var D;(D=C==null?void 0:C.style)==null||D.removeProperty("opacity")},0),$.detail.dataTransfer.setDragImage(C,0,0)},k=()=>{Gt({})},S=$=>r($.detail);function T($){l=$,t(0,l)}return n.$$set=$=>{"collection"in $&&t(0,l=$.collection)},n.$$.update=()=>{n.$$.dirty&1&&typeof l.schema>"u"&&t(0,l.schema=[],l),n.$$.dirty&1&&(i=l.schema.filter($=>!$.toDelete)||[])},[l,s,o,r,f,c,d,m,h,_,g,k,S,T]}class xC extends ge{constructor(e){super(),_e(this,e,QC,XC,he,{collection:0})}}const e5=n=>({isAdminOnly:n&512}),Pd=n=>({isAdminOnly:n[9]}),t5=n=>({isAdminOnly:n&512}),Nd=n=>({isAdminOnly:n[9]}),n5=n=>({isAdminOnly:n&512}),Fd=n=>({isAdminOnly:n[9]});function i5(n){let e,t;return e=new me({props:{class:"form-field rule-field "+(n[4]?"requied":"")+" "+(n[9]?"disabled":""),name:n[3],$$slots:{default:[s5,({uniqueId:i})=>({18:i}),({uniqueId:i})=>i?262144:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&528&&(s.class="form-field rule-field "+(i[4]?"requied":"")+" "+(i[9]?"disabled":"")),l&8&&(s.name=i[3]),l&295655&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function l5(n){let e;return{c(){e=b("div"),e.innerHTML='',p(e,"class","txt-center")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function Rd(n){let e,t,i;return{c(){e=b("button"),e.innerHTML=' Set Admins only',p(e,"type","button"),p(e,"class","btn btn-sm btn-transparent btn-hint lock-toggle svelte-1akuazq")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[11]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function qd(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Unlock and set custom rule
',p(e,"type","button"),p(e,"class","unlock-overlay svelte-1akuazq"),p(e,"aria-label","Unlock and set custom rule")},m(o,r){w(o,e,r),i=!0,l||(s=K(e,"click",n[10]),l=!0)},p:Q,i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.98},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.98},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function s5(n){let e,t,i,l,s,o,r=n[9]?"- Admins only":"",a,u,f,c,d,m,h,_,g,k,S;const T=n[12].beforeLabel,$=kt(T,n,n[15],Fd),C=n[12].afterLabel,D=kt(C,n,n[15],Nd);let O=!n[9]&&Rd(n);function E(q){n[14](q)}var L=n[7];function F(q,W){let J={id:q[18],baseCollection:q[1],disabled:q[9],placeholder:q[9]?"":q[5]};return q[0]!==void 0&&(J.value=q[0]),{props:J}}L&&(m=Ot(L,F(n)),n[13](m),te.push(()=>be(m,"value",E)));let P=n[9]&&qd(n);const N=n[12].default,R=kt(N,n,n[15],Pd);return{c(){e=b("div"),t=b("label"),$&&$.c(),i=M(),l=b("span"),s=Y(n[2]),o=M(),a=Y(r),u=M(),D&&D.c(),f=M(),O&&O.c(),d=M(),m&&V(m.$$.fragment),_=M(),P&&P.c(),g=M(),k=b("div"),R&&R.c(),p(l,"class","txt"),ee(l,"txt-hint",n[9]),p(t,"for",c=n[18]),p(e,"class","input-wrapper svelte-1akuazq"),p(k,"class","help-block")},m(q,W){w(q,e,W),y(e,t),$&&$.m(t,null),y(t,i),y(t,l),y(l,s),y(l,o),y(l,a),y(t,u),D&&D.m(t,null),y(t,f),O&&O.m(t,null),y(e,d),m&&H(m,e,null),y(e,_),P&&P.m(e,null),w(q,g,W),w(q,k,W),R&&R.m(k,null),S=!0},p(q,W){if($&&$.p&&(!S||W&33280)&&wt($,T,q,q[15],S?vt(T,q[15],W,n5):St(q[15]),Fd),(!S||W&4)&&le(s,q[2]),(!S||W&512)&&r!==(r=q[9]?"- Admins only":"")&&le(a,r),(!S||W&512)&&ee(l,"txt-hint",q[9]),D&&D.p&&(!S||W&33280)&&wt(D,C,q,q[15],S?vt(C,q[15],W,t5):St(q[15]),Nd),q[9]?O&&(O.d(1),O=null):O?O.p(q,W):(O=Rd(q),O.c(),O.m(t,null)),(!S||W&262144&&c!==(c=q[18]))&&p(t,"for",c),W&128&&L!==(L=q[7])){if(m){oe();const J=m;I(J.$$.fragment,1,0,()=>{z(J,1)}),re()}L?(m=Ot(L,F(q)),q[13](m),te.push(()=>be(m,"value",E)),V(m.$$.fragment),A(m.$$.fragment,1),H(m,e,_)):m=null}else if(L){const J={};W&262144&&(J.id=q[18]),W&2&&(J.baseCollection=q[1]),W&512&&(J.disabled=q[9]),W&544&&(J.placeholder=q[9]?"":q[5]),!h&&W&1&&(h=!0,J.value=q[0],ye(()=>h=!1)),m.$set(J)}q[9]?P?(P.p(q,W),W&512&&A(P,1)):(P=qd(q),P.c(),A(P,1),P.m(e,null)):P&&(oe(),I(P,1,1,()=>{P=null}),re()),R&&R.p&&(!S||W&33280)&&wt(R,N,q,q[15],S?vt(N,q[15],W,e5):St(q[15]),Pd)},i(q){S||(A($,q),A(D,q),m&&A(m.$$.fragment,q),A(P),A(R,q),S=!0)},o(q){I($,q),I(D,q),m&&I(m.$$.fragment,q),I(P),I(R,q),S=!1},d(q){q&&(v(e),v(g),v(k)),$&&$.d(q),D&&D.d(q),O&&O.d(),n[13](null),m&&z(m),P&&P.d(),R&&R.d(q)}}}function o5(n){let e,t,i,l;const s=[l5,i5],o=[];function r(a,u){return a[8]?0:1}return e=r(n),t=o[e]=s[e](n),{c(){t.c(),i=ke()},m(a,u){o[e].m(a,u),w(a,i,u),l=!0},p(a,[u]){let f=e;e=r(a),e===f?o[e].p(a,u):(oe(),I(o[f],1,1,()=>{o[f]=null}),re(),t=o[e],t?t.p(a,u):(t=o[e]=s[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){l||(A(t),l=!0)},o(a){I(t),l=!1},d(a){a&&v(i),o[e].d(a)}}}let jd;function r5(n,e,t){let i,{$$slots:l={},$$scope:s}=e,{collection:o=null}=e,{rule:r=null}=e,{label:a="Rule"}=e,{formKey:u="rule"}=e,{required:f=!1}=e,{placeholder:c="Leave empty to grant everyone access..."}=e,d=null,m=null,h=jd,_=!1;g();async function g(){h||_||(t(8,_=!0),t(7,h=(await rt(()=>import("./FilterAutocompleteInput-a4e1e466.js"),["./FilterAutocompleteInput-a4e1e466.js","./index-9ee652b3.js"],import.meta.url)).default),jd=h,t(8,_=!1))}async function k(){t(0,r=m||""),await Qt(),d==null||d.focus()}async function S(){m=r,t(0,r=null)}function T(C){te[C?"unshift":"push"](()=>{d=C,t(6,d)})}function $(C){r=C,t(0,r)}return n.$$set=C=>{"collection"in C&&t(1,o=C.collection),"rule"in C&&t(0,r=C.rule),"label"in C&&t(2,a=C.label),"formKey"in C&&t(3,u=C.formKey),"required"in C&&t(4,f=C.required),"placeholder"in C&&t(5,c=C.placeholder),"$$scope"in C&&t(15,s=C.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&t(9,i=r===null)},[r,o,a,u,f,c,d,h,_,i,k,S,l,T,$,s]}class vl extends ge{constructor(e){super(),_e(this,e,r5,o5,he,{collection:1,rule:0,label:2,formKey:3,required:4,placeholder:5})}}function Hd(n,e,t){const i=n.slice();return i[11]=e[t],i}function zd(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L=pe(n[2]),F=[];for(let P=0;P@request filter:",c=M(),d=b("div"),d.innerHTML="@request.headers.* @request.query.* @request.data.* @request.auth.*",m=M(),h=b("hr"),_=M(),g=b("p"),g.innerHTML="You could also add constraints and query other collections using the @collection filter:",k=M(),S=b("div"),S.innerHTML="@collection.ANY_COLLECTION_NAME.*",T=M(),$=b("hr"),C=M(),D=b("p"),D.innerHTML=`Example rule:
@request.auth.id != "" && created > "2022-01-01 00:00:00"`,p(l,"class","m-b-0"),p(o,"class","inline-flex flex-gap-5"),p(a,"class","m-t-10 m-b-5"),p(f,"class","m-b-0"),p(d,"class","inline-flex flex-gap-5"),p(h,"class","m-t-10 m-b-5"),p(g,"class","m-b-0"),p(S,"class","inline-flex flex-gap-5"),p($,"class","m-t-10 m-b-5"),p(i,"class","content"),p(t,"class","alert alert-warning m-0")},m(P,N){w(P,e,N),y(e,t),y(t,i),y(i,l),y(i,s),y(i,o);for(let R=0;R{E&&(O||(O=Pe(e,et,{duration:150},!0)),O.run(1))}),E=!0)},o(P){P&&(O||(O=Pe(e,et,{duration:150},!1)),O.run(0)),E=!1},d(P){P&&v(e),ut(F,P),P&&O&&O.end()}}}function Vd(n){let e,t=n[11]+"",i;return{c(){e=b("code"),i=Y(t)},m(l,s){w(l,e,s),y(e,i)},p(l,s){s&4&&t!==(t=l[11]+"")&&le(i,t)},d(l){l&&v(e)}}}function Bd(n){let e,t,i,l,s,o,r,a,u;function f(g){n[6](g)}let c={label:"Create rule",formKey:"createRule",collection:n[0],$$slots:{afterLabel:[a5,({isAdminOnly:g})=>({10:g}),({isAdminOnly:g})=>g?1024:0]},$$scope:{ctx:n}};n[0].createRule!==void 0&&(c.rule=n[0].createRule),e=new vl({props:c}),te.push(()=>be(e,"rule",f));function d(g){n[7](g)}let m={label:"Update rule",formKey:"updateRule",collection:n[0]};n[0].updateRule!==void 0&&(m.rule=n[0].updateRule),l=new vl({props:m}),te.push(()=>be(l,"rule",d));function h(g){n[8](g)}let _={label:"Delete rule",formKey:"deleteRule",collection:n[0]};return n[0].deleteRule!==void 0&&(_.rule=n[0].deleteRule),r=new vl({props:_}),te.push(()=>be(r,"rule",h)),{c(){V(e.$$.fragment),i=M(),V(l.$$.fragment),o=M(),V(r.$$.fragment)},m(g,k){H(e,g,k),w(g,i,k),H(l,g,k),w(g,o,k),H(r,g,k),u=!0},p(g,k){const S={};k&1&&(S.collection=g[0]),k&17408&&(S.$$scope={dirty:k,ctx:g}),!t&&k&1&&(t=!0,S.rule=g[0].createRule,ye(()=>t=!1)),e.$set(S);const T={};k&1&&(T.collection=g[0]),!s&&k&1&&(s=!0,T.rule=g[0].updateRule,ye(()=>s=!1)),l.$set(T);const $={};k&1&&($.collection=g[0]),!a&&k&1&&(a=!0,$.rule=g[0].deleteRule,ye(()=>a=!1)),r.$set($)},i(g){u||(A(e.$$.fragment,g),A(l.$$.fragment,g),A(r.$$.fragment,g),u=!0)},o(g){I(e.$$.fragment,g),I(l.$$.fragment,g),I(r.$$.fragment,g),u=!1},d(g){g&&(v(i),v(o)),z(e,g),z(l,g),z(r,g)}}}function Ud(n){let e,t,i;return{c(){e=b("i"),p(e,"class","ri-information-line link-hint")},m(l,s){w(l,e,s),t||(i=ve(Le.call(null,e,{text:'The Create rule is executed after a "dry save" of the submitted data, giving you access to the main record fields as in every other rule.',position:"top"})),t=!0)},d(l){l&&v(e),t=!1,i()}}}function a5(n){let e,t=!n[10]&&Ud();return{c(){t&&t.c(),e=ke()},m(i,l){t&&t.m(i,l),w(i,e,l)},p(i,l){i[10]?t&&(t.d(1),t=null):t||(t=Ud(),t.c(),t.m(e.parentNode,e))},d(i){i&&v(e),t&&t.d(i)}}}function Wd(n){let e,t,i;function l(o){n[9](o)}let s={label:"Manage rule",formKey:"options.manageRule",placeholder:"",required:n[0].options.manageRule!==null,collection:n[0],$$slots:{default:[u5]},$$scope:{ctx:n}};return n[0].options.manageRule!==void 0&&(s.rule=n[0].options.manageRule),e=new vl({props:s}),te.push(()=>be(e,"rule",l)),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};r&1&&(a.required=o[0].options.manageRule!==null),r&1&&(a.collection=o[0]),r&16384&&(a.$$scope={dirty:r,ctx:o}),!t&&r&1&&(t=!0,a.rule=o[0].options.manageRule,ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function u5(n){let e,t,i;return{c(){e=b("p"),e.textContent=`This API rule 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 or email, etc.`,t=M(),i=b("p"),i.innerHTML="This rule is executed in addition to the create and update API rules."},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},p:Q,d(l){l&&(v(e),v(t),v(i))}}}function f5(n){var N,R;let e,t,i,l,s,o=n[1]?"Hide available fields":"Show available fields",r,a,u,f,c,d,m,h,_,g,k,S,T,$,C=n[1]&&zd(n);function D(q){n[4](q)}let O={label:"List/Search rule",formKey:"listRule",collection:n[0]};n[0].listRule!==void 0&&(O.rule=n[0].listRule),f=new vl({props:O}),te.push(()=>be(f,"rule",D));function E(q){n[5](q)}let L={label:"View rule",formKey:"viewRule",collection:n[0]};n[0].viewRule!==void 0&&(L.rule=n[0].viewRule),m=new vl({props:L}),te.push(()=>be(m,"rule",E));let F=((N=n[0])==null?void 0:N.type)!=="view"&&Bd(n),P=((R=n[0])==null?void 0:R.type)==="auth"&&Wd(n);return{c(){e=b("div"),t=b("div"),i=b("p"),i.innerHTML=`All rules follow the @@ -86,7 +86,7 @@ var xb=Object.defineProperty;var e0=(n,e,t)=>e in n?xb(n,e,{enumerable:!0,config
If your query doesn't have a suitable one, you can use the universal (ROW_NUMBER() OVER()) as id.
  • Expressions must be aliased with a valid formatted field name (eg. - MAX(balance) as maxBalance).
  • `,u=M(),_&&_.c(),f=ke(),p(t,"class","txt"),p(e,"for",i=n[8]),p(a,"class","help-block")},m(g,k){w(g,e,k),y(e,t),w(g,l,k),m[s].m(g,k),w(g,r,k),w(g,a,k),w(g,u,k),_&&_.m(g,k),w(g,f,k),c=!0},p(g,k){(!c||k&256&&i!==(i=g[8]))&&p(e,"for",i);let S=s;s=h(g),s===S?m[s].p(g,k):(oe(),I(m[S],1,1,()=>{m[S]=null}),re(),o=m[s],o?o.p(g,k):(o=m[s]=d[s](g),o.c()),A(o,1),o.m(r.parentNode,r)),g[3].length?_?_.p(g,k):(_=Kd(g),_.c(),_.m(f.parentNode,f)):_&&(_.d(1),_=null)},i(g){c||(A(o),c=!0)},o(g){I(o),c=!1},d(g){g&&(v(e),v(l),v(r),v(a),v(u),v(f)),m[s].d(g),_&&_.d(g)}}}function _5(n){let e,t;return e=new me({props:{class:"form-field required "+(n[3].length?"error":""),name:"options.query",$$slots:{default:[h5,({uniqueId:i})=>({8:i}),({uniqueId:i})=>i?256:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&8&&(s.class="form-field required "+(i[3].length?"error":"")),l&4367&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function g5(n,e,t){let i;We(n,_i,c=>t(4,i=c));let{collection:l}=e,s,o=!1,r=[];function a(c){var h;t(3,r=[]);const d=j.getNestedVal(c,"schema",null);if(j.isEmpty(d))return;if(d!=null&&d.message){r.push(d==null?void 0:d.message);return}const m=j.extractColumnsFromQuery((h=l==null?void 0:l.options)==null?void 0:h.query);j.removeByValue(m,"id"),j.removeByValue(m,"created"),j.removeByValue(m,"updated");for(let _ in d)for(let g in d[_]){const k=d[_][g].message,S=m[_]||_;r.push(j.sentenize(S+": "+k))}}Vt(async()=>{t(2,o=!0);try{t(1,s=(await rt(()=>import("./CodeEditor-d15a301a.js"),["./CodeEditor-d15a301a.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(c){console.warn(c)}t(2,o=!1)});function u(c){n.$$.not_equal(l.options.query,c)&&(l.options.query=c,t(0,l))}const f=()=>{r.length&&ii("schema")};return n.$$set=c=>{"collection"in c&&t(0,l=c.collection)},n.$$.update=()=>{n.$$.dirty&16&&a(i)},[l,s,o,r,i,u,f]}class b5 extends ge{constructor(e){super(),_e(this,e,g5,_5,he,{collection:0})}}const y5=n=>({active:n&1}),Zd=n=>({active:n[0]});function Gd(n){let e,t,i;const l=n[15].default,s=kt(l,n,n[14],null);return{c(){e=b("div"),s&&s.c(),p(e,"class","accordion-content")},m(o,r){w(o,e,r),s&&s.m(e,null),i=!0},p(o,r){s&&s.p&&(!i||r&16384)&&wt(s,l,o,o[14],i?vt(l,o[14],r,null):St(o[14]),null)},i(o){i||(A(s,o),o&&Ke(()=>{i&&(t||(t=Pe(e,et,{duration:150},!0)),t.run(1))}),i=!0)},o(o){I(s,o),o&&(t||(t=Pe(e,et,{duration:150},!1)),t.run(0)),i=!1},d(o){o&&v(e),s&&s.d(o),o&&t&&t.end()}}}function k5(n){let e,t,i,l,s,o,r;const a=n[15].header,u=kt(a,n,n[14],Zd);let f=n[0]&&Gd(n);return{c(){e=b("div"),t=b("button"),u&&u.c(),i=M(),f&&f.c(),p(t,"type","button"),p(t,"class","accordion-header"),p(t,"draggable",n[2]),ee(t,"interactive",n[3]),p(e,"class",l="accordion "+(n[7]?"drag-over":"")+" "+n[1]),ee(e,"active",n[0])},m(c,d){w(c,e,d),y(e,t),u&&u.m(t,null),y(e,i),f&&f.m(e,null),n[22](e),s=!0,o||(r=[K(t,"click",Ye(n[17])),K(t,"drop",Ye(n[18])),K(t,"dragstart",n[19]),K(t,"dragenter",n[20]),K(t,"dragleave",n[21]),K(t,"dragover",Ye(n[16]))],o=!0)},p(c,[d]){u&&u.p&&(!s||d&16385)&&wt(u,a,c,c[14],s?vt(a,c[14],d,y5):St(c[14]),Zd),(!s||d&4)&&p(t,"draggable",c[2]),(!s||d&8)&&ee(t,"interactive",c[3]),c[0]?f?(f.p(c,d),d&1&&A(f,1)):(f=Gd(c),f.c(),A(f,1),f.m(e,null)):f&&(oe(),I(f,1,1,()=>{f=null}),re()),(!s||d&130&&l!==(l="accordion "+(c[7]?"drag-over":"")+" "+c[1]))&&p(e,"class",l),(!s||d&131)&&ee(e,"active",c[0])},i(c){s||(A(u,c),A(f),s=!0)},o(c){I(u,c),I(f),s=!1},d(c){c&&v(e),u&&u.d(c),f&&f.d(),n[22](null),o=!1,we(r)}}}function v5(n,e,t){let{$$slots:i={},$$scope:l}=e;const s=ot();let o,r,{class:a=""}=e,{draggable:u=!1}=e,{active:f=!1}=e,{interactive:c=!0}=e,{single:d=!1}=e,m=!1;function h(){return!!f}function _(){S(),t(0,f=!0),s("expand")}function g(){t(0,f=!1),clearTimeout(r),s("collapse")}function k(){s("toggle"),f?g():_()}function S(){if(d&&o.closest(".accordions")){const F=o.closest(".accordions").querySelectorAll(".accordion.active .accordion-header.interactive");for(const P of F)P.click()}}Vt(()=>()=>clearTimeout(r));function T(F){Ae.call(this,n,F)}const $=()=>c&&k(),C=F=>{u&&(t(7,m=!1),S(),s("drop",F))},D=F=>u&&s("dragstart",F),O=F=>{u&&(t(7,m=!0),s("dragenter",F))},E=F=>{u&&(t(7,m=!1),s("dragleave",F))};function L(F){te[F?"unshift":"push"](()=>{o=F,t(6,o)})}return n.$$set=F=>{"class"in F&&t(1,a=F.class),"draggable"in F&&t(2,u=F.draggable),"active"in F&&t(0,f=F.active),"interactive"in F&&t(3,c=F.interactive),"single"in F&&t(9,d=F.single),"$$scope"in F&&t(14,l=F.$$scope)},n.$$.update=()=>{n.$$.dirty&8257&&f&&(clearTimeout(r),t(13,r=setTimeout(()=>{o!=null&&o.scrollIntoViewIfNeeded?o.scrollIntoViewIfNeeded():o!=null&&o.scrollIntoView&&o.scrollIntoView({behavior:"smooth",block:"nearest"})},200)))},[f,a,u,c,k,S,o,m,s,d,h,_,g,r,l,i,T,$,C,D,O,E,L]}class _o extends ge{constructor(e){super(),_e(this,e,v5,k5,he,{class:1,draggable:2,active:0,interactive:3,single:9,isExpanded:10,expand:11,collapse:12,toggle:4,collapseSiblings:5})}get isExpanded(){return this.$$.ctx[10]}get expand(){return this.$$.ctx[11]}get collapse(){return this.$$.ctx[12]}get toggle(){return this.$$.ctx[4]}get collapseSiblings(){return this.$$.ctx[5]}}function w5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].options.allowUsernameAuth,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[5]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowUsernameAuth),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function S5(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle m-b-0",name:"options.allowUsernameAuth",$$slots:{default:[w5,({uniqueId:i})=>({13:i}),({uniqueId:i})=>i?8192:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&24577&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function $5(n){let e;return{c(){e=b("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function T5(n){let e;return{c(){e=b("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Xd(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function C5(n){let e,t,i,l,s,o;function r(c,d){return c[0].options.allowUsernameAuth?T5:$5}let a=r(n),u=a(n),f=n[3]&&Xd();return{c(){e=b("div"),e.innerHTML=' Username/Password',t=M(),i=b("div"),l=M(),u.c(),s=M(),f&&f.c(),o=ke(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(c,d){w(c,e,d),w(c,t,d),w(c,i,d),w(c,l,d),u.m(c,d),w(c,s,d),f&&f.m(c,d),w(c,o,d)},p(c,d){a!==(a=r(c))&&(u.d(1),u=a(c),u&&(u.c(),u.m(s.parentNode,s))),c[3]?f?d&8&&A(f,1):(f=Xd(),f.c(),A(f,1),f.m(o.parentNode,o)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(t),v(i),v(l),v(s),v(o)),u.d(c),f&&f.d(c)}}}function M5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].options.allowEmailAuth,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[6]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowEmailAuth),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Qd(n){let e,t,i,l,s,o,r,a;return i=new me({props:{class:"form-field "+(j.isEmpty(n[0].options.onlyEmailDomains)?"":"disabled"),name:"options.exceptEmailDomains",$$slots:{default:[O5,({uniqueId:u})=>({13:u}),({uniqueId:u})=>u?8192:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field "+(j.isEmpty(n[0].options.exceptEmailDomains)?"":"disabled"),name:"options.onlyEmailDomains",$$slots:{default:[D5,({uniqueId:u})=>({13:u}),({uniqueId:u})=>u?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(e,"class","grid grid-sm p-t-sm")},m(u,f){w(u,e,f),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),a=!0},p(u,f){const c={};f&1&&(c.class="form-field "+(j.isEmpty(u[0].options.onlyEmailDomains)?"":"disabled")),f&24577&&(c.$$scope={dirty:f,ctx:u}),i.$set(c);const d={};f&1&&(d.class="form-field "+(j.isEmpty(u[0].options.exceptEmailDomains)?"":"disabled")),f&24577&&(d.$$scope={dirty:f,ctx:u}),o.$set(d)},i(u){a||(A(i.$$.fragment,u),A(o.$$.fragment,u),u&&Ke(()=>{a&&(r||(r=Pe(e,et,{duration:150},!0)),r.run(1))}),a=!0)},o(u){I(i.$$.fragment,u),I(o.$$.fragment,u),u&&(r||(r=Pe(e,et,{duration:150},!1)),r.run(0)),a=!1},d(u){u&&v(e),z(i),z(o),u&&r&&r.end()}}}function O5(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[7](g)}let _={id:n[13],disabled:!j.isEmpty(n[0].options.onlyEmailDomains)};return n[0].options.exceptEmailDomains!==void 0&&(_.value=n[0].options.exceptEmailDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Except domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[13]),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`Email domains that are NOT allowed to sign up. + MAX(balance) as maxBalance).`,u=M(),_&&_.c(),f=ke(),p(t,"class","txt"),p(e,"for",i=n[8]),p(a,"class","help-block")},m(g,k){w(g,e,k),y(e,t),w(g,l,k),m[s].m(g,k),w(g,r,k),w(g,a,k),w(g,u,k),_&&_.m(g,k),w(g,f,k),c=!0},p(g,k){(!c||k&256&&i!==(i=g[8]))&&p(e,"for",i);let S=s;s=h(g),s===S?m[s].p(g,k):(oe(),I(m[S],1,1,()=>{m[S]=null}),re(),o=m[s],o?o.p(g,k):(o=m[s]=d[s](g),o.c()),A(o,1),o.m(r.parentNode,r)),g[3].length?_?_.p(g,k):(_=Kd(g),_.c(),_.m(f.parentNode,f)):_&&(_.d(1),_=null)},i(g){c||(A(o),c=!0)},o(g){I(o),c=!1},d(g){g&&(v(e),v(l),v(r),v(a),v(u),v(f)),m[s].d(g),_&&_.d(g)}}}function _5(n){let e,t;return e=new me({props:{class:"form-field required "+(n[3].length?"error":""),name:"options.query",$$slots:{default:[h5,({uniqueId:i})=>({8:i}),({uniqueId:i})=>i?256:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&8&&(s.class="form-field required "+(i[3].length?"error":"")),l&4367&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function g5(n,e,t){let i;We(n,_i,c=>t(4,i=c));let{collection:l}=e,s,o=!1,r=[];function a(c){var h;t(3,r=[]);const d=j.getNestedVal(c,"schema",null);if(j.isEmpty(d))return;if(d!=null&&d.message){r.push(d==null?void 0:d.message);return}const m=j.extractColumnsFromQuery((h=l==null?void 0:l.options)==null?void 0:h.query);j.removeByValue(m,"id"),j.removeByValue(m,"created"),j.removeByValue(m,"updated");for(let _ in d)for(let g in d[_]){const k=d[_][g].message,S=m[_]||_;r.push(j.sentenize(S+": "+k))}}Vt(async()=>{t(2,o=!0);try{t(1,s=(await rt(()=>import("./CodeEditor-e3209658.js"),["./CodeEditor-e3209658.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(c){console.warn(c)}t(2,o=!1)});function u(c){n.$$.not_equal(l.options.query,c)&&(l.options.query=c,t(0,l))}const f=()=>{r.length&&ii("schema")};return n.$$set=c=>{"collection"in c&&t(0,l=c.collection)},n.$$.update=()=>{n.$$.dirty&16&&a(i)},[l,s,o,r,i,u,f]}class b5 extends ge{constructor(e){super(),_e(this,e,g5,_5,he,{collection:0})}}const y5=n=>({active:n&1}),Zd=n=>({active:n[0]});function Gd(n){let e,t,i;const l=n[15].default,s=kt(l,n,n[14],null);return{c(){e=b("div"),s&&s.c(),p(e,"class","accordion-content")},m(o,r){w(o,e,r),s&&s.m(e,null),i=!0},p(o,r){s&&s.p&&(!i||r&16384)&&wt(s,l,o,o[14],i?vt(l,o[14],r,null):St(o[14]),null)},i(o){i||(A(s,o),o&&Ke(()=>{i&&(t||(t=Pe(e,et,{duration:150},!0)),t.run(1))}),i=!0)},o(o){I(s,o),o&&(t||(t=Pe(e,et,{duration:150},!1)),t.run(0)),i=!1},d(o){o&&v(e),s&&s.d(o),o&&t&&t.end()}}}function k5(n){let e,t,i,l,s,o,r;const a=n[15].header,u=kt(a,n,n[14],Zd);let f=n[0]&&Gd(n);return{c(){e=b("div"),t=b("button"),u&&u.c(),i=M(),f&&f.c(),p(t,"type","button"),p(t,"class","accordion-header"),p(t,"draggable",n[2]),ee(t,"interactive",n[3]),p(e,"class",l="accordion "+(n[7]?"drag-over":"")+" "+n[1]),ee(e,"active",n[0])},m(c,d){w(c,e,d),y(e,t),u&&u.m(t,null),y(e,i),f&&f.m(e,null),n[22](e),s=!0,o||(r=[K(t,"click",Ye(n[17])),K(t,"drop",Ye(n[18])),K(t,"dragstart",n[19]),K(t,"dragenter",n[20]),K(t,"dragleave",n[21]),K(t,"dragover",Ye(n[16]))],o=!0)},p(c,[d]){u&&u.p&&(!s||d&16385)&&wt(u,a,c,c[14],s?vt(a,c[14],d,y5):St(c[14]),Zd),(!s||d&4)&&p(t,"draggable",c[2]),(!s||d&8)&&ee(t,"interactive",c[3]),c[0]?f?(f.p(c,d),d&1&&A(f,1)):(f=Gd(c),f.c(),A(f,1),f.m(e,null)):f&&(oe(),I(f,1,1,()=>{f=null}),re()),(!s||d&130&&l!==(l="accordion "+(c[7]?"drag-over":"")+" "+c[1]))&&p(e,"class",l),(!s||d&131)&&ee(e,"active",c[0])},i(c){s||(A(u,c),A(f),s=!0)},o(c){I(u,c),I(f),s=!1},d(c){c&&v(e),u&&u.d(c),f&&f.d(),n[22](null),o=!1,we(r)}}}function v5(n,e,t){let{$$slots:i={},$$scope:l}=e;const s=ot();let o,r,{class:a=""}=e,{draggable:u=!1}=e,{active:f=!1}=e,{interactive:c=!0}=e,{single:d=!1}=e,m=!1;function h(){return!!f}function _(){S(),t(0,f=!0),s("expand")}function g(){t(0,f=!1),clearTimeout(r),s("collapse")}function k(){s("toggle"),f?g():_()}function S(){if(d&&o.closest(".accordions")){const F=o.closest(".accordions").querySelectorAll(".accordion.active .accordion-header.interactive");for(const P of F)P.click()}}Vt(()=>()=>clearTimeout(r));function T(F){Ae.call(this,n,F)}const $=()=>c&&k(),C=F=>{u&&(t(7,m=!1),S(),s("drop",F))},D=F=>u&&s("dragstart",F),O=F=>{u&&(t(7,m=!0),s("dragenter",F))},E=F=>{u&&(t(7,m=!1),s("dragleave",F))};function L(F){te[F?"unshift":"push"](()=>{o=F,t(6,o)})}return n.$$set=F=>{"class"in F&&t(1,a=F.class),"draggable"in F&&t(2,u=F.draggable),"active"in F&&t(0,f=F.active),"interactive"in F&&t(3,c=F.interactive),"single"in F&&t(9,d=F.single),"$$scope"in F&&t(14,l=F.$$scope)},n.$$.update=()=>{n.$$.dirty&8257&&f&&(clearTimeout(r),t(13,r=setTimeout(()=>{o!=null&&o.scrollIntoViewIfNeeded?o.scrollIntoViewIfNeeded():o!=null&&o.scrollIntoView&&o.scrollIntoView({behavior:"smooth",block:"nearest"})},200)))},[f,a,u,c,k,S,o,m,s,d,h,_,g,r,l,i,T,$,C,D,O,E,L]}class _o extends ge{constructor(e){super(),_e(this,e,v5,k5,he,{class:1,draggable:2,active:0,interactive:3,single:9,isExpanded:10,expand:11,collapse:12,toggle:4,collapseSiblings:5})}get isExpanded(){return this.$$.ctx[10]}get expand(){return this.$$.ctx[11]}get collapse(){return this.$$.ctx[12]}get toggle(){return this.$$.ctx[4]}get collapseSiblings(){return this.$$.ctx[5]}}function w5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].options.allowUsernameAuth,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[5]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowUsernameAuth),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function S5(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle m-b-0",name:"options.allowUsernameAuth",$$slots:{default:[w5,({uniqueId:i})=>({13:i}),({uniqueId:i})=>i?8192:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&24577&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function $5(n){let e;return{c(){e=b("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function T5(n){let e;return{c(){e=b("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Xd(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function C5(n){let e,t,i,l,s,o;function r(c,d){return c[0].options.allowUsernameAuth?T5:$5}let a=r(n),u=a(n),f=n[3]&&Xd();return{c(){e=b("div"),e.innerHTML=' Username/Password',t=M(),i=b("div"),l=M(),u.c(),s=M(),f&&f.c(),o=ke(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(c,d){w(c,e,d),w(c,t,d),w(c,i,d),w(c,l,d),u.m(c,d),w(c,s,d),f&&f.m(c,d),w(c,o,d)},p(c,d){a!==(a=r(c))&&(u.d(1),u=a(c),u&&(u.c(),u.m(s.parentNode,s))),c[3]?f?d&8&&A(f,1):(f=Xd(),f.c(),A(f,1),f.m(o.parentNode,o)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(t),v(i),v(l),v(s),v(o)),u.d(c),f&&f.d(c)}}}function M5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].options.allowEmailAuth,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[6]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowEmailAuth),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Qd(n){let e,t,i,l,s,o,r,a;return i=new me({props:{class:"form-field "+(j.isEmpty(n[0].options.onlyEmailDomains)?"":"disabled"),name:"options.exceptEmailDomains",$$slots:{default:[O5,({uniqueId:u})=>({13:u}),({uniqueId:u})=>u?8192:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field "+(j.isEmpty(n[0].options.exceptEmailDomains)?"":"disabled"),name:"options.onlyEmailDomains",$$slots:{default:[D5,({uniqueId:u})=>({13:u}),({uniqueId:u})=>u?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(e,"class","grid grid-sm p-t-sm")},m(u,f){w(u,e,f),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),a=!0},p(u,f){const c={};f&1&&(c.class="form-field "+(j.isEmpty(u[0].options.onlyEmailDomains)?"":"disabled")),f&24577&&(c.$$scope={dirty:f,ctx:u}),i.$set(c);const d={};f&1&&(d.class="form-field "+(j.isEmpty(u[0].options.exceptEmailDomains)?"":"disabled")),f&24577&&(d.$$scope={dirty:f,ctx:u}),o.$set(d)},i(u){a||(A(i.$$.fragment,u),A(o.$$.fragment,u),u&&Ke(()=>{a&&(r||(r=Pe(e,et,{duration:150},!0)),r.run(1))}),a=!0)},o(u){I(i.$$.fragment,u),I(o.$$.fragment,u),u&&(r||(r=Pe(e,et,{duration:150},!1)),r.run(0)),a=!1},d(u){u&&v(e),z(i),z(o),u&&r&&r.end()}}}function O5(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[7](g)}let _={id:n[13],disabled:!j.isEmpty(n[0].options.onlyEmailDomains)};return n[0].options.exceptEmailDomains!==void 0&&(_.value=n[0].options.exceptEmailDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Except domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[13]),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`Email domains that are NOT allowed to sign up. This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(g,k){(!c||k&8192&&s!==(s=g[13]))&&p(e,"for",s);const S={};k&8192&&(S.id=g[13]),k&1&&(S.disabled=!j.isEmpty(g[0].options.onlyEmailDomains)),!a&&k&1&&(a=!0,S.value=g[0].options.exceptEmailDomains,ye(()=>a=!1)),r.$set(S)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){I(r.$$.fragment,g),c=!1},d(g){g&&(v(e),v(o),v(u),v(f)),z(r,g),d=!1,m()}}}function D5(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;function h(g){n[8](g)}let _={id:n[13],disabled:!j.isEmpty(n[0].options.exceptEmailDomains)};return n[0].options.onlyEmailDomains!==void 0&&(_.value=n[0].options.onlyEmailDomains),r=new Ll({props:_}),te.push(()=>be(r,"value",h)),{c(){e=b("label"),t=b("span"),t.textContent="Only domains",i=M(),l=b("i"),o=M(),V(r.$$.fragment),u=M(),f=b("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[13]),p(f,"class","help-block")},m(g,k){w(g,e,k),y(e,t),y(e,i),y(e,l),w(g,o,k),H(r,g,k),w(g,u,k),w(g,f,k),c=!0,d||(m=ve(Le.call(null,l,{text:`Email domains that are ONLY allowed to sign up. This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(g,k){(!c||k&8192&&s!==(s=g[13]))&&p(e,"for",s);const S={};k&8192&&(S.id=g[13]),k&1&&(S.disabled=!j.isEmpty(g[0].options.exceptEmailDomains)),!a&&k&1&&(a=!0,S.value=g[0].options.onlyEmailDomains,ye(()=>a=!1)),r.$set(S)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){I(r.$$.fragment,g),c=!1},d(g){g&&(v(e),v(o),v(u),v(f)),z(r,g),d=!1,m()}}}function E5(n){let e,t,i,l;e=new me({props:{class:"form-field form-field-toggle m-0",name:"options.allowEmailAuth",$$slots:{default:[M5,({uniqueId:o})=>({13:o}),({uniqueId:o})=>o?8192:0]},$$scope:{ctx:n}}});let s=n[0].options.allowEmailAuth&&Qd(n);return{c(){V(e.$$.fragment),t=M(),s&&s.c(),i=ke()},m(o,r){H(e,o,r),w(o,t,r),s&&s.m(o,r),w(o,i,r),l=!0},p(o,r){const a={};r&24577&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].options.allowEmailAuth?s?(s.p(o,r),r&1&&A(s,1)):(s=Qd(o),s.c(),A(s,1),s.m(i.parentNode,i)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){l||(A(e.$$.fragment,o),A(s),l=!0)},o(o){I(e.$$.fragment,o),I(s),l=!1},d(o){o&&(v(t),v(i)),z(e,o),s&&s.d(o)}}}function A5(n){let e;return{c(){e=b("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function I5(n){let e;return{c(){e=b("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function xd(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function L5(n){let e,t,i,l,s,o;function r(c,d){return c[0].options.allowEmailAuth?I5:A5}let a=r(n),u=a(n),f=n[2]&&xd();return{c(){e=b("div"),e.innerHTML=' Email/Password',t=M(),i=b("div"),l=M(),u.c(),s=M(),f&&f.c(),o=ke(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(c,d){w(c,e,d),w(c,t,d),w(c,i,d),w(c,l,d),u.m(c,d),w(c,s,d),f&&f.m(c,d),w(c,o,d)},p(c,d){a!==(a=r(c))&&(u.d(1),u=a(c),u&&(u.c(),u.m(s.parentNode,s))),c[2]?f?d&4&&A(f,1):(f=xd(),f.c(),A(f,1),f.m(o.parentNode,o)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(t),v(i),v(l),v(s),v(o)),u.d(c),f&&f.d(c)}}}function P5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].options.allowOAuth2Auth,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[9]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowOAuth2Auth),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function ep(n){let e,t,i;return{c(){e=b("div"),e.innerHTML='
    ',p(e,"class","block")},m(l,s){w(l,e,s),i=!0},i(l){i||(l&&Ke(()=>{i&&(t||(t=Pe(e,et,{duration:150},!0)),t.run(1))}),i=!0)},o(l){l&&(t||(t=Pe(e,et,{duration:150},!1)),t.run(0)),i=!1},d(l){l&&v(e),l&&t&&t.end()}}}function N5(n){let e,t,i,l;e=new me({props:{class:"form-field form-field-toggle m-b-0",name:"options.allowOAuth2Auth",$$slots:{default:[P5,({uniqueId:o})=>({13:o}),({uniqueId:o})=>o?8192:0]},$$scope:{ctx:n}}});let s=n[0].options.allowOAuth2Auth&&ep();return{c(){V(e.$$.fragment),t=M(),s&&s.c(),i=ke()},m(o,r){H(e,o,r),w(o,t,r),s&&s.m(o,r),w(o,i,r),l=!0},p(o,r){const a={};r&24577&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].options.allowOAuth2Auth?s?r&1&&A(s,1):(s=ep(),s.c(),A(s,1),s.m(i.parentNode,i)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){l||(A(e.$$.fragment,o),A(s),l=!0)},o(o){I(e.$$.fragment,o),I(s),l=!1},d(o){o&&(v(t),v(i)),z(e,o),s&&s.d(o)}}}function F5(n){let e;return{c(){e=b("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function R5(n){let e;return{c(){e=b("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function tp(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function q5(n){let e,t,i,l,s,o;function r(c,d){return c[0].options.allowOAuth2Auth?R5:F5}let a=r(n),u=a(n),f=n[1]&&tp();return{c(){e=b("div"),e.innerHTML=' OAuth2',t=M(),i=b("div"),l=M(),u.c(),s=M(),f&&f.c(),o=ke(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(c,d){w(c,e,d),w(c,t,d),w(c,i,d),w(c,l,d),u.m(c,d),w(c,s,d),f&&f.m(c,d),w(c,o,d)},p(c,d){a!==(a=r(c))&&(u.d(1),u=a(c),u&&(u.c(),u.m(s.parentNode,s))),c[1]?f?d&2&&A(f,1):(f=tp(),f.c(),A(f,1),f.m(o.parentNode,o)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(t),v(i),v(l),v(s),v(o)),u.d(c),f&&f.d(c)}}}function j5(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Minimum password length"),l=M(),s=b("input"),p(e,"for",i=n[13]),p(s,"type","number"),p(s,"id",o=n[13]),s.required=!0,p(s,"min","6"),p(s,"max","72")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].options.minPasswordLength),r||(a=K(s,"input",n[10]),r=!0)},p(u,f){f&8192&&i!==(i=u[13])&&p(e,"for",i),f&8192&&o!==(o=u[13])&&p(s,"id",o),f&1&&st(s.value)!==u[0].options.minPasswordLength&&ue(s,u[0].options.minPasswordLength)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function H5(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Always require email",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(s,"class","txt"),p(r,"class","ri-information-line txt-sm link-hint"),p(l,"for",a=n[13])},m(c,d){w(c,e,d),e.checked=n[0].options.requireEmail,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[11]),ve(Le.call(null,r,{text:`The constraint is applied only for new records. Also note that some OAuth2 providers (like Twitter), don't return an email and the authentication may fail if the email field is required.`,position:"right"}))],u=!0)},p(c,d){d&8192&&t!==(t=c[13])&&p(e,"id",t),d&1&&(e.checked=c[0].options.requireEmail),d&8192&&a!==(a=c[13])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function z5(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Forbid authentication for unverified users",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(s,"class","txt"),p(r,"class","ri-information-line txt-sm link-hint"),p(l,"for",a=n[13])},m(c,d){w(c,e,d),e.checked=n[0].options.onlyVerified,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[12]),ve(Le.call(null,r,{text:["If enabled, it returns 403 for new unverfied user authentication requests.","If you need more granular control, don't enable this option and instead use the `@request.auth.verified = true` rule in the specific collection(s) you are targeting."].join(` @@ -94,9 +94,9 @@ Also note that some OAuth2 providers (like Twitter), don't return an email and t `),l=b("strong"),o=Y(s),r=M(),a=b("i"),u=M(),f=b("strong"),d=Y(c),p(l,"class","txt-strikethrough txt-hint"),p(a,"class","ri-arrow-right-line txt-sm"),p(f,"class","txt"),p(t,"class","inline-flex"),p(e,"class","svelte-xqpcsf")},m(_,g){w(_,e,g),y(e,t),y(t,i),y(t,l),y(l,o),y(t,r),y(t,a),y(t,u),y(t,f),y(f,d)},p(_,g){var k,S;g&2&&s!==(s=((k=_[1])==null?void 0:k.name)+"")&&le(o,s),g&4&&c!==(c=((S=_[2])==null?void 0:S.name)+"")&&le(d,c)},d(_){_&&v(e)}}}function ap(n){let e,t,i,l=pe(n[6]),s=[];for(let f=0;f',i=M(),l=b("div"),s=b("p"),s.textContent=`If any of the collection changes is part of another collection rule, filter or view query, - you'll have to update it manually!`,o=M(),u&&u.c(),r=M(),f&&f.c(),a=ke(),p(t,"class","icon"),p(l,"class","content txt-bold"),p(e,"class","alert alert-warning")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),y(l,s),y(l,o),u&&u.m(l,null),w(c,r,d),f&&f.m(c,d),w(c,a,d)},p(c,d){c[7].length?u||(u=sp(),u.c(),u.m(l,null)):u&&(u.d(1),u=null),c[9]?f?f.p(c,d):(f=op(c),f.c(),f.m(a.parentNode,a)):f&&(f.d(1),f=null)},d(c){c&&(v(e),v(r),v(a)),u&&u.d(),f&&f.d(c)}}}function Y5(n){let e;return{c(){e=b("h4"),e.textContent="Confirm collection changes"},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function K5(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Cancel',t=M(),i=b("button"),i.innerHTML='Confirm',e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-transparent"),p(i,"type","button"),p(i,"class","btn btn-expanded")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),e.focus(),l||(s=[K(e,"click",n[12]),K(i,"click",n[13])],l=!0)},p:Q,d(o){o&&(v(e),v(t),v(i)),l=!1,we(s)}}}function J5(n){let e,t,i={class:"confirm-changes-panel",popup:!0,$$slots:{footer:[K5],header:[Y5],default:[W5]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[14](e),e.$on("hide",n[15]),e.$on("show",n[16]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&33555422&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[14](null),z(e,l)}}}function Z5(n,e,t){let i,l,s,o,r,a;const u=ot();let f,c,d;async function m(C,D){t(1,c=C),t(2,d=D),await Qt(),i||s.length||o.length||r.length?f==null||f.show():_()}function h(){f==null||f.hide()}function _(){h(),u("confirm")}const g=()=>h(),k=()=>_();function S(C){te[C?"unshift":"push"](()=>{f=C,t(5,f)})}function T(C){Ae.call(this,n,C)}function $(C){Ae.call(this,n,C)}return n.$$.update=()=>{var C,D,O;n.$$.dirty&6&&t(3,i=(c==null?void 0:c.name)!=(d==null?void 0:d.name)),n.$$.dirty&4&&t(4,l=(d==null?void 0:d.type)==="view"),n.$$.dirty&4&&t(8,s=((C=d==null?void 0:d.schema)==null?void 0:C.filter(E=>E.id&&!E.toDelete&&E.originalName!=E.name))||[]),n.$$.dirty&4&&t(7,o=((D=d==null?void 0:d.schema)==null?void 0:D.filter(E=>E.id&&E.toDelete))||[]),n.$$.dirty&6&&t(6,r=((O=d==null?void 0:d.schema)==null?void 0:O.filter(E=>{var F,P,N;const L=(F=c==null?void 0:c.schema)==null?void 0:F.find(R=>R.id==E.id);return L?((P=L.options)==null?void 0:P.maxSelect)!=1&&((N=E.options)==null?void 0:N.maxSelect)==1:!1}))||[]),n.$$.dirty&24&&t(9,a=!l||i)},[h,c,d,i,l,f,r,o,s,a,_,m,g,k,S,T,$]}class G5 extends ge{constructor(e){super(),_e(this,e,Z5,J5,he,{show:11,hide:0})}get show(){return this.$$.ctx[11]}get hide(){return this.$$.ctx[0]}}function dp(n,e,t){const i=n.slice();return i[49]=e[t][0],i[50]=e[t][1],i}function X5(n){let e,t,i;function l(o){n[35](o)}let s={};return n[2]!==void 0&&(s.collection=n[2]),e=new xC({props:s}),te.push(()=>be(e,"collection",l)),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};!t&&r[0]&4&&(t=!0,a.collection=o[2],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function Q5(n){let e,t,i;function l(o){n[34](o)}let s={};return n[2]!==void 0&&(s.collection=n[2]),e=new b5({props:s}),te.push(()=>be(e,"collection",l)),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};!t&&r[0]&4&&(t=!0,a.collection=o[2],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function pp(n){let e,t,i,l;function s(r){n[36](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new d5({props:o}),te.push(()=>be(t,"collection",s)),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tab-item active")},m(r,a){w(r,e,a),H(t,e,null),l=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ye(()=>i=!1)),t.$set(u)},i(r){l||(A(t.$$.fragment,r),l=!0)},o(r){I(t.$$.fragment,r),l=!1},d(r){r&&v(e),z(t)}}}function mp(n){let e,t,i,l;function s(r){n[37](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new U5({props:o}),te.push(()=>be(t,"collection",s)),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tab-item"),ee(e,"active",n[3]===Ml)},m(r,a){w(r,e,a),H(t,e,null),l=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ye(()=>i=!1)),t.$set(u),(!l||a[0]&8)&&ee(e,"active",r[3]===Ml)},i(r){l||(A(t.$$.fragment,r),l=!0)},o(r){I(t.$$.fragment,r),l=!1},d(r){r&&v(e),z(t)}}}function x5(n){let e,t,i,l,s,o,r;const a=[Q5,X5],u=[];function f(m,h){return m[14]?0:1}i=f(n),l=u[i]=a[i](n);let c=n[3]===bs&&pp(n),d=n[15]&&mp(n);return{c(){e=b("div"),t=b("div"),l.c(),s=M(),c&&c.c(),o=M(),d&&d.c(),p(t,"class","tab-item"),ee(t,"active",n[3]===Di),p(e,"class","tabs-content svelte-12y0yzb")},m(m,h){w(m,e,h),y(e,t),u[i].m(t,null),y(e,s),c&&c.m(e,null),y(e,o),d&&d.m(e,null),r=!0},p(m,h){let _=i;i=f(m),i===_?u[i].p(m,h):(oe(),I(u[_],1,1,()=>{u[_]=null}),re(),l=u[i],l?l.p(m,h):(l=u[i]=a[i](m),l.c()),A(l,1),l.m(t,null)),(!r||h[0]&8)&&ee(t,"active",m[3]===Di),m[3]===bs?c?(c.p(m,h),h[0]&8&&A(c,1)):(c=pp(m),c.c(),A(c,1),c.m(e,o)):c&&(oe(),I(c,1,1,()=>{c=null}),re()),m[15]?d?(d.p(m,h),h[0]&32768&&A(d,1)):(d=mp(m),d.c(),A(d,1),d.m(e,null)):d&&(oe(),I(d,1,1,()=>{d=null}),re())},i(m){r||(A(l),A(c),A(d),r=!0)},o(m){I(l),I(c),I(d),r=!1},d(m){m&&v(e),u[i].d(),c&&c.d(),d&&d.d()}}}function hp(n){let e,t,i,l,s,o,r;return o=new En({props:{class:"dropdown dropdown-right m-t-5",$$slots:{default:[e6]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=M(),i=b("button"),l=b("i"),s=M(),V(o.$$.fragment),p(e,"class","flex-fill"),p(l,"class","ri-more-line"),p(i,"type","button"),p(i,"aria-label","More"),p(i,"class","btn btn-sm btn-circle btn-transparent flex-gap-0")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),y(i,l),y(i,s),H(o,i,null),r=!0},p(a,u){const f={};u[1]&4194304&&(f.$$scope={dirty:u,ctx:a}),o.$set(f)},i(a){r||(A(o.$$.fragment,a),r=!0)},o(a){I(o.$$.fragment,a),r=!1},d(a){a&&(v(e),v(t),v(i)),z(o)}}}function e6(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML=' Duplicate',t=M(),i=b("button"),i.innerHTML=' Delete',p(e,"type","button"),p(e,"class","dropdown-item closable"),p(i,"type","button"),p(i,"class","dropdown-item txt-danger closable")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),l||(s=[K(e,"click",n[26]),K(i,"click",fn(Ye(n[27])))],l=!0)},p:Q,d(o){o&&(v(e),v(t),v(i)),l=!1,we(s)}}}function _p(n){let e,t,i,l;return i=new En({props:{class:"dropdown dropdown-right dropdown-nowrap m-t-5",$$slots:{default:[t6]},$$scope:{ctx:n}}}),{c(){e=b("i"),t=M(),V(i.$$.fragment),p(e,"class","ri-arrow-down-s-fill")},m(s,o){w(s,e,o),w(s,t,o),H(i,s,o),l=!0},p(s,o){const r={};o[0]&68|o[1]&4194304&&(r.$$scope={dirty:o,ctx:s}),i.$set(r)},i(s){l||(A(i.$$.fragment,s),l=!0)},o(s){I(i.$$.fragment,s),l=!1},d(s){s&&(v(e),v(t)),z(i,s)}}}function gp(n){let e,t,i,l,s,o=n[50]+"",r,a,u,f,c;function d(){return n[29](n[49])}return{c(){e=b("button"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=Y(" collection"),u=M(),p(t,"class",i=Jn(j.getCollectionTypeIcon(n[49]))+" svelte-12y0yzb"),p(s,"class","txt"),p(e,"type","button"),p(e,"class","dropdown-item closable"),ee(e,"selected",n[49]==n[2].type)},m(m,h){w(m,e,h),y(e,t),y(e,l),y(e,s),y(s,r),y(s,a),y(e,u),f||(c=K(e,"click",d),f=!0)},p(m,h){n=m,h[0]&64&&i!==(i=Jn(j.getCollectionTypeIcon(n[49]))+" svelte-12y0yzb")&&p(t,"class",i),h[0]&64&&o!==(o=n[50]+"")&&le(r,o),h[0]&68&&ee(e,"selected",n[49]==n[2].type)},d(m){m&&v(e),f=!1,c()}}}function t6(n){let e,t=pe(Object.entries(n[6])),i=[];for(let l=0;l{P=null}),re()):P?(P.p(R,q),q[0]&4&&A(P,1)):(P=_p(R),P.c(),A(P,1),P.m(d,null)),(!E||q[0]&4&&$!==($="btn btn-sm p-r-10 p-l-10 "+(R[2].id?"btn-transparent":"btn-outline")))&&p(d,"class",$),(!E||q[0]&4&&C!==(C=!!R[2].id))&&(d.disabled=C),R[2].system?N||(N=bp(),N.c(),N.m(O.parentNode,O)):N&&(N.d(1),N=null)},i(R){E||(A(P),E=!0)},o(R){I(P),E=!1},d(R){R&&(v(e),v(l),v(s),v(f),v(c),v(D),v(O)),P&&P.d(),N&&N.d(R),L=!1,F()}}}function yp(n){let e,t,i,l,s,o;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(r,a){w(r,e,a),l=!0,s||(o=ve(t=Le.call(null,e,n[11])),s=!0)},p(r,a){t&&$t(t.update)&&a[0]&2048&&t.update.call(null,r[11])},i(r){l||(r&&Ke(()=>{l&&(i||(i=Pe(e,Yt,{duration:150,start:.7},!0)),i.run(1))}),l=!0)},o(r){r&&(i||(i=Pe(e,Yt,{duration:150,start:.7},!1)),i.run(0)),l=!1},d(r){r&&v(e),r&&i&&i.end(),s=!1,o()}}}function kp(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,"Has errors")),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function vp(n){var a,u,f;let e,t,i,l=!j.isEmpty((a=n[5])==null?void 0:a.options)&&!((f=(u=n[5])==null?void 0:u.options)!=null&&f.manageRule),s,o,r=l&&wp();return{c(){e=b("button"),t=b("span"),t.textContent="Options",i=M(),r&&r.c(),p(t,"class","txt"),p(e,"type","button"),p(e,"class","tab-item"),ee(e,"active",n[3]===Ml)},m(c,d){w(c,e,d),y(e,t),y(e,i),r&&r.m(e,null),s||(o=K(e,"click",n[33]),s=!0)},p(c,d){var m,h,_;d[0]&32&&(l=!j.isEmpty((m=c[5])==null?void 0:m.options)&&!((_=(h=c[5])==null?void 0:h.options)!=null&&_.manageRule)),l?r?d[0]&32&&A(r,1):(r=wp(),r.c(),A(r,1),r.m(e,null)):r&&(oe(),I(r,1,1,()=>{r=null}),re()),d[0]&8&&ee(e,"active",c[3]===Ml)},d(c){c&&v(e),r&&r.d(),s=!1,o()}}}function wp(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,"Has errors")),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function i6(n){var W,J,G,B,U,ae,x;let e,t=n[2].id?"Edit collection":"New collection",i,l,s,o,r,a,u,f,c,d,m,h=n[14]?"Query":"Fields",_,g,k=!j.isEmpty(n[11]),S,T,$,C,D=!j.isEmpty((W=n[5])==null?void 0:W.listRule)||!j.isEmpty((J=n[5])==null?void 0:J.viewRule)||!j.isEmpty((G=n[5])==null?void 0:G.createRule)||!j.isEmpty((B=n[5])==null?void 0:B.updateRule)||!j.isEmpty((U=n[5])==null?void 0:U.deleteRule)||!j.isEmpty((x=(ae=n[5])==null?void 0:ae.options)==null?void 0:x.manageRule),O,E,L,F,P=!!n[2].id&&!n[2].system&&hp(n);r=new me({props:{class:"form-field collection-field-name required m-b-0 "+(n[13]?"disabled":""),name:"name",$$slots:{default:[n6,({uniqueId:se})=>({48:se}),({uniqueId:se})=>[0,se?131072:0]]},$$scope:{ctx:n}}});let N=k&&yp(n),R=D&&kp(),q=n[15]&&vp(n);return{c(){e=b("h4"),i=Y(t),l=M(),P&&P.c(),s=M(),o=b("form"),V(r.$$.fragment),a=M(),u=b("input"),f=M(),c=b("div"),d=b("button"),m=b("span"),_=Y(h),g=M(),N&&N.c(),S=M(),T=b("button"),$=b("span"),$.textContent="API Rules",C=M(),R&&R.c(),O=M(),q&&q.c(),p(e,"class","upsert-panel-title svelte-12y0yzb"),p(u,"type","submit"),p(u,"class","hidden"),p(u,"tabindex","-1"),p(o,"class","block"),p(m,"class","txt"),p(d,"type","button"),p(d,"class","tab-item"),ee(d,"active",n[3]===Di),p($,"class","txt"),p(T,"type","button"),p(T,"class","tab-item"),ee(T,"active",n[3]===bs),p(c,"class","tabs-header stretched")},m(se,De){w(se,e,De),y(e,i),w(se,l,De),P&&P.m(se,De),w(se,s,De),w(se,o,De),H(r,o,null),y(o,a),y(o,u),w(se,f,De),w(se,c,De),y(c,d),y(d,m),y(m,_),y(d,g),N&&N.m(d,null),y(c,S),y(c,T),y(T,$),y(T,C),R&&R.m(T,null),y(c,O),q&&q.m(c,null),E=!0,L||(F=[K(o,"submit",Ye(n[30])),K(d,"click",n[31]),K(T,"click",n[32])],L=!0)},p(se,De){var Ve,Ze,tt,Xe,Ct,Pt,Te;(!E||De[0]&4)&&t!==(t=se[2].id?"Edit collection":"New collection")&&le(i,t),se[2].id&&!se[2].system?P?(P.p(se,De),De[0]&4&&A(P,1)):(P=hp(se),P.c(),A(P,1),P.m(s.parentNode,s)):P&&(oe(),I(P,1,1,()=>{P=null}),re());const je={};De[0]&8192&&(je.class="form-field collection-field-name required m-b-0 "+(se[13]?"disabled":"")),De[0]&41028|De[1]&4325376&&(je.$$scope={dirty:De,ctx:se}),r.$set(je),(!E||De[0]&16384)&&h!==(h=se[14]?"Query":"Fields")&&le(_,h),De[0]&2048&&(k=!j.isEmpty(se[11])),k?N?(N.p(se,De),De[0]&2048&&A(N,1)):(N=yp(se),N.c(),A(N,1),N.m(d,null)):N&&(oe(),I(N,1,1,()=>{N=null}),re()),(!E||De[0]&8)&&ee(d,"active",se[3]===Di),De[0]&32&&(D=!j.isEmpty((Ve=se[5])==null?void 0:Ve.listRule)||!j.isEmpty((Ze=se[5])==null?void 0:Ze.viewRule)||!j.isEmpty((tt=se[5])==null?void 0:tt.createRule)||!j.isEmpty((Xe=se[5])==null?void 0:Xe.updateRule)||!j.isEmpty((Ct=se[5])==null?void 0:Ct.deleteRule)||!j.isEmpty((Te=(Pt=se[5])==null?void 0:Pt.options)==null?void 0:Te.manageRule)),D?R?De[0]&32&&A(R,1):(R=kp(),R.c(),A(R,1),R.m(T,null)):R&&(oe(),I(R,1,1,()=>{R=null}),re()),(!E||De[0]&8)&&ee(T,"active",se[3]===bs),se[15]?q?q.p(se,De):(q=vp(se),q.c(),q.m(c,null)):q&&(q.d(1),q=null)},i(se){E||(A(P),A(r.$$.fragment,se),A(N),A(R),E=!0)},o(se){I(P),I(r.$$.fragment,se),I(N),I(R),E=!1},d(se){se&&(v(e),v(l),v(s),v(o),v(f),v(c)),P&&P.d(se),z(r),N&&N.d(),R&&R.d(),q&&q.d(),L=!1,we(F)}}}function l6(n){let e,t,i,l,s,o=n[2].id?"Save changes":"Create",r,a,u,f;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),r=Y(o),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[9],p(s,"class","txt"),p(l,"type","button"),p(l,"class","btn btn-expanded"),l.disabled=a=!n[12]||n[9],ee(l,"btn-loading",n[9])},m(c,d){w(c,e,d),y(e,t),w(c,i,d),w(c,l,d),y(l,s),y(s,r),u||(f=[K(e,"click",n[24]),K(l,"click",n[25])],u=!0)},p(c,d){d[0]&512&&(e.disabled=c[9]),d[0]&4&&o!==(o=c[2].id?"Save changes":"Create")&&le(r,o),d[0]&4608&&a!==(a=!c[12]||c[9])&&(l.disabled=a),d[0]&512&&ee(l,"btn-loading",c[9])},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function s6(n){let e,t,i,l,s={class:"overlay-panel-lg colored-header collection-panel",escClose:!1,overlayClose:!n[9],beforeHide:n[38],$$slots:{footer:[l6],header:[i6],default:[x5]},$$scope:{ctx:n}};e=new Xt({props:s}),n[39](e),e.$on("hide",n[40]),e.$on("show",n[41]);let o={};return i=new G5({props:o}),n[42](i),i.$on("confirm",n[43]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(r,a){H(e,r,a),w(r,t,a),H(i,r,a),l=!0},p(r,a){const u={};a[0]&512&&(u.overlayClose=!r[9]),a[0]&1040&&(u.beforeHide=r[38]),a[0]&64108|a[1]&4194304&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};i.$set(f)},i(r){l||(A(e.$$.fragment,r),A(i.$$.fragment,r),l=!0)},o(r){I(e.$$.fragment,r),I(i.$$.fragment,r),l=!1},d(r){r&&v(t),n[39](null),z(e,r),n[42](null),z(i,r)}}}const Di="schema",bs="api_rules",Ml="options",o6="base",Sp="auth",$p="view";function Ir(n){return JSON.stringify(n)}function r6(n,e,t){let i,l,s,o,r,a;We(n,_i,ne=>t(5,a=ne));const u={};u[o6]="Base",u[$p]="View",u[Sp]="Auth";const f=ot();let c,d,m=null,h=j.initCollection(),_=!1,g=!1,k=Di,S=Ir(h),T="";function $(ne){t(3,k=ne)}function C(ne){return O(ne),t(10,g=!0),$(Di),c==null?void 0:c.show()}function D(){return c==null?void 0:c.hide()}async function O(ne){Gt({}),typeof ne<"u"?(t(22,m=ne),t(2,h=structuredClone(ne))):(t(22,m=null),t(2,h=j.initCollection())),t(2,h.schema=h.schema||[],h),t(2,h.originalName=h.name||"",h),await Qt(),t(23,S=Ir(h))}function E(){h.id?d==null||d.show(m,h):L()}function L(){if(_)return;t(9,_=!0);const ne=F();let Fe;h.id?Fe=fe.collections.update(h.id,ne):Fe=fe.collections.create(ne),Fe.then(Se=>{Ma(),Zk(Se),t(10,g=!1),D(),It(h.id?"Successfully updated collection.":"Successfully created collection."),f("save",{isNew:!h.id,collection:Se})}).catch(Se=>{fe.error(Se)}).finally(()=>{t(9,_=!1)})}function F(){const ne=Object.assign({},h);ne.schema=ne.schema.slice(0);for(let Fe=ne.schema.length-1;Fe>=0;Fe--)ne.schema[Fe].toDelete&&ne.schema.splice(Fe,1);return ne}function P(){m!=null&&m.id&&an(`Do you really want to delete collection "${m.name}" and all its records?`,()=>fe.collections.delete(m.id).then(()=>{D(),It(`Successfully deleted collection "${m.name}".`),f("delete",m),Gk(m)}).catch(ne=>{fe.error(ne)}))}function N(ne){t(2,h.type=ne,h),ii("schema")}function R(){o?an("You have unsaved changes. Do you really want to discard them?",()=>{q()}):q()}async function q(){const ne=m?structuredClone(m):null;if(ne){if(ne.id="",ne.created="",ne.updated="",ne.name+="_duplicate",!j.isEmpty(ne.schema))for(const Fe of ne.schema)Fe.id="";if(!j.isEmpty(ne.indexes))for(let Fe=0;FeD(),J=()=>E(),G=()=>R(),B=()=>P(),U=ne=>{t(2,h.name=j.slugify(ne.target.value),h),ne.target.value=h.name},ae=ne=>N(ne),x=()=>{r&&E()},se=()=>$(Di),De=()=>$(bs),je=()=>$(Ml);function Ve(ne){h=ne,t(2,h),t(22,m)}function Ze(ne){h=ne,t(2,h),t(22,m)}function tt(ne){h=ne,t(2,h),t(22,m)}function Xe(ne){h=ne,t(2,h),t(22,m)}const Ct=()=>o&&g?(an("You have unsaved changes. Do you really want to close the panel?",()=>{t(10,g=!1),D()}),!1):!0;function Pt(ne){te[ne?"unshift":"push"](()=>{c=ne,t(7,c)})}function Te(ne){Ae.call(this,n,ne)}function Oe(ne){Ae.call(this,n,ne)}function ze(ne){te[ne?"unshift":"push"](()=>{d=ne,t(8,d)})}const _t=()=>L();return n.$$.update=()=>{var ne,Fe;n.$$.dirty[0]&4&&h.type==="view"&&(t(2,h.createRule=null,h),t(2,h.updateRule=null,h),t(2,h.deleteRule=null,h),t(2,h.indexes=[],h)),n.$$.dirty[0]&4194308&&h.name&&(m==null?void 0:m.name)!=h.name&&h.indexes.length>0&&t(2,h.indexes=(ne=h.indexes)==null?void 0:ne.map(Se=>j.replaceIndexTableName(Se,h.name)),h),n.$$.dirty[0]&4&&t(15,i=h.type===Sp),n.$$.dirty[0]&4&&t(14,l=h.type===$p),n.$$.dirty[0]&32&&(a.schema||(Fe=a.options)!=null&&Fe.query?t(11,T=j.getNestedVal(a,"schema.message")||"Has errors"):t(11,T="")),n.$$.dirty[0]&4&&t(13,s=!!h.id&&h.system),n.$$.dirty[0]&8388612&&t(4,o=S!=Ir(h)),n.$$.dirty[0]&20&&t(12,r=!h.id||o),n.$$.dirty[0]&12&&k===Ml&&h.type!=="auth"&&$(Di)},[$,D,h,k,o,a,u,c,d,_,g,T,r,s,l,i,E,L,P,N,R,C,m,S,W,J,G,B,U,ae,x,se,De,je,Ve,Ze,tt,Xe,Ct,Pt,Te,Oe,ze,_t]}class Xa extends ge{constructor(e){super(),_e(this,e,r6,s6,he,{changeTab:0,show:21,hide:1},null,[-1,-1])}get changeTab(){return this.$$.ctx[0]}get show(){return this.$$.ctx[21]}get hide(){return this.$$.ctx[1]}}function a6(n){let e;return{c(){e=b("i"),p(e,"class","ri-pushpin-line m-l-auto svelte-1u3ag8h")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function u6(n){let e;return{c(){e=b("i"),p(e,"class","ri-unpin-line svelte-1u3ag8h")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function f6(n){let e,t,i,l,s,o=n[0].name+"",r,a,u,f,c,d,m,h;function _(S,T){return S[1]?u6:a6}let g=_(n),k=g(n);return{c(){var S;e=b("a"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=M(),u=b("span"),k.c(),p(t,"class",i=Jn(j.getCollectionTypeIcon(n[0].type))+" svelte-1u3ag8h"),p(s,"class","txt m-r-auto"),p(u,"class","btn btn-xs btn-circle btn-hint btn-transparent pin-collection svelte-1u3ag8h"),p(u,"aria-label","Pin collection"),p(e,"href",c="/collections?collectionId="+n[0].id),p(e,"class","sidebar-list-item svelte-1u3ag8h"),p(e,"title",d=n[0].name),ee(e,"active",((S=n[2])==null?void 0:S.id)===n[0].id)},m(S,T){w(S,e,T),y(e,t),y(e,l),y(e,s),y(s,r),y(e,a),y(e,u),k.m(u,null),m||(h=[ve(f=Le.call(null,u,{position:"right",text:(n[1]?"Unpin":"Pin")+" collection"})),K(u,"click",fn(Ye(n[5]))),ve(ln.call(null,e))],m=!0)},p(S,[T]){var $;T&1&&i!==(i=Jn(j.getCollectionTypeIcon(S[0].type))+" svelte-1u3ag8h")&&p(t,"class",i),T&1&&o!==(o=S[0].name+"")&&le(r,o),g!==(g=_(S))&&(k.d(1),k=g(S),k&&(k.c(),k.m(u,null))),f&&$t(f.update)&&T&2&&f.update.call(null,{position:"right",text:(S[1]?"Unpin":"Pin")+" collection"}),T&1&&c!==(c="/collections?collectionId="+S[0].id)&&p(e,"href",c),T&1&&d!==(d=S[0].name)&&p(e,"title",d),T&5&&ee(e,"active",(($=S[2])==null?void 0:$.id)===S[0].id)},i:Q,o:Q,d(S){S&&v(e),k.d(),m=!1,we(h)}}}function c6(n,e,t){let i,l;We(n,li,u=>t(2,l=u));let{collection:s}=e,{pinnedIds:o}=e;function r(u){o.includes(u.id)?j.removeByValue(o,u.id):o.push(u.id),t(4,o)}const a=()=>r(s);return n.$$set=u=>{"collection"in u&&t(0,s=u.collection),"pinnedIds"in u&&t(4,o=u.pinnedIds)},n.$$.update=()=>{n.$$.dirty&17&&t(1,i=o.includes(s.id))},[s,i,l,r,o,a]}class Rb extends ge{constructor(e){super(),_e(this,e,c6,f6,he,{collection:0,pinnedIds:4})}}function Tp(n,e,t){const i=n.slice();return i[22]=e[t],i}function Cp(n,e,t){const i=n.slice();return i[22]=e[t],i}function Mp(n){let e,t,i=[],l=new Map,s,o,r=pe(n[6]);const a=u=>u[22].id;for(let u=0;ube(i,"pinnedIds",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u&64&&(f.collection=e[22]),!l&&u&2&&(l=!0,f.pinnedIds=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function Dp(n){let e,t=[],i=new Map,l,s,o=n[6].length&&Ep(),r=pe(n[5]);const a=u=>u[22].id;for(let u=0;ube(i,"pinnedIds",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u&32&&(f.collection=e[22]),!l&&u&2&&(l=!0,f.pinnedIds=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function Ip(n){let e;return{c(){e=b("p"),e.textContent="No collections found.",p(e,"class","txt-hint m-t-10 m-b-10 txt-center")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Lp(n){let e,t,i,l;return{c(){e=b("footer"),t=b("button"),t.innerHTML=' New collection',p(t,"type","button"),p(t,"class","btn btn-block btn-outline"),p(e,"class","sidebar-footer")},m(s,o){w(s,e,o),y(e,t),i||(l=K(t,"click",n[16]),i=!0)},p:Q,d(s){s&&v(e),i=!1,l()}}}function d6(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S=n[6].length&&Mp(n),T=n[5].length&&Dp(n),$=n[3].length&&!n[2].length&&Ip(),C=!n[9]&&Lp(n);return{c(){e=b("header"),t=b("div"),i=b("div"),l=b("button"),l.innerHTML='',s=M(),o=b("input"),r=M(),a=b("hr"),u=M(),f=b("div"),S&&S.c(),c=M(),T&&T.c(),d=M(),$&&$.c(),m=M(),C&&C.c(),h=ke(),p(l,"type","button"),p(l,"class","btn btn-xs btn-transparent btn-circle btn-clear"),ee(l,"hidden",!n[7]),p(i,"class","form-field-addon"),p(o,"type","text"),p(o,"placeholder","Search collections..."),p(o,"name","collections-search"),p(t,"class","form-field search"),ee(t,"active",n[7]),p(e,"class","sidebar-header"),p(a,"class","m-t-5 m-b-xs"),p(f,"class","sidebar-content"),ee(f,"fade",n[8]),ee(f,"sidebar-content-compact",n[2].length>20)},m(D,O){w(D,e,O),y(e,t),y(t,i),y(i,l),y(t,s),y(t,o),ue(o,n[0]),w(D,r,O),w(D,a,O),w(D,u,O),w(D,f,O),S&&S.m(f,null),y(f,c),T&&T.m(f,null),y(f,d),$&&$.m(f,null),w(D,m,O),C&&C.m(D,O),w(D,h,O),_=!0,g||(k=[K(l,"click",n[12]),K(o,"input",n[13])],g=!0)},p(D,O){(!_||O&128)&&ee(l,"hidden",!D[7]),O&1&&o.value!==D[0]&&ue(o,D[0]),(!_||O&128)&&ee(t,"active",D[7]),D[6].length?S?(S.p(D,O),O&64&&A(S,1)):(S=Mp(D),S.c(),A(S,1),S.m(f,c)):S&&(oe(),I(S,1,1,()=>{S=null}),re()),D[5].length?T?(T.p(D,O),O&32&&A(T,1)):(T=Dp(D),T.c(),A(T,1),T.m(f,d)):T&&(oe(),I(T,1,1,()=>{T=null}),re()),D[3].length&&!D[2].length?$||($=Ip(),$.c(),$.m(f,null)):$&&($.d(1),$=null),(!_||O&256)&&ee(f,"fade",D[8]),(!_||O&4)&&ee(f,"sidebar-content-compact",D[2].length>20),D[9]?C&&(C.d(1),C=null):C?C.p(D,O):(C=Lp(D),C.c(),C.m(h.parentNode,h))},i(D){_||(A(S),A(T),_=!0)},o(D){I(S),I(T),_=!1},d(D){D&&(v(e),v(r),v(a),v(u),v(f),v(m),v(h)),S&&S.d(),T&&T.d(),$&&$.d(),C&&C.d(D),g=!1,we(k)}}}function p6(n){let e,t,i,l;e=new Ab({props:{class:"collection-sidebar",$$slots:{default:[d6]},$$scope:{ctx:n}}});let s={};return i=new Xa({props:s}),n[17](i),i.$on("save",n[18]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(o,r){H(e,o,r),w(o,t,r),H(i,o,r),l=!0},p(o,[r]){const a={};r&134218751&&(a.$$scope={dirty:r,ctx:o}),e.$set(a);const u={};i.$set(u)},i(o){l||(A(e.$$.fragment,o),A(i.$$.fragment,o),l=!0)},o(o){I(e.$$.fragment,o),I(i.$$.fragment,o),l=!1},d(o){o&&v(t),z(e,o),n[17](null),z(i,o)}}}const Pp="@pinnedCollections";function m6(){setTimeout(()=>{const n=document.querySelector(".collection-sidebar .sidebar-list-item.active");n&&(n==null||n.scrollIntoView({block:"nearest"}))},0)}function h6(n,e,t){let i,l,s,o,r,a,u,f,c;We(n,zn,L=>t(11,a=L)),We(n,li,L=>t(19,u=L)),We(n,To,L=>t(8,f=L)),We(n,Sl,L=>t(9,c=L));let d,m="",h=[];g();function _(L){tn(li,u=L,u)}function g(){t(1,h=[]);try{const L=localStorage.getItem(Pp);L&&t(1,h=JSON.parse(L)||[])}catch{}}function k(){t(1,h=h.filter(L=>!!a.find(F=>F.id==L)))}const S=()=>t(0,m="");function T(){m=this.value,t(0,m)}function $(L){h=L,t(1,h)}function C(L){h=L,t(1,h)}const D=()=>d==null?void 0:d.show();function O(L){te[L?"unshift":"push"](()=>{d=L,t(4,d)})}const E=L=>{var F;(F=L.detail)!=null&&F.isNew&&L.detail.collection&&_(L.detail.collection)};return n.$$.update=()=>{n.$$.dirty&2048&&a&&(k(),m6()),n.$$.dirty&1&&t(3,i=m.replace(/\s+/g,"").toLowerCase()),n.$$.dirty&1&&t(7,l=m!==""),n.$$.dirty&2&&h&&localStorage.setItem(Pp,JSON.stringify(h)),n.$$.dirty&2057&&t(2,s=a.filter(L=>L.id==m||L.name.replace(/\s+/g,"").toLowerCase().includes(i))),n.$$.dirty&6&&t(6,o=s.filter(L=>h.includes(L.id))),n.$$.dirty&6&&t(5,r=s.filter(L=>!h.includes(L.id)))},[m,h,s,i,d,r,o,l,f,c,_,a,S,T,$,C,D,O,E]}class _6 extends ge{constructor(e){super(),_e(this,e,h6,p6,he,{})}}function Np(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i}function Fp(n){n[18]=n[19].default}function Rp(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i[21]=t,i}function qp(n){let e;return{c(){e=b("hr"),p(e,"class","m-t-sm m-b-sm")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function jp(n,e){let t,i=e[21]===Object.keys(e[6]).length,l,s,o=e[15].label+"",r,a,u,f,c=i&&qp();function d(){return e[9](e[14])}return{key:n,first:null,c(){t=ke(),c&&c.c(),l=M(),s=b("button"),r=Y(o),a=M(),p(s,"type","button"),p(s,"class","sidebar-item"),ee(s,"active",e[5]===e[14]),this.first=t},m(m,h){w(m,t,h),c&&c.m(m,h),w(m,l,h),w(m,s,h),y(s,r),y(s,a),u||(f=K(s,"click",d),u=!0)},p(m,h){e=m,h&8&&(i=e[21]===Object.keys(e[6]).length),i?c||(c=qp(),c.c(),c.m(l.parentNode,l)):c&&(c.d(1),c=null),h&8&&o!==(o=e[15].label+"")&&le(r,o),h&40&&ee(s,"active",e[5]===e[14])},d(m){m&&(v(t),v(l),v(s)),c&&c.d(m),u=!1,f()}}}function Hp(n){let e,t,i,l={ctx:n,current:null,token:null,hasCatch:!1,pending:y6,then:b6,catch:g6,value:19,blocks:[,,,]};return lu(t=n[15].component,l),{c(){e=ke(),l.block.c()},m(s,o){w(s,e,o),l.block.m(s,l.anchor=o),l.mount=()=>e.parentNode,l.anchor=e,i=!0},p(s,o){n=s,l.ctx=n,o&8&&t!==(t=n[15].component)&&lu(t,l)||b0(l,n,o)},i(s){i||(A(l.block),i=!0)},o(s){for(let o=0;o<3;o+=1){const r=l.blocks[o];I(r)}i=!1},d(s){s&&v(e),l.block.d(s),l.token=null,l=null}}}function g6(n){return{c:Q,m:Q,p:Q,i:Q,o:Q,d:Q}}function b6(n){Fp(n);let e,t,i;return e=new n[18]({props:{collection:n[2]}}),{c(){V(e.$$.fragment),t=M()},m(l,s){H(e,l,s),w(l,t,s),i=!0},p(l,s){Fp(l);const o={};s&4&&(o.collection=l[2]),e.$set(o)},i(l){i||(A(e.$$.fragment,l),i=!0)},o(l){I(e.$$.fragment,l),i=!1},d(l){l&&v(t),z(e,l)}}}function y6(n){return{c:Q,m:Q,p:Q,i:Q,o:Q,d:Q}}function zp(n,e){let t,i,l,s=e[5]===e[14]&&Hp(e);return{key:n,first:null,c(){t=ke(),s&&s.c(),i=ke(),this.first=t},m(o,r){w(o,t,r),s&&s.m(o,r),w(o,i,r),l=!0},p(o,r){e=o,e[5]===e[14]?s?(s.p(e,r),r&40&&A(s,1)):(s=Hp(e),s.c(),A(s,1),s.m(i.parentNode,i)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){l||(A(s),l=!0)},o(o){I(s),l=!1},d(o){o&&(v(t),v(i)),s&&s.d(o)}}}function k6(n){let e,t,i,l=[],s=new Map,o,r,a=[],u=new Map,f,c=pe(Object.entries(n[3]));const d=_=>_[14];for(let _=0;__[14];for(let _=0;_Close',p(e,"type","button"),p(e,"class","btn btn-transparent")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[8]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function w6(n){let e,t,i={class:"docs-panel",$$slots:{footer:[v6],default:[k6]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&4194348&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[10](null),z(e,l)}}}function S6(n,e,t){const i={list:{label:"List/Search",component:rt(()=>import("./ListApiDocs-be6f6f24.js"),["./ListApiDocs-be6f6f24.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js","./ListApiDocs-68f52edd.css"],import.meta.url)},view:{label:"View",component:rt(()=>import("./ViewApiDocs-e0218a5d.js"),["./ViewApiDocs-e0218a5d.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},create:{label:"Create",component:rt(()=>import("./CreateApiDocs-7a13198d.js"),["./CreateApiDocs-7a13198d.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},update:{label:"Update",component:rt(()=>import("./UpdateApiDocs-d73a6961.js"),["./UpdateApiDocs-d73a6961.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},delete:{label:"Delete",component:rt(()=>import("./DeleteApiDocs-7f9b6a98.js"),["./DeleteApiDocs-7f9b6a98.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},realtime:{label:"Realtime",component:rt(()=>import("./RealtimeApiDocs-1ecefb98.js"),["./RealtimeApiDocs-1ecefb98.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)}},l={"auth-with-password":{label:"Auth with password",component:rt(()=>import("./AuthWithPasswordDocs-30320a31.js"),["./AuthWithPasswordDocs-30320a31.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},"auth-with-oauth2":{label:"Auth with OAuth2",component:rt(()=>import("./AuthWithOAuth2Docs-25e86dcd.js"),["./AuthWithOAuth2Docs-25e86dcd.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},refresh:{label:"Auth refresh",component:rt(()=>import("./AuthRefreshDocs-f72e612e.js"),["./AuthRefreshDocs-f72e612e.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},"request-verification":{label:"Request verification",component:rt(()=>import("./RequestVerificationDocs-cc391425.js"),["./RequestVerificationDocs-cc391425.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-verification":{label:"Confirm verification",component:rt(()=>import("./ConfirmVerificationDocs-a38c2d9c.js"),["./ConfirmVerificationDocs-a38c2d9c.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"request-password-reset":{label:"Request password reset",component:rt(()=>import("./RequestPasswordResetDocs-a2af2bdb.js"),["./RequestPasswordResetDocs-a2af2bdb.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-password-reset":{label:"Confirm password reset",component:rt(()=>import("./ConfirmPasswordResetDocs-f2dc5193.js"),["./ConfirmPasswordResetDocs-f2dc5193.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"request-email-change":{label:"Request email change",component:rt(()=>import("./RequestEmailChangeDocs-b89a6cc3.js"),["./RequestEmailChangeDocs-b89a6cc3.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-email-change":{label:"Confirm email change",component:rt(()=>import("./ConfirmEmailChangeDocs-72e04e00.js"),["./ConfirmEmailChangeDocs-72e04e00.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"list-auth-methods":{label:"List auth methods",component:rt(()=>import("./AuthMethodsDocs-e222402c.js"),["./AuthMethodsDocs-e222402c.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},"list-linked-accounts":{label:"List OAuth2 accounts",component:rt(()=>import("./ListExternalAuthsDocs-6814fc58.js"),["./ListExternalAuthsDocs-6814fc58.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-e878558e.js"],import.meta.url)},"unlink-account":{label:"Unlink OAuth2 account",component:rt(()=>import("./UnlinkExternalAuthDocs-afa6f8a1.js"),["./UnlinkExternalAuthDocs-afa6f8a1.js","./SdkTabs-88bdaa1d.js","./SdkTabs-9b0b7a06.css"],import.meta.url)}};let s,o={},r,a=[];a.length&&(r=Object.keys(a)[0]);function u(k){return t(2,o=k),c(Object.keys(a)[0]),s==null?void 0:s.show()}function f(){return s==null?void 0:s.hide()}function c(k){t(5,r=k)}const d=()=>f(),m=k=>c(k);function h(k){te[k?"unshift":"push"](()=>{s=k,t(4,s)})}function _(k){Ae.call(this,n,k)}function g(k){Ae.call(this,n,k)}return n.$$.update=()=>{n.$$.dirty&12&&(o.type==="auth"?(t(3,a=Object.assign({},i,l)),!o.options.allowUsernameAuth&&!o.options.allowEmailAuth&&delete a["auth-with-password"],o.options.allowOAuth2Auth||delete a["auth-with-oauth2"]):o.type==="view"?(t(3,a=Object.assign({},i)),delete a.create,delete a.update,delete a.delete,delete a.realtime):t(3,a=Object.assign({},i)))},[f,c,o,a,s,r,i,u,d,m,h,_,g]}class $6 extends ge{constructor(e){super(),_e(this,e,S6,w6,he,{show:7,hide:0,changeTab:1})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}get changeTab(){return this.$$.ctx[1]}}function T6(n){let e,t,i,l;return{c(){e=b("i"),p(e,"class","ri-calendar-event-line txt-disabled")},m(s,o){w(s,e,o),i||(l=ve(t=Le.call(null,e,{text:n[0].join(` + you'll have to update it manually!`,o=M(),u&&u.c(),r=M(),f&&f.c(),a=ke(),p(t,"class","icon"),p(l,"class","content txt-bold"),p(e,"class","alert alert-warning")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),y(l,s),y(l,o),u&&u.m(l,null),w(c,r,d),f&&f.m(c,d),w(c,a,d)},p(c,d){c[7].length?u||(u=sp(),u.c(),u.m(l,null)):u&&(u.d(1),u=null),c[9]?f?f.p(c,d):(f=op(c),f.c(),f.m(a.parentNode,a)):f&&(f.d(1),f=null)},d(c){c&&(v(e),v(r),v(a)),u&&u.d(),f&&f.d(c)}}}function Y5(n){let e;return{c(){e=b("h4"),e.textContent="Confirm collection changes"},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function K5(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML='Cancel',t=M(),i=b("button"),i.innerHTML='Confirm',e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-transparent"),p(i,"type","button"),p(i,"class","btn btn-expanded")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),e.focus(),l||(s=[K(e,"click",n[12]),K(i,"click",n[13])],l=!0)},p:Q,d(o){o&&(v(e),v(t),v(i)),l=!1,we(s)}}}function J5(n){let e,t,i={class:"confirm-changes-panel",popup:!0,$$slots:{footer:[K5],header:[Y5],default:[W5]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[14](e),e.$on("hide",n[15]),e.$on("show",n[16]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&33555422&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[14](null),z(e,l)}}}function Z5(n,e,t){let i,l,s,o,r,a;const u=ot();let f,c,d;async function m(C,D){t(1,c=C),t(2,d=D),await Qt(),i||s.length||o.length||r.length?f==null||f.show():_()}function h(){f==null||f.hide()}function _(){h(),u("confirm")}const g=()=>h(),k=()=>_();function S(C){te[C?"unshift":"push"](()=>{f=C,t(5,f)})}function T(C){Ae.call(this,n,C)}function $(C){Ae.call(this,n,C)}return n.$$.update=()=>{var C,D,O;n.$$.dirty&6&&t(3,i=(c==null?void 0:c.name)!=(d==null?void 0:d.name)),n.$$.dirty&4&&t(4,l=(d==null?void 0:d.type)==="view"),n.$$.dirty&4&&t(8,s=((C=d==null?void 0:d.schema)==null?void 0:C.filter(E=>E.id&&!E.toDelete&&E.originalName!=E.name))||[]),n.$$.dirty&4&&t(7,o=((D=d==null?void 0:d.schema)==null?void 0:D.filter(E=>E.id&&E.toDelete))||[]),n.$$.dirty&6&&t(6,r=((O=d==null?void 0:d.schema)==null?void 0:O.filter(E=>{var F,P,N;const L=(F=c==null?void 0:c.schema)==null?void 0:F.find(R=>R.id==E.id);return L?((P=L.options)==null?void 0:P.maxSelect)!=1&&((N=E.options)==null?void 0:N.maxSelect)==1:!1}))||[]),n.$$.dirty&24&&t(9,a=!l||i)},[h,c,d,i,l,f,r,o,s,a,_,m,g,k,S,T,$]}class G5 extends ge{constructor(e){super(),_e(this,e,Z5,J5,he,{show:11,hide:0})}get show(){return this.$$.ctx[11]}get hide(){return this.$$.ctx[0]}}function dp(n,e,t){const i=n.slice();return i[49]=e[t][0],i[50]=e[t][1],i}function X5(n){let e,t,i;function l(o){n[35](o)}let s={};return n[2]!==void 0&&(s.collection=n[2]),e=new xC({props:s}),te.push(()=>be(e,"collection",l)),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};!t&&r[0]&4&&(t=!0,a.collection=o[2],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function Q5(n){let e,t,i;function l(o){n[34](o)}let s={};return n[2]!==void 0&&(s.collection=n[2]),e=new b5({props:s}),te.push(()=>be(e,"collection",l)),{c(){V(e.$$.fragment)},m(o,r){H(e,o,r),i=!0},p(o,r){const a={};!t&&r[0]&4&&(t=!0,a.collection=o[2],ye(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){I(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function pp(n){let e,t,i,l;function s(r){n[36](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new d5({props:o}),te.push(()=>be(t,"collection",s)),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tab-item active")},m(r,a){w(r,e,a),H(t,e,null),l=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ye(()=>i=!1)),t.$set(u)},i(r){l||(A(t.$$.fragment,r),l=!0)},o(r){I(t.$$.fragment,r),l=!1},d(r){r&&v(e),z(t)}}}function mp(n){let e,t,i,l;function s(r){n[37](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new U5({props:o}),te.push(()=>be(t,"collection",s)),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tab-item"),ee(e,"active",n[3]===Ml)},m(r,a){w(r,e,a),H(t,e,null),l=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ye(()=>i=!1)),t.$set(u),(!l||a[0]&8)&&ee(e,"active",r[3]===Ml)},i(r){l||(A(t.$$.fragment,r),l=!0)},o(r){I(t.$$.fragment,r),l=!1},d(r){r&&v(e),z(t)}}}function x5(n){let e,t,i,l,s,o,r;const a=[Q5,X5],u=[];function f(m,h){return m[14]?0:1}i=f(n),l=u[i]=a[i](n);let c=n[3]===bs&&pp(n),d=n[15]&&mp(n);return{c(){e=b("div"),t=b("div"),l.c(),s=M(),c&&c.c(),o=M(),d&&d.c(),p(t,"class","tab-item"),ee(t,"active",n[3]===Di),p(e,"class","tabs-content svelte-12y0yzb")},m(m,h){w(m,e,h),y(e,t),u[i].m(t,null),y(e,s),c&&c.m(e,null),y(e,o),d&&d.m(e,null),r=!0},p(m,h){let _=i;i=f(m),i===_?u[i].p(m,h):(oe(),I(u[_],1,1,()=>{u[_]=null}),re(),l=u[i],l?l.p(m,h):(l=u[i]=a[i](m),l.c()),A(l,1),l.m(t,null)),(!r||h[0]&8)&&ee(t,"active",m[3]===Di),m[3]===bs?c?(c.p(m,h),h[0]&8&&A(c,1)):(c=pp(m),c.c(),A(c,1),c.m(e,o)):c&&(oe(),I(c,1,1,()=>{c=null}),re()),m[15]?d?(d.p(m,h),h[0]&32768&&A(d,1)):(d=mp(m),d.c(),A(d,1),d.m(e,null)):d&&(oe(),I(d,1,1,()=>{d=null}),re())},i(m){r||(A(l),A(c),A(d),r=!0)},o(m){I(l),I(c),I(d),r=!1},d(m){m&&v(e),u[i].d(),c&&c.d(),d&&d.d()}}}function hp(n){let e,t,i,l,s,o,r;return o=new En({props:{class:"dropdown dropdown-right m-t-5",$$slots:{default:[e6]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=M(),i=b("button"),l=b("i"),s=M(),V(o.$$.fragment),p(e,"class","flex-fill"),p(l,"class","ri-more-line"),p(i,"type","button"),p(i,"aria-label","More"),p(i,"class","btn btn-sm btn-circle btn-transparent flex-gap-0")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),y(i,l),y(i,s),H(o,i,null),r=!0},p(a,u){const f={};u[1]&4194304&&(f.$$scope={dirty:u,ctx:a}),o.$set(f)},i(a){r||(A(o.$$.fragment,a),r=!0)},o(a){I(o.$$.fragment,a),r=!1},d(a){a&&(v(e),v(t),v(i)),z(o)}}}function e6(n){let e,t,i,l,s;return{c(){e=b("button"),e.innerHTML=' Duplicate',t=M(),i=b("button"),i.innerHTML=' Delete',p(e,"type","button"),p(e,"class","dropdown-item closable"),p(i,"type","button"),p(i,"class","dropdown-item txt-danger closable")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),l||(s=[K(e,"click",n[26]),K(i,"click",fn(Ye(n[27])))],l=!0)},p:Q,d(o){o&&(v(e),v(t),v(i)),l=!1,we(s)}}}function _p(n){let e,t,i,l;return i=new En({props:{class:"dropdown dropdown-right dropdown-nowrap m-t-5",$$slots:{default:[t6]},$$scope:{ctx:n}}}),{c(){e=b("i"),t=M(),V(i.$$.fragment),p(e,"class","ri-arrow-down-s-fill")},m(s,o){w(s,e,o),w(s,t,o),H(i,s,o),l=!0},p(s,o){const r={};o[0]&68|o[1]&4194304&&(r.$$scope={dirty:o,ctx:s}),i.$set(r)},i(s){l||(A(i.$$.fragment,s),l=!0)},o(s){I(i.$$.fragment,s),l=!1},d(s){s&&(v(e),v(t)),z(i,s)}}}function gp(n){let e,t,i,l,s,o=n[50]+"",r,a,u,f,c;function d(){return n[29](n[49])}return{c(){e=b("button"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=Y(" collection"),u=M(),p(t,"class",i=Jn(j.getCollectionTypeIcon(n[49]))+" svelte-12y0yzb"),p(s,"class","txt"),p(e,"type","button"),p(e,"class","dropdown-item closable"),ee(e,"selected",n[49]==n[2].type)},m(m,h){w(m,e,h),y(e,t),y(e,l),y(e,s),y(s,r),y(s,a),y(e,u),f||(c=K(e,"click",d),f=!0)},p(m,h){n=m,h[0]&64&&i!==(i=Jn(j.getCollectionTypeIcon(n[49]))+" svelte-12y0yzb")&&p(t,"class",i),h[0]&64&&o!==(o=n[50]+"")&&le(r,o),h[0]&68&&ee(e,"selected",n[49]==n[2].type)},d(m){m&&v(e),f=!1,c()}}}function t6(n){let e,t=pe(Object.entries(n[6])),i=[];for(let l=0;l{P=null}),re()):P?(P.p(R,q),q[0]&4&&A(P,1)):(P=_p(R),P.c(),A(P,1),P.m(d,null)),(!E||q[0]&4&&$!==($="btn btn-sm p-r-10 p-l-10 "+(R[2].id?"btn-transparent":"btn-outline")))&&p(d,"class",$),(!E||q[0]&4&&C!==(C=!!R[2].id))&&(d.disabled=C),R[2].system?N||(N=bp(),N.c(),N.m(O.parentNode,O)):N&&(N.d(1),N=null)},i(R){E||(A(P),E=!0)},o(R){I(P),E=!1},d(R){R&&(v(e),v(l),v(s),v(f),v(c),v(D),v(O)),P&&P.d(),N&&N.d(R),L=!1,F()}}}function yp(n){let e,t,i,l,s,o;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(r,a){w(r,e,a),l=!0,s||(o=ve(t=Le.call(null,e,n[11])),s=!0)},p(r,a){t&&$t(t.update)&&a[0]&2048&&t.update.call(null,r[11])},i(r){l||(r&&Ke(()=>{l&&(i||(i=Pe(e,Yt,{duration:150,start:.7},!0)),i.run(1))}),l=!0)},o(r){r&&(i||(i=Pe(e,Yt,{duration:150,start:.7},!1)),i.run(0)),l=!1},d(r){r&&v(e),r&&i&&i.end(),s=!1,o()}}}function kp(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,"Has errors")),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function vp(n){var a,u,f;let e,t,i,l=!j.isEmpty((a=n[5])==null?void 0:a.options)&&!((f=(u=n[5])==null?void 0:u.options)!=null&&f.manageRule),s,o,r=l&&wp();return{c(){e=b("button"),t=b("span"),t.textContent="Options",i=M(),r&&r.c(),p(t,"class","txt"),p(e,"type","button"),p(e,"class","tab-item"),ee(e,"active",n[3]===Ml)},m(c,d){w(c,e,d),y(e,t),y(e,i),r&&r.m(e,null),s||(o=K(e,"click",n[33]),s=!0)},p(c,d){var m,h,_;d[0]&32&&(l=!j.isEmpty((m=c[5])==null?void 0:m.options)&&!((_=(h=c[5])==null?void 0:h.options)!=null&&_.manageRule)),l?r?d[0]&32&&A(r,1):(r=wp(),r.c(),A(r,1),r.m(e,null)):r&&(oe(),I(r,1,1,()=>{r=null}),re()),d[0]&8&&ee(e,"active",c[3]===Ml)},d(c){c&&v(e),r&&r.d(),s=!1,o()}}}function wp(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,"Has errors")),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function i6(n){var W,J,G,B,U,ae,x;let e,t=n[2].id?"Edit collection":"New collection",i,l,s,o,r,a,u,f,c,d,m,h=n[14]?"Query":"Fields",_,g,k=!j.isEmpty(n[11]),S,T,$,C,D=!j.isEmpty((W=n[5])==null?void 0:W.listRule)||!j.isEmpty((J=n[5])==null?void 0:J.viewRule)||!j.isEmpty((G=n[5])==null?void 0:G.createRule)||!j.isEmpty((B=n[5])==null?void 0:B.updateRule)||!j.isEmpty((U=n[5])==null?void 0:U.deleteRule)||!j.isEmpty((x=(ae=n[5])==null?void 0:ae.options)==null?void 0:x.manageRule),O,E,L,F,P=!!n[2].id&&!n[2].system&&hp(n);r=new me({props:{class:"form-field collection-field-name required m-b-0 "+(n[13]?"disabled":""),name:"name",$$slots:{default:[n6,({uniqueId:se})=>({48:se}),({uniqueId:se})=>[0,se?131072:0]]},$$scope:{ctx:n}}});let N=k&&yp(n),R=D&&kp(),q=n[15]&&vp(n);return{c(){e=b("h4"),i=Y(t),l=M(),P&&P.c(),s=M(),o=b("form"),V(r.$$.fragment),a=M(),u=b("input"),f=M(),c=b("div"),d=b("button"),m=b("span"),_=Y(h),g=M(),N&&N.c(),S=M(),T=b("button"),$=b("span"),$.textContent="API Rules",C=M(),R&&R.c(),O=M(),q&&q.c(),p(e,"class","upsert-panel-title svelte-12y0yzb"),p(u,"type","submit"),p(u,"class","hidden"),p(u,"tabindex","-1"),p(o,"class","block"),p(m,"class","txt"),p(d,"type","button"),p(d,"class","tab-item"),ee(d,"active",n[3]===Di),p($,"class","txt"),p(T,"type","button"),p(T,"class","tab-item"),ee(T,"active",n[3]===bs),p(c,"class","tabs-header stretched")},m(se,De){w(se,e,De),y(e,i),w(se,l,De),P&&P.m(se,De),w(se,s,De),w(se,o,De),H(r,o,null),y(o,a),y(o,u),w(se,f,De),w(se,c,De),y(c,d),y(d,m),y(m,_),y(d,g),N&&N.m(d,null),y(c,S),y(c,T),y(T,$),y(T,C),R&&R.m(T,null),y(c,O),q&&q.m(c,null),E=!0,L||(F=[K(o,"submit",Ye(n[30])),K(d,"click",n[31]),K(T,"click",n[32])],L=!0)},p(se,De){var Ve,Ze,tt,Xe,Ct,Pt,Te;(!E||De[0]&4)&&t!==(t=se[2].id?"Edit collection":"New collection")&&le(i,t),se[2].id&&!se[2].system?P?(P.p(se,De),De[0]&4&&A(P,1)):(P=hp(se),P.c(),A(P,1),P.m(s.parentNode,s)):P&&(oe(),I(P,1,1,()=>{P=null}),re());const je={};De[0]&8192&&(je.class="form-field collection-field-name required m-b-0 "+(se[13]?"disabled":"")),De[0]&41028|De[1]&4325376&&(je.$$scope={dirty:De,ctx:se}),r.$set(je),(!E||De[0]&16384)&&h!==(h=se[14]?"Query":"Fields")&&le(_,h),De[0]&2048&&(k=!j.isEmpty(se[11])),k?N?(N.p(se,De),De[0]&2048&&A(N,1)):(N=yp(se),N.c(),A(N,1),N.m(d,null)):N&&(oe(),I(N,1,1,()=>{N=null}),re()),(!E||De[0]&8)&&ee(d,"active",se[3]===Di),De[0]&32&&(D=!j.isEmpty((Ve=se[5])==null?void 0:Ve.listRule)||!j.isEmpty((Ze=se[5])==null?void 0:Ze.viewRule)||!j.isEmpty((tt=se[5])==null?void 0:tt.createRule)||!j.isEmpty((Xe=se[5])==null?void 0:Xe.updateRule)||!j.isEmpty((Ct=se[5])==null?void 0:Ct.deleteRule)||!j.isEmpty((Te=(Pt=se[5])==null?void 0:Pt.options)==null?void 0:Te.manageRule)),D?R?De[0]&32&&A(R,1):(R=kp(),R.c(),A(R,1),R.m(T,null)):R&&(oe(),I(R,1,1,()=>{R=null}),re()),(!E||De[0]&8)&&ee(T,"active",se[3]===bs),se[15]?q?q.p(se,De):(q=vp(se),q.c(),q.m(c,null)):q&&(q.d(1),q=null)},i(se){E||(A(P),A(r.$$.fragment,se),A(N),A(R),E=!0)},o(se){I(P),I(r.$$.fragment,se),I(N),I(R),E=!1},d(se){se&&(v(e),v(l),v(s),v(o),v(f),v(c)),P&&P.d(se),z(r),N&&N.d(),R&&R.d(),q&&q.d(),L=!1,we(F)}}}function l6(n){let e,t,i,l,s,o=n[2].id?"Save changes":"Create",r,a,u,f;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),r=Y(o),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[9],p(s,"class","txt"),p(l,"type","button"),p(l,"class","btn btn-expanded"),l.disabled=a=!n[12]||n[9],ee(l,"btn-loading",n[9])},m(c,d){w(c,e,d),y(e,t),w(c,i,d),w(c,l,d),y(l,s),y(s,r),u||(f=[K(e,"click",n[24]),K(l,"click",n[25])],u=!0)},p(c,d){d[0]&512&&(e.disabled=c[9]),d[0]&4&&o!==(o=c[2].id?"Save changes":"Create")&&le(r,o),d[0]&4608&&a!==(a=!c[12]||c[9])&&(l.disabled=a),d[0]&512&&ee(l,"btn-loading",c[9])},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function s6(n){let e,t,i,l,s={class:"overlay-panel-lg colored-header collection-panel",escClose:!1,overlayClose:!n[9],beforeHide:n[38],$$slots:{footer:[l6],header:[i6],default:[x5]},$$scope:{ctx:n}};e=new Xt({props:s}),n[39](e),e.$on("hide",n[40]),e.$on("show",n[41]);let o={};return i=new G5({props:o}),n[42](i),i.$on("confirm",n[43]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(r,a){H(e,r,a),w(r,t,a),H(i,r,a),l=!0},p(r,a){const u={};a[0]&512&&(u.overlayClose=!r[9]),a[0]&1040&&(u.beforeHide=r[38]),a[0]&64108|a[1]&4194304&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};i.$set(f)},i(r){l||(A(e.$$.fragment,r),A(i.$$.fragment,r),l=!0)},o(r){I(e.$$.fragment,r),I(i.$$.fragment,r),l=!1},d(r){r&&v(t),n[39](null),z(e,r),n[42](null),z(i,r)}}}const Di="schema",bs="api_rules",Ml="options",o6="base",Sp="auth",$p="view";function Ir(n){return JSON.stringify(n)}function r6(n,e,t){let i,l,s,o,r,a;We(n,_i,ne=>t(5,a=ne));const u={};u[o6]="Base",u[$p]="View",u[Sp]="Auth";const f=ot();let c,d,m=null,h=j.initCollection(),_=!1,g=!1,k=Di,S=Ir(h),T="";function $(ne){t(3,k=ne)}function C(ne){return O(ne),t(10,g=!0),$(Di),c==null?void 0:c.show()}function D(){return c==null?void 0:c.hide()}async function O(ne){Gt({}),typeof ne<"u"?(t(22,m=ne),t(2,h=structuredClone(ne))):(t(22,m=null),t(2,h=j.initCollection())),t(2,h.schema=h.schema||[],h),t(2,h.originalName=h.name||"",h),await Qt(),t(23,S=Ir(h))}function E(){h.id?d==null||d.show(m,h):L()}function L(){if(_)return;t(9,_=!0);const ne=F();let Fe;h.id?Fe=fe.collections.update(h.id,ne):Fe=fe.collections.create(ne),Fe.then(Se=>{Ma(),Zk(Se),t(10,g=!1),D(),It(h.id?"Successfully updated collection.":"Successfully created collection."),f("save",{isNew:!h.id,collection:Se})}).catch(Se=>{fe.error(Se)}).finally(()=>{t(9,_=!1)})}function F(){const ne=Object.assign({},h);ne.schema=ne.schema.slice(0);for(let Fe=ne.schema.length-1;Fe>=0;Fe--)ne.schema[Fe].toDelete&&ne.schema.splice(Fe,1);return ne}function P(){m!=null&&m.id&&an(`Do you really want to delete collection "${m.name}" and all its records?`,()=>fe.collections.delete(m.id).then(()=>{D(),It(`Successfully deleted collection "${m.name}".`),f("delete",m),Gk(m)}).catch(ne=>{fe.error(ne)}))}function N(ne){t(2,h.type=ne,h),ii("schema")}function R(){o?an("You have unsaved changes. Do you really want to discard them?",()=>{q()}):q()}async function q(){const ne=m?structuredClone(m):null;if(ne){if(ne.id="",ne.created="",ne.updated="",ne.name+="_duplicate",!j.isEmpty(ne.schema))for(const Fe of ne.schema)Fe.id="";if(!j.isEmpty(ne.indexes))for(let Fe=0;FeD(),J=()=>E(),G=()=>R(),B=()=>P(),U=ne=>{t(2,h.name=j.slugify(ne.target.value),h),ne.target.value=h.name},ae=ne=>N(ne),x=()=>{r&&E()},se=()=>$(Di),De=()=>$(bs),je=()=>$(Ml);function Ve(ne){h=ne,t(2,h),t(22,m)}function Ze(ne){h=ne,t(2,h),t(22,m)}function tt(ne){h=ne,t(2,h),t(22,m)}function Xe(ne){h=ne,t(2,h),t(22,m)}const Ct=()=>o&&g?(an("You have unsaved changes. Do you really want to close the panel?",()=>{t(10,g=!1),D()}),!1):!0;function Pt(ne){te[ne?"unshift":"push"](()=>{c=ne,t(7,c)})}function Te(ne){Ae.call(this,n,ne)}function Oe(ne){Ae.call(this,n,ne)}function ze(ne){te[ne?"unshift":"push"](()=>{d=ne,t(8,d)})}const _t=()=>L();return n.$$.update=()=>{var ne,Fe;n.$$.dirty[0]&4&&h.type==="view"&&(t(2,h.createRule=null,h),t(2,h.updateRule=null,h),t(2,h.deleteRule=null,h),t(2,h.indexes=[],h)),n.$$.dirty[0]&4194308&&h.name&&(m==null?void 0:m.name)!=h.name&&h.indexes.length>0&&t(2,h.indexes=(ne=h.indexes)==null?void 0:ne.map(Se=>j.replaceIndexTableName(Se,h.name)),h),n.$$.dirty[0]&4&&t(15,i=h.type===Sp),n.$$.dirty[0]&4&&t(14,l=h.type===$p),n.$$.dirty[0]&32&&(a.schema||(Fe=a.options)!=null&&Fe.query?t(11,T=j.getNestedVal(a,"schema.message")||"Has errors"):t(11,T="")),n.$$.dirty[0]&4&&t(13,s=!!h.id&&h.system),n.$$.dirty[0]&8388612&&t(4,o=S!=Ir(h)),n.$$.dirty[0]&20&&t(12,r=!h.id||o),n.$$.dirty[0]&12&&k===Ml&&h.type!=="auth"&&$(Di)},[$,D,h,k,o,a,u,c,d,_,g,T,r,s,l,i,E,L,P,N,R,C,m,S,W,J,G,B,U,ae,x,se,De,je,Ve,Ze,tt,Xe,Ct,Pt,Te,Oe,ze,_t]}class Xa extends ge{constructor(e){super(),_e(this,e,r6,s6,he,{changeTab:0,show:21,hide:1},null,[-1,-1])}get changeTab(){return this.$$.ctx[0]}get show(){return this.$$.ctx[21]}get hide(){return this.$$.ctx[1]}}function a6(n){let e;return{c(){e=b("i"),p(e,"class","ri-pushpin-line m-l-auto svelte-1u3ag8h")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function u6(n){let e;return{c(){e=b("i"),p(e,"class","ri-unpin-line svelte-1u3ag8h")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function f6(n){let e,t,i,l,s,o=n[0].name+"",r,a,u,f,c,d,m,h;function _(S,T){return S[1]?u6:a6}let g=_(n),k=g(n);return{c(){var S;e=b("a"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=M(),u=b("span"),k.c(),p(t,"class",i=Jn(j.getCollectionTypeIcon(n[0].type))+" svelte-1u3ag8h"),p(s,"class","txt m-r-auto"),p(u,"class","btn btn-xs btn-circle btn-hint btn-transparent pin-collection svelte-1u3ag8h"),p(u,"aria-label","Pin collection"),p(e,"href",c="/collections?collectionId="+n[0].id),p(e,"class","sidebar-list-item svelte-1u3ag8h"),p(e,"title",d=n[0].name),ee(e,"active",((S=n[2])==null?void 0:S.id)===n[0].id)},m(S,T){w(S,e,T),y(e,t),y(e,l),y(e,s),y(s,r),y(e,a),y(e,u),k.m(u,null),m||(h=[ve(f=Le.call(null,u,{position:"right",text:(n[1]?"Unpin":"Pin")+" collection"})),K(u,"click",fn(Ye(n[5]))),ve(ln.call(null,e))],m=!0)},p(S,[T]){var $;T&1&&i!==(i=Jn(j.getCollectionTypeIcon(S[0].type))+" svelte-1u3ag8h")&&p(t,"class",i),T&1&&o!==(o=S[0].name+"")&&le(r,o),g!==(g=_(S))&&(k.d(1),k=g(S),k&&(k.c(),k.m(u,null))),f&&$t(f.update)&&T&2&&f.update.call(null,{position:"right",text:(S[1]?"Unpin":"Pin")+" collection"}),T&1&&c!==(c="/collections?collectionId="+S[0].id)&&p(e,"href",c),T&1&&d!==(d=S[0].name)&&p(e,"title",d),T&5&&ee(e,"active",(($=S[2])==null?void 0:$.id)===S[0].id)},i:Q,o:Q,d(S){S&&v(e),k.d(),m=!1,we(h)}}}function c6(n,e,t){let i,l;We(n,li,u=>t(2,l=u));let{collection:s}=e,{pinnedIds:o}=e;function r(u){o.includes(u.id)?j.removeByValue(o,u.id):o.push(u.id),t(4,o)}const a=()=>r(s);return n.$$set=u=>{"collection"in u&&t(0,s=u.collection),"pinnedIds"in u&&t(4,o=u.pinnedIds)},n.$$.update=()=>{n.$$.dirty&17&&t(1,i=o.includes(s.id))},[s,i,l,r,o,a]}class Rb extends ge{constructor(e){super(),_e(this,e,c6,f6,he,{collection:0,pinnedIds:4})}}function Tp(n,e,t){const i=n.slice();return i[22]=e[t],i}function Cp(n,e,t){const i=n.slice();return i[22]=e[t],i}function Mp(n){let e,t,i=[],l=new Map,s,o,r=pe(n[6]);const a=u=>u[22].id;for(let u=0;ube(i,"pinnedIds",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u&64&&(f.collection=e[22]),!l&&u&2&&(l=!0,f.pinnedIds=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function Dp(n){let e,t=[],i=new Map,l,s,o=n[6].length&&Ep(),r=pe(n[5]);const a=u=>u[22].id;for(let u=0;ube(i,"pinnedIds",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u&32&&(f.collection=e[22]),!l&&u&2&&(l=!0,f.pinnedIds=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function Ip(n){let e;return{c(){e=b("p"),e.textContent="No collections found.",p(e,"class","txt-hint m-t-10 m-b-10 txt-center")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function Lp(n){let e,t,i,l;return{c(){e=b("footer"),t=b("button"),t.innerHTML=' New collection',p(t,"type","button"),p(t,"class","btn btn-block btn-outline"),p(e,"class","sidebar-footer")},m(s,o){w(s,e,o),y(e,t),i||(l=K(t,"click",n[16]),i=!0)},p:Q,d(s){s&&v(e),i=!1,l()}}}function d6(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S=n[6].length&&Mp(n),T=n[5].length&&Dp(n),$=n[3].length&&!n[2].length&&Ip(),C=!n[9]&&Lp(n);return{c(){e=b("header"),t=b("div"),i=b("div"),l=b("button"),l.innerHTML='',s=M(),o=b("input"),r=M(),a=b("hr"),u=M(),f=b("div"),S&&S.c(),c=M(),T&&T.c(),d=M(),$&&$.c(),m=M(),C&&C.c(),h=ke(),p(l,"type","button"),p(l,"class","btn btn-xs btn-transparent btn-circle btn-clear"),ee(l,"hidden",!n[7]),p(i,"class","form-field-addon"),p(o,"type","text"),p(o,"placeholder","Search collections..."),p(o,"name","collections-search"),p(t,"class","form-field search"),ee(t,"active",n[7]),p(e,"class","sidebar-header"),p(a,"class","m-t-5 m-b-xs"),p(f,"class","sidebar-content"),ee(f,"fade",n[8]),ee(f,"sidebar-content-compact",n[2].length>20)},m(D,O){w(D,e,O),y(e,t),y(t,i),y(i,l),y(t,s),y(t,o),ue(o,n[0]),w(D,r,O),w(D,a,O),w(D,u,O),w(D,f,O),S&&S.m(f,null),y(f,c),T&&T.m(f,null),y(f,d),$&&$.m(f,null),w(D,m,O),C&&C.m(D,O),w(D,h,O),_=!0,g||(k=[K(l,"click",n[12]),K(o,"input",n[13])],g=!0)},p(D,O){(!_||O&128)&&ee(l,"hidden",!D[7]),O&1&&o.value!==D[0]&&ue(o,D[0]),(!_||O&128)&&ee(t,"active",D[7]),D[6].length?S?(S.p(D,O),O&64&&A(S,1)):(S=Mp(D),S.c(),A(S,1),S.m(f,c)):S&&(oe(),I(S,1,1,()=>{S=null}),re()),D[5].length?T?(T.p(D,O),O&32&&A(T,1)):(T=Dp(D),T.c(),A(T,1),T.m(f,d)):T&&(oe(),I(T,1,1,()=>{T=null}),re()),D[3].length&&!D[2].length?$||($=Ip(),$.c(),$.m(f,null)):$&&($.d(1),$=null),(!_||O&256)&&ee(f,"fade",D[8]),(!_||O&4)&&ee(f,"sidebar-content-compact",D[2].length>20),D[9]?C&&(C.d(1),C=null):C?C.p(D,O):(C=Lp(D),C.c(),C.m(h.parentNode,h))},i(D){_||(A(S),A(T),_=!0)},o(D){I(S),I(T),_=!1},d(D){D&&(v(e),v(r),v(a),v(u),v(f),v(m),v(h)),S&&S.d(),T&&T.d(),$&&$.d(),C&&C.d(D),g=!1,we(k)}}}function p6(n){let e,t,i,l;e=new Ab({props:{class:"collection-sidebar",$$slots:{default:[d6]},$$scope:{ctx:n}}});let s={};return i=new Xa({props:s}),n[17](i),i.$on("save",n[18]),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(o,r){H(e,o,r),w(o,t,r),H(i,o,r),l=!0},p(o,[r]){const a={};r&134218751&&(a.$$scope={dirty:r,ctx:o}),e.$set(a);const u={};i.$set(u)},i(o){l||(A(e.$$.fragment,o),A(i.$$.fragment,o),l=!0)},o(o){I(e.$$.fragment,o),I(i.$$.fragment,o),l=!1},d(o){o&&v(t),z(e,o),n[17](null),z(i,o)}}}const Pp="@pinnedCollections";function m6(){setTimeout(()=>{const n=document.querySelector(".collection-sidebar .sidebar-list-item.active");n&&(n==null||n.scrollIntoView({block:"nearest"}))},0)}function h6(n,e,t){let i,l,s,o,r,a,u,f,c;We(n,zn,L=>t(11,a=L)),We(n,li,L=>t(19,u=L)),We(n,To,L=>t(8,f=L)),We(n,Sl,L=>t(9,c=L));let d,m="",h=[];g();function _(L){tn(li,u=L,u)}function g(){t(1,h=[]);try{const L=localStorage.getItem(Pp);L&&t(1,h=JSON.parse(L)||[])}catch{}}function k(){t(1,h=h.filter(L=>!!a.find(F=>F.id==L)))}const S=()=>t(0,m="");function T(){m=this.value,t(0,m)}function $(L){h=L,t(1,h)}function C(L){h=L,t(1,h)}const D=()=>d==null?void 0:d.show();function O(L){te[L?"unshift":"push"](()=>{d=L,t(4,d)})}const E=L=>{var F;(F=L.detail)!=null&&F.isNew&&L.detail.collection&&_(L.detail.collection)};return n.$$.update=()=>{n.$$.dirty&2048&&a&&(k(),m6()),n.$$.dirty&1&&t(3,i=m.replace(/\s+/g,"").toLowerCase()),n.$$.dirty&1&&t(7,l=m!==""),n.$$.dirty&2&&h&&localStorage.setItem(Pp,JSON.stringify(h)),n.$$.dirty&2057&&t(2,s=a.filter(L=>L.id==m||L.name.replace(/\s+/g,"").toLowerCase().includes(i))),n.$$.dirty&6&&t(6,o=s.filter(L=>h.includes(L.id))),n.$$.dirty&6&&t(5,r=s.filter(L=>!h.includes(L.id)))},[m,h,s,i,d,r,o,l,f,c,_,a,S,T,$,C,D,O,E]}class _6 extends ge{constructor(e){super(),_e(this,e,h6,p6,he,{})}}function Np(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i}function Fp(n){n[18]=n[19].default}function Rp(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i[21]=t,i}function qp(n){let e;return{c(){e=b("hr"),p(e,"class","m-t-sm m-b-sm")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function jp(n,e){let t,i=e[21]===Object.keys(e[6]).length,l,s,o=e[15].label+"",r,a,u,f,c=i&&qp();function d(){return e[9](e[14])}return{key:n,first:null,c(){t=ke(),c&&c.c(),l=M(),s=b("button"),r=Y(o),a=M(),p(s,"type","button"),p(s,"class","sidebar-item"),ee(s,"active",e[5]===e[14]),this.first=t},m(m,h){w(m,t,h),c&&c.m(m,h),w(m,l,h),w(m,s,h),y(s,r),y(s,a),u||(f=K(s,"click",d),u=!0)},p(m,h){e=m,h&8&&(i=e[21]===Object.keys(e[6]).length),i?c||(c=qp(),c.c(),c.m(l.parentNode,l)):c&&(c.d(1),c=null),h&8&&o!==(o=e[15].label+"")&&le(r,o),h&40&&ee(s,"active",e[5]===e[14])},d(m){m&&(v(t),v(l),v(s)),c&&c.d(m),u=!1,f()}}}function Hp(n){let e,t,i,l={ctx:n,current:null,token:null,hasCatch:!1,pending:y6,then:b6,catch:g6,value:19,blocks:[,,,]};return lu(t=n[15].component,l),{c(){e=ke(),l.block.c()},m(s,o){w(s,e,o),l.block.m(s,l.anchor=o),l.mount=()=>e.parentNode,l.anchor=e,i=!0},p(s,o){n=s,l.ctx=n,o&8&&t!==(t=n[15].component)&&lu(t,l)||b0(l,n,o)},i(s){i||(A(l.block),i=!0)},o(s){for(let o=0;o<3;o+=1){const r=l.blocks[o];I(r)}i=!1},d(s){s&&v(e),l.block.d(s),l.token=null,l=null}}}function g6(n){return{c:Q,m:Q,p:Q,i:Q,o:Q,d:Q}}function b6(n){Fp(n);let e,t,i;return e=new n[18]({props:{collection:n[2]}}),{c(){V(e.$$.fragment),t=M()},m(l,s){H(e,l,s),w(l,t,s),i=!0},p(l,s){Fp(l);const o={};s&4&&(o.collection=l[2]),e.$set(o)},i(l){i||(A(e.$$.fragment,l),i=!0)},o(l){I(e.$$.fragment,l),i=!1},d(l){l&&v(t),z(e,l)}}}function y6(n){return{c:Q,m:Q,p:Q,i:Q,o:Q,d:Q}}function zp(n,e){let t,i,l,s=e[5]===e[14]&&Hp(e);return{key:n,first:null,c(){t=ke(),s&&s.c(),i=ke(),this.first=t},m(o,r){w(o,t,r),s&&s.m(o,r),w(o,i,r),l=!0},p(o,r){e=o,e[5]===e[14]?s?(s.p(e,r),r&40&&A(s,1)):(s=Hp(e),s.c(),A(s,1),s.m(i.parentNode,i)):s&&(oe(),I(s,1,1,()=>{s=null}),re())},i(o){l||(A(s),l=!0)},o(o){I(s),l=!1},d(o){o&&(v(t),v(i)),s&&s.d(o)}}}function k6(n){let e,t,i,l=[],s=new Map,o,r,a=[],u=new Map,f,c=pe(Object.entries(n[3]));const d=_=>_[14];for(let _=0;__[14];for(let _=0;_Close',p(e,"type","button"),p(e,"class","btn btn-transparent")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[8]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function w6(n){let e,t,i={class:"docs-panel",$$slots:{footer:[v6],default:[k6]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&4194348&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[10](null),z(e,l)}}}function S6(n,e,t){const i={list:{label:"List/Search",component:rt(()=>import("./ListApiDocs-9cc6bb77.js"),["./ListApiDocs-9cc6bb77.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js","./ListApiDocs-68f52edd.css"],import.meta.url)},view:{label:"View",component:rt(()=>import("./ViewApiDocs-8aada62c.js"),["./ViewApiDocs-8aada62c.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},create:{label:"Create",component:rt(()=>import("./CreateApiDocs-8252105a.js"),["./CreateApiDocs-8252105a.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},update:{label:"Update",component:rt(()=>import("./UpdateApiDocs-587bfa04.js"),["./UpdateApiDocs-587bfa04.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},delete:{label:"Delete",component:rt(()=>import("./DeleteApiDocs-db45baf1.js"),["./DeleteApiDocs-db45baf1.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},realtime:{label:"Realtime",component:rt(()=>import("./RealtimeApiDocs-7183eb7d.js"),["./RealtimeApiDocs-7183eb7d.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)}},l={"auth-with-password":{label:"Auth with password",component:rt(()=>import("./AuthWithPasswordDocs-55d15963.js"),["./AuthWithPasswordDocs-55d15963.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},"auth-with-oauth2":{label:"Auth with OAuth2",component:rt(()=>import("./AuthWithOAuth2Docs-bb1f28ac.js"),["./AuthWithOAuth2Docs-bb1f28ac.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},refresh:{label:"Auth refresh",component:rt(()=>import("./AuthRefreshDocs-1637fa9f.js"),["./AuthRefreshDocs-1637fa9f.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},"request-verification":{label:"Request verification",component:rt(()=>import("./RequestVerificationDocs-b8057f19.js"),["./RequestVerificationDocs-b8057f19.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-verification":{label:"Confirm verification",component:rt(()=>import("./ConfirmVerificationDocs-cdbe814c.js"),["./ConfirmVerificationDocs-cdbe814c.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"request-password-reset":{label:"Request password reset",component:rt(()=>import("./RequestPasswordResetDocs-ffe8fb7c.js"),["./RequestPasswordResetDocs-ffe8fb7c.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-password-reset":{label:"Confirm password reset",component:rt(()=>import("./ConfirmPasswordResetDocs-41e48ec4.js"),["./ConfirmPasswordResetDocs-41e48ec4.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"request-email-change":{label:"Request email change",component:rt(()=>import("./RequestEmailChangeDocs-5b86baf4.js"),["./RequestEmailChangeDocs-5b86baf4.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"confirm-email-change":{label:"Confirm email change",component:rt(()=>import("./ConfirmEmailChangeDocs-b207e4ce.js"),["./ConfirmEmailChangeDocs-b207e4ce.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)},"list-auth-methods":{label:"List auth methods",component:rt(()=>import("./AuthMethodsDocs-30fd4369.js"),["./AuthMethodsDocs-30fd4369.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},"list-linked-accounts":{label:"List OAuth2 accounts",component:rt(()=>import("./ListExternalAuthsDocs-3cadeb8f.js"),["./ListExternalAuthsDocs-3cadeb8f.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css","./FieldsQueryParam-c4b1abdd.js"],import.meta.url)},"unlink-account":{label:"Unlink OAuth2 account",component:rt(()=>import("./UnlinkExternalAuthDocs-b1470344.js"),["./UnlinkExternalAuthDocs-b1470344.js","./SdkTabs-27205987.js","./SdkTabs-9b0b7a06.css"],import.meta.url)}};let s,o={},r,a=[];a.length&&(r=Object.keys(a)[0]);function u(k){return t(2,o=k),c(Object.keys(a)[0]),s==null?void 0:s.show()}function f(){return s==null?void 0:s.hide()}function c(k){t(5,r=k)}const d=()=>f(),m=k=>c(k);function h(k){te[k?"unshift":"push"](()=>{s=k,t(4,s)})}function _(k){Ae.call(this,n,k)}function g(k){Ae.call(this,n,k)}return n.$$.update=()=>{n.$$.dirty&12&&(o.type==="auth"?(t(3,a=Object.assign({},i,l)),!o.options.allowUsernameAuth&&!o.options.allowEmailAuth&&delete a["auth-with-password"],o.options.allowOAuth2Auth||delete a["auth-with-oauth2"]):o.type==="view"?(t(3,a=Object.assign({},i)),delete a.create,delete a.update,delete a.delete,delete a.realtime):t(3,a=Object.assign({},i)))},[f,c,o,a,s,r,i,u,d,m,h,_,g]}class $6 extends ge{constructor(e){super(),_e(this,e,S6,w6,he,{show:7,hide:0,changeTab:1})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}get changeTab(){return this.$$.ctx[1]}}function T6(n){let e,t,i,l;return{c(){e=b("i"),p(e,"class","ri-calendar-event-line txt-disabled")},m(s,o){w(s,e,o),i||(l=ve(t=Le.call(null,e,{text:n[0].join(` `),position:"left"})),i=!0)},p(s,[o]){t&&$t(t.update)&&o&1&&t.update.call(null,{text:s[0].join(` -`),position:"left"})},i:Q,o:Q,d(s){s&&v(e),i=!1,l()}}}const Vp="yyyy-MM-dd HH:mm:ss.SSS";function C6(n,e,t){let{model:i}=e,l=[];function s(){t(0,l=[]),i.created&&l.push("Created: "+j.formatToLocalDate(i.created,Vp)+" Local"),i.updated&&l.push("Updated: "+j.formatToLocalDate(i.updated,Vp)+" Local")}return n.$$set=o=>{"model"in o&&t(1,i=o.model)},n.$$.update=()=>{n.$$.dirty&2&&i&&s()},[l,i]}class qb extends ge{constructor(e){super(),_e(this,e,C6,T6,he,{model:1})}}function M6(n){let e,t,i,l,s,o,r,a,u,f;return s=new sl({props:{value:n[1]}}),{c(){e=b("div"),t=b("span"),i=Y(n[1]),l=M(),V(s.$$.fragment),o=M(),r=b("i"),p(t,"class","secret svelte-1md8247"),p(r,"class","ri-refresh-line txt-sm link-hint"),p(r,"aria-label","Refresh"),p(e,"class","flex flex-gap-5 p-5")},m(c,d){w(c,e,d),y(e,t),y(t,i),n[6](t),y(e,l),H(s,e,null),y(e,o),y(e,r),a=!0,u||(f=[ve(Le.call(null,r,"Refresh")),K(r,"click",n[4])],u=!0)},p(c,d){(!a||d&2)&&le(i,c[1]);const m={};d&2&&(m.value=c[1]),s.$set(m)},i(c){a||(A(s.$$.fragment,c),a=!0)},o(c){I(s.$$.fragment,c),a=!1},d(c){c&&v(e),n[6](null),z(s),u=!1,we(f)}}}function O6(n){let e,t,i,l,s,o,r,a,u,f;function c(m){n[7](m)}let d={class:"dropdown dropdown-upside dropdown-center dropdown-nowrap",$$slots:{default:[M6]},$$scope:{ctx:n}};return n[3]!==void 0&&(d.active=n[3]),l=new En({props:d}),te.push(()=>be(l,"active",c)),l.$on("show",n[4]),{c(){e=b("button"),t=b("i"),i=M(),V(l.$$.fragment),p(t,"class","ri-sparkling-line"),p(e,"tabindex","-1"),p(e,"type","button"),p(e,"aria-label","Generate"),p(e,"class",o="btn btn-circle "+n[0]+" svelte-1md8247")},m(m,h){w(m,e,h),y(e,t),y(e,i),H(l,e,null),a=!0,u||(f=ve(r=Le.call(null,e,n[3]?"":"Generate")),u=!0)},p(m,[h]){const _={};h&518&&(_.$$scope={dirty:h,ctx:m}),!s&&h&8&&(s=!0,_.active=m[3],ye(()=>s=!1)),l.$set(_),(!a||h&1&&o!==(o="btn btn-circle "+m[0]+" svelte-1md8247"))&&p(e,"class",o),r&&$t(r.update)&&h&8&&r.update.call(null,m[3]?"":"Generate")},i(m){a||(A(l.$$.fragment,m),a=!0)},o(m){I(l.$$.fragment,m),a=!1},d(m){m&&v(e),z(l),u=!1,f()}}}function D6(n,e,t){const i=ot();let{class:l="btn-sm btn-hint btn-transparent"}=e,{length:s=32}=e,o="",r,a=!1;async function u(){if(t(1,o=j.randomSecret(s)),i("generate",o),await Qt(),r){let d=document.createRange();d.selectNode(r),window.getSelection().removeAllRanges(),window.getSelection().addRange(d)}}function f(d){te[d?"unshift":"push"](()=>{r=d,t(2,r)})}function c(d){a=d,t(3,a)}return n.$$set=d=>{"class"in d&&t(0,l=d.class),"length"in d&&t(5,s=d.length)},[l,o,r,a,u,s,f,c]}class jb extends ge{constructor(e){super(),_e(this,e,D6,O6,he,{class:0,length:5})}}function E6(n){let e,t,i,l,s,o,r,a,u,f,c,d;return{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Username",o=M(),r=b("input"),p(t,"class",j.getFieldTypeIcon("user")),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","text"),p(r,"requried",a=!n[2]),p(r,"placeholder",u=n[2]?"Leave empty to auto generate...":n[4]),p(r,"id",f=n[13])},m(m,h){w(m,e,h),y(e,t),y(e,i),y(e,l),w(m,o,h),w(m,r,h),ue(r,n[0].username),c||(d=K(r,"input",n[5]),c=!0)},p(m,h){h&8192&&s!==(s=m[13])&&p(e,"for",s),h&4&&a!==(a=!m[2])&&p(r,"requried",a),h&4&&u!==(u=m[2]?"Leave empty to auto generate...":m[4])&&p(r,"placeholder",u),h&8192&&f!==(f=m[13])&&p(r,"id",f),h&1&&r.value!==m[0].username&&ue(r,m[0].username)},d(m){m&&(v(e),v(o),v(r)),c=!1,d()}}}function A6(n){let e,t,i,l,s,o,r,a,u,f,c=n[0].emailVisibility?"On":"Off",d,m,h,_,g,k,S,T;return{c(){var $;e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Email",o=M(),r=b("div"),a=b("button"),u=b("span"),f=Y("Public: "),d=Y(c),h=M(),_=b("input"),p(t,"class",j.getFieldTypeIcon("email")),p(l,"class","txt"),p(e,"for",s=n[13]),p(u,"class","txt"),p(a,"type","button"),p(a,"class",m="btn btn-sm btn-transparent "+(n[0].emailVisibility?"btn-success":"btn-hint")),p(r,"class","form-field-addon email-visibility-addon svelte-1751a4d"),p(_,"type","email"),_.autofocus=n[2],p(_,"autocomplete","off"),p(_,"id",g=n[13]),_.required=k=($=n[1].options)==null?void 0:$.requireEmail,p(_,"class","svelte-1751a4d")},m($,C){w($,e,C),y(e,t),y(e,i),y(e,l),w($,o,C),w($,r,C),y(r,a),y(a,u),y(u,f),y(u,d),w($,h,C),w($,_,C),ue(_,n[0].email),n[2]&&_.focus(),S||(T=[ve(Le.call(null,a,{text:"Make email public or private",position:"top-right"})),K(a,"click",Ye(n[6])),K(_,"input",n[7])],S=!0)},p($,C){var D;C&8192&&s!==(s=$[13])&&p(e,"for",s),C&1&&c!==(c=$[0].emailVisibility?"On":"Off")&&le(d,c),C&1&&m!==(m="btn btn-sm btn-transparent "+($[0].emailVisibility?"btn-success":"btn-hint"))&&p(a,"class",m),C&4&&(_.autofocus=$[2]),C&8192&&g!==(g=$[13])&&p(_,"id",g),C&2&&k!==(k=(D=$[1].options)==null?void 0:D.requireEmail)&&(_.required=k),C&1&&_.value!==$[0].email&&ue(_,$[0].email)},d($){$&&(v(e),v(o),v(r),v(h),v(_)),S=!1,we(T)}}}function Bp(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[I6,({uniqueId:i})=>({13:i}),({uniqueId:i})=>i?8192:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&24584&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function I6(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[3],w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[8]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&8&&(e.checked=u[3]),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Up(n){let e,t,i,l,s,o,r,a,u;return l=new me({props:{class:"form-field required",name:"password",$$slots:{default:[L6,({uniqueId:f})=>({13:f}),({uniqueId:f})=>f?8192:0]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[P6,({uniqueId:f})=>({13:f}),({uniqueId:f})=>f?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),i=b("div"),V(l.$$.fragment),s=M(),o=b("div"),V(r.$$.fragment),p(i,"class","col-sm-6"),p(o,"class","col-sm-6"),p(t,"class","grid"),ee(t,"p-t-xs",n[3]),p(e,"class","block")},m(f,c){w(f,e,c),y(e,t),y(t,i),H(l,i,null),y(t,s),y(t,o),H(r,o,null),u=!0},p(f,c){const d={};c&24577&&(d.$$scope={dirty:c,ctx:f}),l.$set(d);const m={};c&24577&&(m.$$scope={dirty:c,ctx:f}),r.$set(m),(!u||c&8)&&ee(t,"p-t-xs",f[3])},i(f){u||(A(l.$$.fragment,f),A(r.$$.fragment,f),f&&Ke(()=>{u&&(a||(a=Pe(e,et,{duration:150},!0)),a.run(1))}),u=!0)},o(f){I(l.$$.fragment,f),I(r.$$.fragment,f),f&&(a||(a=Pe(e,et,{duration:150},!1)),a.run(0)),u=!1},d(f){f&&v(e),z(l),z(r),f&&a&&a.end()}}}function L6(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h;return c=new jb({props:{length:15}}),{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Password",o=M(),r=b("input"),u=M(),f=b("div"),V(c.$$.fragment),p(t,"class","ri-lock-line"),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[13]),r.required=!0,p(f,"class","form-field-addon")},m(_,g){w(_,e,g),y(e,t),y(e,i),y(e,l),w(_,o,g),w(_,r,g),ue(r,n[0].password),w(_,u,g),w(_,f,g),H(c,f,null),d=!0,m||(h=K(r,"input",n[9]),m=!0)},p(_,g){(!d||g&8192&&s!==(s=_[13]))&&p(e,"for",s),(!d||g&8192&&a!==(a=_[13]))&&p(r,"id",a),g&1&&r.value!==_[0].password&&ue(r,_[0].password)},i(_){d||(A(c.$$.fragment,_),d=!0)},o(_){I(c.$$.fragment,_),d=!1},d(_){_&&(v(e),v(o),v(r),v(u),v(f)),z(c),m=!1,h()}}}function P6(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Password confirm",o=M(),r=b("input"),p(t,"class","ri-lock-line"),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[13]),r.required=!0},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,o,d),w(c,r,d),ue(r,n[0].passwordConfirm),u||(f=K(r,"input",n[10]),u=!0)},p(c,d){d&8192&&s!==(s=c[13])&&p(e,"for",s),d&8192&&a!==(a=c[13])&&p(r,"id",a),d&1&&r.value!==c[0].passwordConfirm&&ue(r,c[0].passwordConfirm)},d(c){c&&(v(e),v(o),v(r)),u=!1,f()}}}function N6(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Verified"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].verified,w(u,i,f),w(u,l,f),y(l,s),r||(a=[K(e,"change",n[11]),K(e,"change",Ye(n[12]))],r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].verified),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,we(a)}}}function F6(n){var g;let e,t,i,l,s,o,r,a,u,f,c,d,m;i=new me({props:{class:"form-field "+(n[2]?"":"required"),name:"username",$$slots:{default:[E6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field "+((g=n[1].options)!=null&&g.requireEmail?"required":""),name:"email",$$slots:{default:[A6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}});let h=!n[2]&&Bp(n),_=(n[2]||n[3])&&Up(n);return d=new me({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[N6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),h&&h.c(),u=M(),_&&_.c(),f=M(),c=b("div"),V(d.$$.fragment),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(a,"class","col-lg-12"),p(c,"class","col-lg-12"),p(e,"class","grid m-b-base")},m(k,S){w(k,e,S),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),h&&h.m(a,null),y(a,u),_&&_.m(a,null),y(e,f),y(e,c),H(d,c,null),m=!0},p(k,[S]){var D;const T={};S&4&&(T.class="form-field "+(k[2]?"":"required")),S&24581&&(T.$$scope={dirty:S,ctx:k}),i.$set(T);const $={};S&2&&($.class="form-field "+((D=k[1].options)!=null&&D.requireEmail?"required":"")),S&24583&&($.$$scope={dirty:S,ctx:k}),o.$set($),k[2]?h&&(oe(),I(h,1,1,()=>{h=null}),re()):h?(h.p(k,S),S&4&&A(h,1)):(h=Bp(k),h.c(),A(h,1),h.m(a,u)),k[2]||k[3]?_?(_.p(k,S),S&12&&A(_,1)):(_=Up(k),_.c(),A(_,1),_.m(a,null)):_&&(oe(),I(_,1,1,()=>{_=null}),re());const C={};S&24581&&(C.$$scope={dirty:S,ctx:k}),d.$set(C)},i(k){m||(A(i.$$.fragment,k),A(o.$$.fragment,k),A(h),A(_),A(d.$$.fragment,k),m=!0)},o(k){I(i.$$.fragment,k),I(o.$$.fragment,k),I(h),I(_),I(d.$$.fragment,k),m=!1},d(k){k&&v(e),z(i),z(o),h&&h.d(),_&&_.d(),z(d)}}}function R6(n,e,t){let{record:i}=e,{collection:l}=e,{isNew:s=!(i!=null&&i.id)}=e,o=i.username||null,r=!1;function a(){i.username=this.value,t(0,i),t(3,r)}const u=()=>t(0,i.emailVisibility=!i.emailVisibility,i);function f(){i.email=this.value,t(0,i),t(3,r)}function c(){r=this.checked,t(3,r)}function d(){i.password=this.value,t(0,i),t(3,r)}function m(){i.passwordConfirm=this.value,t(0,i),t(3,r)}function h(){i.verified=this.checked,t(0,i),t(3,r)}const _=g=>{s||an("Do you really want to manually change the verified account state?",()=>{},()=>{t(0,i.verified=!g.target.checked,i)})};return n.$$set=g=>{"record"in g&&t(0,i=g.record),"collection"in g&&t(1,l=g.collection),"isNew"in g&&t(2,s=g.isNew)},n.$$.update=()=>{n.$$.dirty&1&&!i.username&&i.username!==null&&t(0,i.username=null,i),n.$$.dirty&8&&(r||(t(0,i.password=null,i),t(0,i.passwordConfirm=null,i),ii("password"),ii("passwordConfirm")))},[i,l,s,r,o,a,u,f,c,d,m,h,_]}class q6 extends ge{constructor(e){super(),_e(this,e,R6,F6,he,{record:0,collection:1,isNew:2})}}function j6(n){let e,t,i,l=[n[3]],s={};for(let o=0;o{r&&(t(1,r.style.height="",r),t(1,r.style.height=Math.min(r.scrollHeight,o)+"px",r))},0)}function f(m){if((m==null?void 0:m.code)==="Enter"&&!(m!=null&&m.shiftKey)&&!(m!=null&&m.isComposing)){m.preventDefault();const h=r.closest("form");h!=null&&h.requestSubmit&&h.requestSubmit()}}Vt(()=>(u(),()=>clearTimeout(a)));function c(m){te[m?"unshift":"push"](()=>{r=m,t(1,r)})}function d(){s=this.value,t(0,s)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(3,l=Ge(e,i)),"value"in m&&t(0,s=m.value),"maxHeight"in m&&t(4,o=m.maxHeight)},n.$$.update=()=>{n.$$.dirty&1&&typeof s!==void 0&&u()},[s,r,f,l,o,c,d]}class z6 extends ge{constructor(e){super(),_e(this,e,H6,j6,he,{value:0,maxHeight:4})}}function V6(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d;function m(_){n[2](_)}let h={id:n[3],required:n[1].required};return n[0]!==void 0&&(h.value=n[0]),f=new z6({props:h}),te.push(()=>be(f,"value",m)),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),V(f.$$.fragment),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3])},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),H(f,_,g),d=!0},p(_,g){(!d||g&2&&i!==(i=j.getFieldTypeIcon(_[1].type)))&&p(t,"class",i),(!d||g&2)&&o!==(o=_[1].name+"")&&le(r,o),(!d||g&8&&a!==(a=_[3]))&&p(e,"for",a);const k={};g&8&&(k.id=_[3]),g&2&&(k.required=_[1].required),!c&&g&1&&(c=!0,k.value=_[0],ye(()=>c=!1)),f.$set(k)},i(_){d||(A(f.$$.fragment,_),d=!0)},o(_){I(f.$$.fragment,_),d=!1},d(_){_&&(v(e),v(u)),z(f,_)}}}function B6(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[V6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function U6(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(o){l=o,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class W6 extends ge{constructor(e){super(),_e(this,e,U6,B6,he,{field:1,value:0})}}function Y6(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g;return{c(){var k,S;e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","number"),p(f,"id",c=n[3]),f.required=d=n[1].required,p(f,"min",m=(k=n[1].options)==null?void 0:k.min),p(f,"max",h=(S=n[1].options)==null?void 0:S.max),p(f,"step","any")},m(k,S){w(k,e,S),y(e,t),y(e,l),y(e,s),y(s,r),w(k,u,S),w(k,f,S),ue(f,n[0]),_||(g=K(f,"input",n[2]),_=!0)},p(k,S){var T,$;S&2&&i!==(i=j.getFieldTypeIcon(k[1].type))&&p(t,"class",i),S&2&&o!==(o=k[1].name+"")&&le(r,o),S&8&&a!==(a=k[3])&&p(e,"for",a),S&8&&c!==(c=k[3])&&p(f,"id",c),S&2&&d!==(d=k[1].required)&&(f.required=d),S&2&&m!==(m=(T=k[1].options)==null?void 0:T.min)&&p(f,"min",m),S&2&&h!==(h=($=k[1].options)==null?void 0:$.max)&&p(f,"max",h),S&1&&st(f.value)!==k[0]&&ue(f,k[0])},d(k){k&&(v(e),v(u),v(f)),_=!1,g()}}}function K6(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[Y6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function J6(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=st(this.value),t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class Z6 extends ge{constructor(e){super(),_e(this,e,J6,K6,he,{field:1,value:0})}}function G6(n){let e,t,i,l,s=n[1].name+"",o,r,a,u;return{c(){e=b("input"),i=M(),l=b("label"),o=Y(s),p(e,"type","checkbox"),p(e,"id",t=n[3]),p(l,"for",r=n[3])},m(f,c){w(f,e,c),e.checked=n[0],w(f,i,c),w(f,l,c),y(l,o),a||(u=K(e,"change",n[2]),a=!0)},p(f,c){c&8&&t!==(t=f[3])&&p(e,"id",t),c&1&&(e.checked=f[0]),c&2&&s!==(s=f[1].name+"")&&le(o,s),c&8&&r!==(r=f[3])&&p(l,"for",r)},d(f){f&&(v(e),v(i),v(l)),a=!1,u()}}}function X6(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[G6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field form-field-toggle "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Q6(n,e,t){let{field:i}=e,{value:l=!1}=e;function s(){l=this.checked,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class x6 extends ge{constructor(e){super(),_e(this,e,Q6,X6,he,{field:1,value:0})}}function eM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","email"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),w(_,f,g),ue(f,n[0]),m||(h=K(f,"input",n[2]),m=!0)},p(_,g){g&2&&i!==(i=j.getFieldTypeIcon(_[1].type))&&p(t,"class",i),g&2&&o!==(o=_[1].name+"")&&le(r,o),g&8&&a!==(a=_[3])&&p(e,"for",a),g&8&&c!==(c=_[3])&&p(f,"id",c),g&2&&d!==(d=_[1].required)&&(f.required=d),g&1&&f.value!==_[0]&&ue(f,_[0])},d(_){_&&(v(e),v(u),v(f)),m=!1,h()}}}function tM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[eM,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function nM(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=this.value,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class iM extends ge{constructor(e){super(),_e(this,e,nM,tM,he,{field:1,value:0})}}function lM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","url"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),w(_,f,g),ue(f,n[0]),m||(h=K(f,"input",n[2]),m=!0)},p(_,g){g&2&&i!==(i=j.getFieldTypeIcon(_[1].type))&&p(t,"class",i),g&2&&o!==(o=_[1].name+"")&&le(r,o),g&8&&a!==(a=_[3])&&p(e,"for",a),g&8&&c!==(c=_[3])&&p(f,"id",c),g&2&&d!==(d=_[1].required)&&(f.required=d),g&1&&f.value!==_[0]&&ue(f,_[0])},d(_){_&&(v(e),v(u),v(f)),m=!1,h()}}}function sM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[lM,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function oM(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=this.value,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class rM extends ge{constructor(e){super(),_e(this,e,oM,sM,he,{field:1,value:0})}}function Wp(n){let e,t,i,l;return{c(){e=b("div"),t=b("button"),t.innerHTML='',p(t,"type","button"),p(t,"class","link-hint clear-btn svelte-11df51y"),p(e,"class","form-field-addon")},m(s,o){w(s,e,o),y(e,t),i||(l=[ve(Le.call(null,t,"Clear")),K(t,"click",n[5])],i=!0)},p:Q,d(s){s&&v(e),i=!1,we(l)}}}function aM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g=n[0]&&!n[1].required&&Wp(n);function k($){n[6]($)}function S($){n[7]($)}let T={id:n[8],options:j.defaultFlatpickrOptions()};return n[2]!==void 0&&(T.value=n[2]),n[0]!==void 0&&(T.formattedValue=n[0]),d=new Ga({props:T}),te.push(()=>be(d,"value",k)),te.push(()=>be(d,"formattedValue",S)),d.$on("close",n[3]),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=Y(" (UTC)"),f=M(),g&&g.c(),c=M(),V(d.$$.fragment),p(t,"class",i=Jn(j.getFieldTypeIcon(n[1].type))+" svelte-11df51y"),p(s,"class","txt"),p(e,"for",u=n[8])},m($,C){w($,e,C),y(e,t),y(e,l),y(e,s),y(s,r),y(s,a),w($,f,C),g&&g.m($,C),w($,c,C),H(d,$,C),_=!0},p($,C){(!_||C&2&&i!==(i=Jn(j.getFieldTypeIcon($[1].type))+" svelte-11df51y"))&&p(t,"class",i),(!_||C&2)&&o!==(o=$[1].name+"")&&le(r,o),(!_||C&256&&u!==(u=$[8]))&&p(e,"for",u),$[0]&&!$[1].required?g?g.p($,C):(g=Wp($),g.c(),g.m(c.parentNode,c)):g&&(g.d(1),g=null);const D={};C&256&&(D.id=$[8]),!m&&C&4&&(m=!0,D.value=$[2],ye(()=>m=!1)),!h&&C&1&&(h=!0,D.formattedValue=$[0],ye(()=>h=!1)),d.$set(D)},i($){_||(A(d.$$.fragment,$),_=!0)},o($){I(d.$$.fragment,$),_=!1},d($){$&&(v(e),v(f),v(c)),g&&g.d($),z(d,$)}}}function uM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[aM,({uniqueId:i})=>({8:i}),({uniqueId:i})=>i?256:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&775&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function fM(n,e,t){let{field:i}=e,{value:l=void 0}=e,s=l;function o(c){c.detail&&c.detail.length==3&&t(0,l=c.detail[1])}function r(){t(0,l="")}const a=()=>r();function u(c){s=c,t(2,s),t(0,l)}function f(c){l=c,t(0,l)}return n.$$set=c=>{"field"in c&&t(1,i=c.field),"value"in c&&t(0,l=c.value)},n.$$.update=()=>{n.$$.dirty&1&&l&&l.length>19&&t(0,l=l.substring(0,19)),n.$$.dirty&5&&s!=l&&t(2,s=l)},[l,i,s,o,r,a,u,f]}class cM extends ge{constructor(e){super(),_e(this,e,fM,uM,he,{field:1,value:0})}}function Yp(n){let e,t,i=n[1].options.maxSelect+"",l,s;return{c(){e=b("div"),t=Y("Select up to "),l=Y(i),s=Y(" items."),p(e,"class","help-block")},m(o,r){w(o,e,r),y(e,t),y(e,l),y(e,s)},p(o,r){r&2&&i!==(i=o[1].options.maxSelect+"")&&le(l,i)},d(o){o&&v(e)}}}function dM(n){var S,T,$,C,D,O;let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;function _(E){n[3](E)}let g={id:n[4],toggle:!n[1].required||n[2],multiple:n[2],closable:!n[2]||((S=n[0])==null?void 0:S.length)>=((T=n[1].options)==null?void 0:T.maxSelect),items:($=n[1].options)==null?void 0:$.values,searchable:((D=(C=n[1].options)==null?void 0:C.values)==null?void 0:D.length)>5};n[0]!==void 0&&(g.selected=n[0]),f=new Fb({props:g}),te.push(()=>be(f,"selected",_));let k=((O=n[1].options)==null?void 0:O.maxSelect)>1&&Yp(n);return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),V(f.$$.fragment),d=M(),k&&k.c(),m=ke(),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[4])},m(E,L){w(E,e,L),y(e,t),y(e,l),y(e,s),y(s,r),w(E,u,L),H(f,E,L),w(E,d,L),k&&k.m(E,L),w(E,m,L),h=!0},p(E,L){var P,N,R,q,W,J;(!h||L&2&&i!==(i=j.getFieldTypeIcon(E[1].type)))&&p(t,"class",i),(!h||L&2)&&o!==(o=E[1].name+"")&&le(r,o),(!h||L&16&&a!==(a=E[4]))&&p(e,"for",a);const F={};L&16&&(F.id=E[4]),L&6&&(F.toggle=!E[1].required||E[2]),L&4&&(F.multiple=E[2]),L&7&&(F.closable=!E[2]||((P=E[0])==null?void 0:P.length)>=((N=E[1].options)==null?void 0:N.maxSelect)),L&2&&(F.items=(R=E[1].options)==null?void 0:R.values),L&2&&(F.searchable=((W=(q=E[1].options)==null?void 0:q.values)==null?void 0:W.length)>5),!c&&L&1&&(c=!0,F.selected=E[0],ye(()=>c=!1)),f.$set(F),((J=E[1].options)==null?void 0:J.maxSelect)>1?k?k.p(E,L):(k=Yp(E),k.c(),k.m(m.parentNode,m)):k&&(k.d(1),k=null)},i(E){h||(A(f.$$.fragment,E),h=!0)},o(E){I(f.$$.fragment,E),h=!1},d(E){E&&(v(e),v(u),v(d),v(m)),z(f,E),k&&k.d(E)}}}function pM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[dM,({uniqueId:i})=>({4:i}),({uniqueId:i})=>i?16:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&55&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function mM(n,e,t){let i,{field:l}=e,{value:s=void 0}=e;function o(r){s=r,t(0,s),t(2,i),t(1,l)}return n.$$set=r=>{"field"in r&&t(1,l=r.field),"value"in r&&t(0,s=r.value)},n.$$.update=()=>{var r;n.$$.dirty&2&&t(2,i=((r=l.options)==null?void 0:r.maxSelect)>1),n.$$.dirty&5&&typeof s>"u"&&t(0,s=i?[]:""),n.$$.dirty&7&&i&&Array.isArray(s)&&s.length>l.options.maxSelect&&t(0,s=s.slice(s.length-l.options.maxSelect))},[s,l,i,o]}class hM extends ge{constructor(e){super(),_e(this,e,mM,pM,he,{field:1,value:0})}}function _M(n){let e;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function gM(n){let e;return{c(){e=b("i"),p(e,"class","ri-checkbox-circle-fill txt-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function bM(n){let e;return{c(){e=b("input"),p(e,"type","text"),p(e,"class","txt-mono"),e.value="Loading...",e.disabled=!0},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function yM(n){let e,t,i;var l=n[3];function s(o,r){return{props:{id:o[6],maxHeight:"500",language:"json",value:o[2]}}}return l&&(e=Ot(l,s(n)),e.$on("change",n[5])),{c(){e&&V(e.$$.fragment),t=ke()},m(o,r){e&&H(e,o,r),w(o,t,r),i=!0},p(o,r){if(r&8&&l!==(l=o[3])){if(e){oe();const a=e;I(a.$$.fragment,1,0,()=>{z(a,1)}),re()}l?(e=Ot(l,s(o)),e.$on("change",o[5]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,t.parentNode,t)):e=null}else if(l){const a={};r&64&&(a.id=o[6]),r&4&&(a.value=o[2]),e.$set(a)}},i(o){i||(e&&A(e.$$.fragment,o),i=!0)},o(o){e&&I(e.$$.fragment,o),i=!1},d(o){o&&v(t),e&&z(e,o)}}}function kM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g,k,S;function T(L,F){return L[4]?gM:_M}let $=T(n),C=$(n);const D=[yM,bM],O=[];function E(L,F){return L[3]?0:1}return m=E(n),h=O[m]=D[m](n),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=M(),u=b("span"),C.c(),d=M(),h.c(),_=ke(),p(t,"class",i=Jn(j.getFieldTypeIcon(n[1].type))+" svelte-p6ecb8"),p(s,"class","txt"),p(u,"class","json-state svelte-p6ecb8"),p(e,"for",c=n[6])},m(L,F){w(L,e,F),y(e,t),y(e,l),y(e,s),y(s,r),y(e,a),y(e,u),C.m(u,null),w(L,d,F),O[m].m(L,F),w(L,_,F),g=!0,k||(S=ve(f=Le.call(null,u,{position:"left",text:n[4]?"Valid JSON":"Invalid JSON"})),k=!0)},p(L,F){(!g||F&2&&i!==(i=Jn(j.getFieldTypeIcon(L[1].type))+" svelte-p6ecb8"))&&p(t,"class",i),(!g||F&2)&&o!==(o=L[1].name+"")&&le(r,o),$!==($=T(L))&&(C.d(1),C=$(L),C&&(C.c(),C.m(u,null))),f&&$t(f.update)&&F&16&&f.update.call(null,{position:"left",text:L[4]?"Valid JSON":"Invalid JSON"}),(!g||F&64&&c!==(c=L[6]))&&p(e,"for",c);let P=m;m=E(L),m===P?O[m].p(L,F):(oe(),I(O[P],1,1,()=>{O[P]=null}),re(),h=O[m],h?h.p(L,F):(h=O[m]=D[m](L),h.c()),A(h,1),h.m(_.parentNode,_))},i(L){g||(A(h),g=!0)},o(L){I(h),g=!1},d(L){L&&(v(e),v(d),v(_)),C.d(),O[m].d(L),k=!1,S()}}}function vM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[kM,({uniqueId:i})=>({6:i}),({uniqueId:i})=>i?64:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&223&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Kp(n){return JSON.stringify(typeof n>"u"?null:n,null,2)}function wM(n){try{return JSON.parse(n===""?null:n),!0}catch{}return!1}function SM(n,e,t){let i,{field:l}=e,{value:s=void 0}=e,o,r=Kp(s);Vt(async()=>{try{t(3,o=(await rt(()=>import("./CodeEditor-d15a301a.js"),["./CodeEditor-d15a301a.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(u){console.warn(u)}});const a=u=>{t(2,r=u.detail),t(0,s=r.trim())};return n.$$set=u=>{"field"in u&&t(1,l=u.field),"value"in u&&t(0,s=u.value)},n.$$.update=()=>{n.$$.dirty&5&&s!==(r==null?void 0:r.trim())&&(t(2,r=Kp(s)),t(0,s=r)),n.$$.dirty&4&&t(4,i=wM(r))},[s,l,r,o,i,a]}class $M extends ge{constructor(e){super(),_e(this,e,SM,vM,he,{field:1,value:0})}}function TM(n){let e,t;return{c(){e=b("i"),p(e,"class","ri-file-line"),p(e,"alt",t=n[0].name)},m(i,l){w(i,e,l)},p(i,l){l&1&&t!==(t=i[0].name)&&p(e,"alt",t)},d(i){i&&v(e)}}}function CM(n){let e,t,i;return{c(){e=b("img"),p(e,"draggable",!1),nn(e.src,t=n[2])||p(e,"src",t),p(e,"width",n[1]),p(e,"height",n[1]),p(e,"alt",i=n[0].name)},m(l,s){w(l,e,s)},p(l,s){s&4&&!nn(e.src,t=l[2])&&p(e,"src",t),s&2&&p(e,"width",l[1]),s&2&&p(e,"height",l[1]),s&1&&i!==(i=l[0].name)&&p(e,"alt",i)},d(l){l&&v(e)}}}function MM(n){let e;function t(s,o){return s[2]?CM:TM}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,[o]){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},i:Q,o:Q,d(s){s&&v(e),l.d(s)}}}function OM(n,e,t){let i,{file:l}=e,{size:s=50}=e;function o(){j.hasImageExtension(l==null?void 0:l.name)?j.generateThumb(l,s,s).then(r=>{t(2,i=r)}).catch(r=>{t(2,i=""),console.warn("Unable to generate thumb: ",r)}):t(2,i="")}return n.$$set=r=>{"file"in r&&t(0,l=r.file),"size"in r&&t(1,s=r.size)},n.$$.update=()=>{n.$$.dirty&1&&typeof l<"u"&&o()},t(2,i=""),[l,s,i]}class DM extends ge{constructor(e){super(),_e(this,e,OM,MM,he,{file:0,size:1})}}function Jp(n){let e;function t(s,o){return s[4]==="image"?AM:EM}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function EM(n){let e,t;return{c(){e=b("object"),t=Y("Cannot preview the file."),p(e,"title",n[2]),p(e,"data",n[1])},m(i,l){w(i,e,l),y(e,t)},p(i,l){l&4&&p(e,"title",i[2]),l&2&&p(e,"data",i[1])},d(i){i&&v(e)}}}function AM(n){let e,t,i;return{c(){e=b("img"),nn(e.src,t=n[1])||p(e,"src",t),p(e,"alt",i="Preview "+n[2])},m(l,s){w(l,e,s)},p(l,s){s&2&&!nn(e.src,t=l[1])&&p(e,"src",t),s&4&&i!==(i="Preview "+l[2])&&p(e,"alt",i)},d(l){l&&v(e)}}}function IM(n){var l;let e=(l=n[3])==null?void 0:l.isActive(),t,i=e&&Jp(n);return{c(){i&&i.c(),t=ke()},m(s,o){i&&i.m(s,o),w(s,t,o)},p(s,o){var r;o&8&&(e=(r=s[3])==null?void 0:r.isActive()),e?i?i.p(s,o):(i=Jp(s),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(s){s&&v(t),i&&i.d(s)}}}function LM(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","overlay-close")},m(l,s){w(l,e,s),t||(i=K(e,"click",Ye(n[0])),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function PM(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("a"),t=Y(n[2]),i=M(),l=b("i"),s=M(),o=b("div"),r=M(),a=b("button"),a.textContent="Close",p(l,"class","ri-external-link-line"),p(e,"href",n[1]),p(e,"title",n[2]),p(e,"target","_blank"),p(e,"rel","noreferrer noopener"),p(e,"class","link-hint txt-ellipsis inline-flex"),p(o,"class","flex-fill"),p(a,"type","button"),p(a,"class","btn btn-transparent")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,s,d),w(c,o,d),w(c,r,d),w(c,a,d),u||(f=K(a,"click",n[0]),u=!0)},p(c,d){d&4&&le(t,c[2]),d&2&&p(e,"href",c[1]),d&4&&p(e,"title",c[2])},d(c){c&&(v(e),v(s),v(o),v(r),v(a)),u=!1,f()}}}function NM(n){let e,t,i={class:"preview preview-"+n[4],btnClose:!1,popup:!0,$$slots:{footer:[PM],header:[LM],default:[IM]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[7](e),e.$on("show",n[8]),e.$on("hide",n[9]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&16&&(o.class="preview preview-"+l[4]),s&1054&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[7](null),z(e,l)}}}function FM(n,e,t){let i,l,s,o,r="";function a(m){m!==""&&(t(1,r=m),o==null||o.show())}function u(){return o==null?void 0:o.hide()}function f(m){te[m?"unshift":"push"](()=>{o=m,t(3,o)})}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$.update=()=>{n.$$.dirty&2&&t(6,i=r.indexOf("?")),n.$$.dirty&66&&t(2,l=r.substring(r.lastIndexOf("/")+1,i>0?i:void 0)),n.$$.dirty&4&&t(4,s=j.getFileType(l))},[u,r,l,o,s,a,i,f,c,d]}class RM extends ge{constructor(e){super(),_e(this,e,FM,NM,he,{show:5,hide:0})}get show(){return this.$$.ctx[5]}get hide(){return this.$$.ctx[0]}}function qM(n){let e,t,i,l,s;function o(u,f){return u[3]==="image"?VM:u[3]==="video"||u[3]==="audio"?zM:HM}let r=o(n),a=r(n);return{c(){e=b("a"),a.c(),p(e,"draggable",!1),p(e,"class",t="thumb "+(n[1]?`thumb-${n[1]}`:"")),p(e,"href",n[6]),p(e,"target","_blank"),p(e,"rel","noreferrer"),p(e,"title",i=(n[7]?"Preview":"Download")+" "+n[0])},m(u,f){w(u,e,f),a.m(e,null),l||(s=K(e,"click",fn(n[11])),l=!0)},p(u,f){r===(r=o(u))&&a?a.p(u,f):(a.d(1),a=r(u),a&&(a.c(),a.m(e,null))),f&2&&t!==(t="thumb "+(u[1]?`thumb-${u[1]}`:""))&&p(e,"class",t),f&64&&p(e,"href",u[6]),f&129&&i!==(i=(u[7]?"Preview":"Download")+" "+u[0])&&p(e,"title",i)},d(u){u&&v(e),a.d(),l=!1,s()}}}function jM(n){let e,t;return{c(){e=b("div"),p(e,"class",t="thumb "+(n[1]?`thumb-${n[1]}`:""))},m(i,l){w(i,e,l)},p(i,l){l&2&&t!==(t="thumb "+(i[1]?`thumb-${i[1]}`:""))&&p(e,"class",t)},d(i){i&&v(e)}}}function HM(n){let e;return{c(){e=b("i"),p(e,"class","ri-file-3-line")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function zM(n){let e;return{c(){e=b("i"),p(e,"class","ri-video-line")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function VM(n){let e,t,i,l,s;return{c(){e=b("img"),p(e,"draggable",!1),nn(e.src,t=n[5])||p(e,"src",t),p(e,"alt",n[0]),p(e,"title",i="Preview "+n[0]),p(e,"loading","lazy")},m(o,r){w(o,e,r),l||(s=K(e,"error",n[8]),l=!0)},p(o,r){r&32&&!nn(e.src,t=o[5])&&p(e,"src",t),r&1&&p(e,"alt",o[0]),r&1&&i!==(i="Preview "+o[0])&&p(e,"title",i)},d(o){o&&v(e),l=!1,s()}}}function Zp(n){let e,t,i={};return e=new RM({props:i}),n[12](e),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,s){const o={};e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[12](null),z(e,l)}}}function BM(n){let e,t,i;function l(a,u){return a[2]?jM:qM}let s=l(n),o=s(n),r=n[7]&&Zp(n);return{c(){o.c(),e=M(),r&&r.c(),t=ke()},m(a,u){o.m(a,u),w(a,e,u),r&&r.m(a,u),w(a,t,u),i=!0},p(a,[u]){s===(s=l(a))&&o?o.p(a,u):(o.d(1),o=s(a),o&&(o.c(),o.m(e.parentNode,e))),a[7]?r?(r.p(a,u),u&128&&A(r,1)):(r=Zp(a),r.c(),A(r,1),r.m(t.parentNode,t)):r&&(oe(),I(r,1,1,()=>{r=null}),re())},i(a){i||(A(r),i=!0)},o(a){I(r),i=!1},d(a){a&&(v(e),v(t)),o.d(a),r&&r.d(a)}}}function UM(n,e,t){let i,l,{record:s=null}=e,{filename:o=""}=e,{size:r=""}=e,a,u="",f="",c="",d=!0;m();async function m(){t(2,d=!0);try{t(10,c=await fe.getAdminFileToken(s.collectionId))}catch(k){console.warn("File token failure:",k)}t(2,d=!1)}function h(){t(5,u="")}const _=k=>{l&&(k.preventDefault(),a==null||a.show(f))};function g(k){te[k?"unshift":"push"](()=>{a=k,t(4,a)})}return n.$$set=k=>{"record"in k&&t(9,s=k.record),"filename"in k&&t(0,o=k.filename),"size"in k&&t(1,r=k.size)},n.$$.update=()=>{n.$$.dirty&1&&t(3,i=j.getFileType(o)),n.$$.dirty&9&&t(7,l=["image","audio","video"].includes(i)||o.endsWith(".pdf")),n.$$.dirty&1541&&t(6,f=d?"":fe.files.getUrl(s,o,{token:c})),n.$$.dirty&1541&&t(5,u=d?"":fe.files.getUrl(s,o,{thumb:"100x100",token:c}))},[o,r,d,i,a,u,f,l,h,s,c,_,g]}class Qa extends ge{constructor(e){super(),_e(this,e,UM,BM,he,{record:9,filename:0,size:1})}}function Gp(n,e,t){const i=n.slice();return i[29]=e[t],i[31]=t,i}function Xp(n,e,t){const i=n.slice();i[34]=e[t],i[31]=t;const l=i[2].includes(i[34]);return i[35]=l,i}function WM(n){let e,t,i;function l(){return n[17](n[34])}return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-transparent btn-hint btn-sm btn-circle btn-remove")},m(s,o){w(s,e,o),t||(i=[ve(Le.call(null,e,"Remove file")),K(e,"click",l)],t=!0)},p(s,o){n=s},d(s){s&&v(e),t=!1,we(i)}}}function YM(n){let e,t,i;function l(){return n[16](n[34])}return{c(){e=b("button"),e.innerHTML='Restore',p(e,"type","button"),p(e,"class","btn btn-sm btn-danger btn-transparent")},m(s,o){w(s,e,o),t||(i=K(e,"click",l),t=!0)},p(s,o){n=s},d(s){s&&v(e),t=!1,i()}}}function KM(n){let e,t,i,l,s,o,r=n[34]+"",a,u,f,c,d,m;i=new Qa({props:{record:n[3],filename:n[34]}});function h(k,S){return k[35]?YM:WM}let _=h(n),g=_(n);return{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),o=b("a"),a=Y(r),c=M(),d=b("div"),g.c(),ee(t,"fade",n[35]),p(o,"draggable",!1),p(o,"href",u=fe.files.getUrl(n[3],n[34],{token:n[10]})),p(o,"class",f="txt-ellipsis "+(n[35]?"txt-strikethrough txt-hint":"link-primary")),p(o,"title","Download"),p(o,"target","_blank"),p(o,"rel","noopener noreferrer"),p(s,"class","content"),p(d,"class","actions"),p(e,"class","list-item"),ee(e,"dragging",n[32]),ee(e,"dragover",n[33])},m(k,S){w(k,e,S),y(e,t),H(i,t,null),y(e,l),y(e,s),y(s,o),y(o,a),y(e,c),y(e,d),g.m(d,null),m=!0},p(k,S){const T={};S[0]&8&&(T.record=k[3]),S[0]&32&&(T.filename=k[34]),i.$set(T),(!m||S[0]&36)&&ee(t,"fade",k[35]),(!m||S[0]&32)&&r!==(r=k[34]+"")&&le(a,r),(!m||S[0]&1064&&u!==(u=fe.files.getUrl(k[3],k[34],{token:k[10]})))&&p(o,"href",u),(!m||S[0]&36&&f!==(f="txt-ellipsis "+(k[35]?"txt-strikethrough txt-hint":"link-primary")))&&p(o,"class",f),_===(_=h(k))&&g?g.p(k,S):(g.d(1),g=_(k),g&&(g.c(),g.m(d,null))),(!m||S[1]&2)&&ee(e,"dragging",k[32]),(!m||S[1]&4)&&ee(e,"dragover",k[33])},i(k){m||(A(i.$$.fragment,k),m=!0)},o(k){I(i.$$.fragment,k),m=!1},d(k){k&&v(e),z(i),g.d()}}}function Qp(n,e){let t,i,l,s;function o(a){e[18](a)}let r={group:e[4].name+"_uploaded",index:e[31],disabled:!e[6],$$slots:{default:[KM,({dragging:a,dragover:u})=>({32:a,33:u}),({dragging:a,dragover:u})=>[0,(a?2:0)|(u?4:0)]]},$$scope:{ctx:e}};return e[0]!==void 0&&(r.list=e[0]),i=new As({props:r}),te.push(()=>be(i,"list",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u[0]&16&&(f.group=e[4].name+"_uploaded"),u[0]&32&&(f.index=e[31]),u[0]&64&&(f.disabled=!e[6]),u[0]&1068|u[1]&70&&(f.$$scope={dirty:u,ctx:e}),!l&&u[0]&1&&(l=!0,f.list=e[0],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function JM(n){let e,t,i,l,s,o,r,a,u=n[29].name+"",f,c,d,m,h,_,g;i=new DM({props:{file:n[29]}});function k(){return n[19](n[31])}return{c(){e=b("div"),t=b("figure"),V(i.$$.fragment),l=M(),s=b("div"),o=b("small"),o.textContent="New",r=M(),a=b("span"),f=Y(u),d=M(),m=b("button"),m.innerHTML='',p(t,"class","thumb"),p(o,"class","label label-success m-r-5"),p(a,"class","txt"),p(s,"class","filename m-r-auto"),p(s,"title",c=n[29].name),p(m,"type","button"),p(m,"class","btn btn-transparent btn-hint btn-sm btn-circle btn-remove"),p(e,"class","list-item"),ee(e,"dragging",n[32]),ee(e,"dragover",n[33])},m(S,T){w(S,e,T),y(e,t),H(i,t,null),y(e,l),y(e,s),y(s,o),y(s,r),y(s,a),y(a,f),y(e,d),y(e,m),h=!0,_||(g=[ve(Le.call(null,m,"Remove file")),K(m,"click",k)],_=!0)},p(S,T){n=S;const $={};T[0]&2&&($.file=n[29]),i.$set($),(!h||T[0]&2)&&u!==(u=n[29].name+"")&&le(f,u),(!h||T[0]&2&&c!==(c=n[29].name))&&p(s,"title",c),(!h||T[1]&2)&&ee(e,"dragging",n[32]),(!h||T[1]&4)&&ee(e,"dragover",n[33])},i(S){h||(A(i.$$.fragment,S),h=!0)},o(S){I(i.$$.fragment,S),h=!1},d(S){S&&v(e),z(i),_=!1,we(g)}}}function xp(n,e){let t,i,l,s;function o(a){e[20](a)}let r={group:e[4].name+"_new",index:e[31],disabled:!e[6],$$slots:{default:[JM,({dragging:a,dragover:u})=>({32:a,33:u}),({dragging:a,dragover:u})=>[0,(a?2:0)|(u?4:0)]]},$$scope:{ctx:e}};return e[1]!==void 0&&(r.list=e[1]),i=new As({props:r}),te.push(()=>be(i,"list",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u[0]&16&&(f.group=e[4].name+"_new"),u[0]&2&&(f.index=e[31]),u[0]&64&&(f.disabled=!e[6]),u[0]&2|u[1]&70&&(f.$$scope={dirty:u,ctx:e}),!l&&u[0]&2&&(l=!0,f.list=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function ZM(n){let e,t,i,l,s,o=n[4].name+"",r,a,u,f,c=[],d=new Map,m,h=[],_=new Map,g,k,S,T,$,C,D,O,E,L,F,P,N=pe(n[5]);const R=J=>J[34]+J[3].id;for(let J=0;JJ[29].name+J[31];for(let J=0;J{"model"in o&&t(1,i=o.model)},n.$$.update=()=>{n.$$.dirty&2&&i&&s()},[l,i]}class qb extends ge{constructor(e){super(),_e(this,e,C6,T6,he,{model:1})}}function M6(n){let e,t,i,l,s,o,r,a,u,f;return s=new sl({props:{value:n[1]}}),{c(){e=b("div"),t=b("span"),i=Y(n[1]),l=M(),V(s.$$.fragment),o=M(),r=b("i"),p(t,"class","secret svelte-1md8247"),p(r,"class","ri-refresh-line txt-sm link-hint"),p(r,"aria-label","Refresh"),p(e,"class","flex flex-gap-5 p-5")},m(c,d){w(c,e,d),y(e,t),y(t,i),n[6](t),y(e,l),H(s,e,null),y(e,o),y(e,r),a=!0,u||(f=[ve(Le.call(null,r,"Refresh")),K(r,"click",n[4])],u=!0)},p(c,d){(!a||d&2)&&le(i,c[1]);const m={};d&2&&(m.value=c[1]),s.$set(m)},i(c){a||(A(s.$$.fragment,c),a=!0)},o(c){I(s.$$.fragment,c),a=!1},d(c){c&&v(e),n[6](null),z(s),u=!1,we(f)}}}function O6(n){let e,t,i,l,s,o,r,a,u,f;function c(m){n[7](m)}let d={class:"dropdown dropdown-upside dropdown-center dropdown-nowrap",$$slots:{default:[M6]},$$scope:{ctx:n}};return n[3]!==void 0&&(d.active=n[3]),l=new En({props:d}),te.push(()=>be(l,"active",c)),l.$on("show",n[4]),{c(){e=b("button"),t=b("i"),i=M(),V(l.$$.fragment),p(t,"class","ri-sparkling-line"),p(e,"tabindex","-1"),p(e,"type","button"),p(e,"aria-label","Generate"),p(e,"class",o="btn btn-circle "+n[0]+" svelte-1md8247")},m(m,h){w(m,e,h),y(e,t),y(e,i),H(l,e,null),a=!0,u||(f=ve(r=Le.call(null,e,n[3]?"":"Generate")),u=!0)},p(m,[h]){const _={};h&518&&(_.$$scope={dirty:h,ctx:m}),!s&&h&8&&(s=!0,_.active=m[3],ye(()=>s=!1)),l.$set(_),(!a||h&1&&o!==(o="btn btn-circle "+m[0]+" svelte-1md8247"))&&p(e,"class",o),r&&$t(r.update)&&h&8&&r.update.call(null,m[3]?"":"Generate")},i(m){a||(A(l.$$.fragment,m),a=!0)},o(m){I(l.$$.fragment,m),a=!1},d(m){m&&v(e),z(l),u=!1,f()}}}function D6(n,e,t){const i=ot();let{class:l="btn-sm btn-hint btn-transparent"}=e,{length:s=32}=e,o="",r,a=!1;async function u(){if(t(1,o=j.randomSecret(s)),i("generate",o),await Qt(),r){let d=document.createRange();d.selectNode(r),window.getSelection().removeAllRanges(),window.getSelection().addRange(d)}}function f(d){te[d?"unshift":"push"](()=>{r=d,t(2,r)})}function c(d){a=d,t(3,a)}return n.$$set=d=>{"class"in d&&t(0,l=d.class),"length"in d&&t(5,s=d.length)},[l,o,r,a,u,s,f,c]}class jb extends ge{constructor(e){super(),_e(this,e,D6,O6,he,{class:0,length:5})}}function E6(n){let e,t,i,l,s,o,r,a,u,f,c,d;return{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Username",o=M(),r=b("input"),p(t,"class",j.getFieldTypeIcon("user")),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","text"),p(r,"requried",a=!n[2]),p(r,"placeholder",u=n[2]?"Leave empty to auto generate...":n[4]),p(r,"id",f=n[13])},m(m,h){w(m,e,h),y(e,t),y(e,i),y(e,l),w(m,o,h),w(m,r,h),ue(r,n[0].username),c||(d=K(r,"input",n[5]),c=!0)},p(m,h){h&8192&&s!==(s=m[13])&&p(e,"for",s),h&4&&a!==(a=!m[2])&&p(r,"requried",a),h&4&&u!==(u=m[2]?"Leave empty to auto generate...":m[4])&&p(r,"placeholder",u),h&8192&&f!==(f=m[13])&&p(r,"id",f),h&1&&r.value!==m[0].username&&ue(r,m[0].username)},d(m){m&&(v(e),v(o),v(r)),c=!1,d()}}}function A6(n){let e,t,i,l,s,o,r,a,u,f,c=n[0].emailVisibility?"On":"Off",d,m,h,_,g,k,S,T;return{c(){var $;e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Email",o=M(),r=b("div"),a=b("button"),u=b("span"),f=Y("Public: "),d=Y(c),h=M(),_=b("input"),p(t,"class",j.getFieldTypeIcon("email")),p(l,"class","txt"),p(e,"for",s=n[13]),p(u,"class","txt"),p(a,"type","button"),p(a,"class",m="btn btn-sm btn-transparent "+(n[0].emailVisibility?"btn-success":"btn-hint")),p(r,"class","form-field-addon email-visibility-addon svelte-1751a4d"),p(_,"type","email"),_.autofocus=n[2],p(_,"autocomplete","off"),p(_,"id",g=n[13]),_.required=k=($=n[1].options)==null?void 0:$.requireEmail,p(_,"class","svelte-1751a4d")},m($,C){w($,e,C),y(e,t),y(e,i),y(e,l),w($,o,C),w($,r,C),y(r,a),y(a,u),y(u,f),y(u,d),w($,h,C),w($,_,C),ue(_,n[0].email),n[2]&&_.focus(),S||(T=[ve(Le.call(null,a,{text:"Make email public or private",position:"top-right"})),K(a,"click",Ye(n[6])),K(_,"input",n[7])],S=!0)},p($,C){var D;C&8192&&s!==(s=$[13])&&p(e,"for",s),C&1&&c!==(c=$[0].emailVisibility?"On":"Off")&&le(d,c),C&1&&m!==(m="btn btn-sm btn-transparent "+($[0].emailVisibility?"btn-success":"btn-hint"))&&p(a,"class",m),C&4&&(_.autofocus=$[2]),C&8192&&g!==(g=$[13])&&p(_,"id",g),C&2&&k!==(k=(D=$[1].options)==null?void 0:D.requireEmail)&&(_.required=k),C&1&&_.value!==$[0].email&&ue(_,$[0].email)},d($){$&&(v(e),v(o),v(r),v(h),v(_)),S=!1,we(T)}}}function Bp(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[I6,({uniqueId:i})=>({13:i}),({uniqueId:i})=>i?8192:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,l){const s={};l&24584&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function I6(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[3],w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[8]),r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&8&&(e.checked=u[3]),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function Up(n){let e,t,i,l,s,o,r,a,u;return l=new me({props:{class:"form-field required",name:"password",$$slots:{default:[L6,({uniqueId:f})=>({13:f}),({uniqueId:f})=>f?8192:0]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[P6,({uniqueId:f})=>({13:f}),({uniqueId:f})=>f?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),i=b("div"),V(l.$$.fragment),s=M(),o=b("div"),V(r.$$.fragment),p(i,"class","col-sm-6"),p(o,"class","col-sm-6"),p(t,"class","grid"),ee(t,"p-t-xs",n[3]),p(e,"class","block")},m(f,c){w(f,e,c),y(e,t),y(t,i),H(l,i,null),y(t,s),y(t,o),H(r,o,null),u=!0},p(f,c){const d={};c&24577&&(d.$$scope={dirty:c,ctx:f}),l.$set(d);const m={};c&24577&&(m.$$scope={dirty:c,ctx:f}),r.$set(m),(!u||c&8)&&ee(t,"p-t-xs",f[3])},i(f){u||(A(l.$$.fragment,f),A(r.$$.fragment,f),f&&Ke(()=>{u&&(a||(a=Pe(e,et,{duration:150},!0)),a.run(1))}),u=!0)},o(f){I(l.$$.fragment,f),I(r.$$.fragment,f),f&&(a||(a=Pe(e,et,{duration:150},!1)),a.run(0)),u=!1},d(f){f&&v(e),z(l),z(r),f&&a&&a.end()}}}function L6(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h;return c=new jb({props:{length:15}}),{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Password",o=M(),r=b("input"),u=M(),f=b("div"),V(c.$$.fragment),p(t,"class","ri-lock-line"),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[13]),r.required=!0,p(f,"class","form-field-addon")},m(_,g){w(_,e,g),y(e,t),y(e,i),y(e,l),w(_,o,g),w(_,r,g),ue(r,n[0].password),w(_,u,g),w(_,f,g),H(c,f,null),d=!0,m||(h=K(r,"input",n[9]),m=!0)},p(_,g){(!d||g&8192&&s!==(s=_[13]))&&p(e,"for",s),(!d||g&8192&&a!==(a=_[13]))&&p(r,"id",a),g&1&&r.value!==_[0].password&&ue(r,_[0].password)},i(_){d||(A(c.$$.fragment,_),d=!0)},o(_){I(c.$$.fragment,_),d=!1},d(_){_&&(v(e),v(o),v(r),v(u),v(f)),z(c),m=!1,h()}}}function P6(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=b("i"),i=M(),l=b("span"),l.textContent="Password confirm",o=M(),r=b("input"),p(t,"class","ri-lock-line"),p(l,"class","txt"),p(e,"for",s=n[13]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[13]),r.required=!0},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,o,d),w(c,r,d),ue(r,n[0].passwordConfirm),u||(f=K(r,"input",n[10]),u=!0)},p(c,d){d&8192&&s!==(s=c[13])&&p(e,"for",s),d&8192&&a!==(a=c[13])&&p(r,"id",a),d&1&&r.value!==c[0].passwordConfirm&&ue(r,c[0].passwordConfirm)},d(c){c&&(v(e),v(o),v(r)),u=!1,f()}}}function N6(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y("Verified"),p(e,"type","checkbox"),p(e,"id",t=n[13]),p(l,"for",o=n[13])},m(u,f){w(u,e,f),e.checked=n[0].verified,w(u,i,f),w(u,l,f),y(l,s),r||(a=[K(e,"change",n[11]),K(e,"change",Ye(n[12]))],r=!0)},p(u,f){f&8192&&t!==(t=u[13])&&p(e,"id",t),f&1&&(e.checked=u[0].verified),f&8192&&o!==(o=u[13])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,we(a)}}}function F6(n){var g;let e,t,i,l,s,o,r,a,u,f,c,d,m;i=new me({props:{class:"form-field "+(n[2]?"":"required"),name:"username",$$slots:{default:[E6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field "+((g=n[1].options)!=null&&g.requireEmail?"required":""),name:"email",$$slots:{default:[A6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}});let h=!n[2]&&Bp(n),_=(n[2]||n[3])&&Up(n);return d=new me({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[N6,({uniqueId:k})=>({13:k}),({uniqueId:k})=>k?8192:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),h&&h.c(),u=M(),_&&_.c(),f=M(),c=b("div"),V(d.$$.fragment),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(a,"class","col-lg-12"),p(c,"class","col-lg-12"),p(e,"class","grid m-b-base")},m(k,S){w(k,e,S),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),h&&h.m(a,null),y(a,u),_&&_.m(a,null),y(e,f),y(e,c),H(d,c,null),m=!0},p(k,[S]){var D;const T={};S&4&&(T.class="form-field "+(k[2]?"":"required")),S&24581&&(T.$$scope={dirty:S,ctx:k}),i.$set(T);const $={};S&2&&($.class="form-field "+((D=k[1].options)!=null&&D.requireEmail?"required":"")),S&24583&&($.$$scope={dirty:S,ctx:k}),o.$set($),k[2]?h&&(oe(),I(h,1,1,()=>{h=null}),re()):h?(h.p(k,S),S&4&&A(h,1)):(h=Bp(k),h.c(),A(h,1),h.m(a,u)),k[2]||k[3]?_?(_.p(k,S),S&12&&A(_,1)):(_=Up(k),_.c(),A(_,1),_.m(a,null)):_&&(oe(),I(_,1,1,()=>{_=null}),re());const C={};S&24581&&(C.$$scope={dirty:S,ctx:k}),d.$set(C)},i(k){m||(A(i.$$.fragment,k),A(o.$$.fragment,k),A(h),A(_),A(d.$$.fragment,k),m=!0)},o(k){I(i.$$.fragment,k),I(o.$$.fragment,k),I(h),I(_),I(d.$$.fragment,k),m=!1},d(k){k&&v(e),z(i),z(o),h&&h.d(),_&&_.d(),z(d)}}}function R6(n,e,t){let{record:i}=e,{collection:l}=e,{isNew:s=!(i!=null&&i.id)}=e,o=i.username||null,r=!1;function a(){i.username=this.value,t(0,i),t(3,r)}const u=()=>t(0,i.emailVisibility=!i.emailVisibility,i);function f(){i.email=this.value,t(0,i),t(3,r)}function c(){r=this.checked,t(3,r)}function d(){i.password=this.value,t(0,i),t(3,r)}function m(){i.passwordConfirm=this.value,t(0,i),t(3,r)}function h(){i.verified=this.checked,t(0,i),t(3,r)}const _=g=>{s||an("Do you really want to manually change the verified account state?",()=>{},()=>{t(0,i.verified=!g.target.checked,i)})};return n.$$set=g=>{"record"in g&&t(0,i=g.record),"collection"in g&&t(1,l=g.collection),"isNew"in g&&t(2,s=g.isNew)},n.$$.update=()=>{n.$$.dirty&1&&!i.username&&i.username!==null&&t(0,i.username=null,i),n.$$.dirty&8&&(r||(t(0,i.password=null,i),t(0,i.passwordConfirm=null,i),ii("password"),ii("passwordConfirm")))},[i,l,s,r,o,a,u,f,c,d,m,h,_]}class q6 extends ge{constructor(e){super(),_e(this,e,R6,F6,he,{record:0,collection:1,isNew:2})}}function j6(n){let e,t,i,l=[n[3]],s={};for(let o=0;o{r&&(t(1,r.style.height="",r),t(1,r.style.height=Math.min(r.scrollHeight,o)+"px",r))},0)}function f(m){if((m==null?void 0:m.code)==="Enter"&&!(m!=null&&m.shiftKey)&&!(m!=null&&m.isComposing)){m.preventDefault();const h=r.closest("form");h!=null&&h.requestSubmit&&h.requestSubmit()}}Vt(()=>(u(),()=>clearTimeout(a)));function c(m){te[m?"unshift":"push"](()=>{r=m,t(1,r)})}function d(){s=this.value,t(0,s)}return n.$$set=m=>{e=Ne(Ne({},e),Kt(m)),t(3,l=Ge(e,i)),"value"in m&&t(0,s=m.value),"maxHeight"in m&&t(4,o=m.maxHeight)},n.$$.update=()=>{n.$$.dirty&1&&typeof s!==void 0&&u()},[s,r,f,l,o,c,d]}class z6 extends ge{constructor(e){super(),_e(this,e,H6,j6,he,{value:0,maxHeight:4})}}function V6(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d;function m(_){n[2](_)}let h={id:n[3],required:n[1].required};return n[0]!==void 0&&(h.value=n[0]),f=new z6({props:h}),te.push(()=>be(f,"value",m)),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),V(f.$$.fragment),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3])},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),H(f,_,g),d=!0},p(_,g){(!d||g&2&&i!==(i=j.getFieldTypeIcon(_[1].type)))&&p(t,"class",i),(!d||g&2)&&o!==(o=_[1].name+"")&&le(r,o),(!d||g&8&&a!==(a=_[3]))&&p(e,"for",a);const k={};g&8&&(k.id=_[3]),g&2&&(k.required=_[1].required),!c&&g&1&&(c=!0,k.value=_[0],ye(()=>c=!1)),f.$set(k)},i(_){d||(A(f.$$.fragment,_),d=!0)},o(_){I(f.$$.fragment,_),d=!1},d(_){_&&(v(e),v(u)),z(f,_)}}}function B6(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[V6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function U6(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(o){l=o,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class W6 extends ge{constructor(e){super(),_e(this,e,U6,B6,he,{field:1,value:0})}}function Y6(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g;return{c(){var k,S;e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","number"),p(f,"id",c=n[3]),f.required=d=n[1].required,p(f,"min",m=(k=n[1].options)==null?void 0:k.min),p(f,"max",h=(S=n[1].options)==null?void 0:S.max),p(f,"step","any")},m(k,S){w(k,e,S),y(e,t),y(e,l),y(e,s),y(s,r),w(k,u,S),w(k,f,S),ue(f,n[0]),_||(g=K(f,"input",n[2]),_=!0)},p(k,S){var T,$;S&2&&i!==(i=j.getFieldTypeIcon(k[1].type))&&p(t,"class",i),S&2&&o!==(o=k[1].name+"")&&le(r,o),S&8&&a!==(a=k[3])&&p(e,"for",a),S&8&&c!==(c=k[3])&&p(f,"id",c),S&2&&d!==(d=k[1].required)&&(f.required=d),S&2&&m!==(m=(T=k[1].options)==null?void 0:T.min)&&p(f,"min",m),S&2&&h!==(h=($=k[1].options)==null?void 0:$.max)&&p(f,"max",h),S&1&&st(f.value)!==k[0]&&ue(f,k[0])},d(k){k&&(v(e),v(u),v(f)),_=!1,g()}}}function K6(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[Y6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function J6(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=st(this.value),t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class Z6 extends ge{constructor(e){super(),_e(this,e,J6,K6,he,{field:1,value:0})}}function G6(n){let e,t,i,l,s=n[1].name+"",o,r,a,u;return{c(){e=b("input"),i=M(),l=b("label"),o=Y(s),p(e,"type","checkbox"),p(e,"id",t=n[3]),p(l,"for",r=n[3])},m(f,c){w(f,e,c),e.checked=n[0],w(f,i,c),w(f,l,c),y(l,o),a||(u=K(e,"change",n[2]),a=!0)},p(f,c){c&8&&t!==(t=f[3])&&p(e,"id",t),c&1&&(e.checked=f[0]),c&2&&s!==(s=f[1].name+"")&&le(o,s),c&8&&r!==(r=f[3])&&p(l,"for",r)},d(f){f&&(v(e),v(i),v(l)),a=!1,u()}}}function X6(n){let e,t;return e=new me({props:{class:"form-field form-field-toggle "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[G6,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field form-field-toggle "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Q6(n,e,t){let{field:i}=e,{value:l=!1}=e;function s(){l=this.checked,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class x6 extends ge{constructor(e){super(),_e(this,e,Q6,X6,he,{field:1,value:0})}}function eM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","email"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),w(_,f,g),ue(f,n[0]),m||(h=K(f,"input",n[2]),m=!0)},p(_,g){g&2&&i!==(i=j.getFieldTypeIcon(_[1].type))&&p(t,"class",i),g&2&&o!==(o=_[1].name+"")&&le(r,o),g&8&&a!==(a=_[3])&&p(e,"for",a),g&8&&c!==(c=_[3])&&p(f,"id",c),g&2&&d!==(d=_[1].required)&&(f.required=d),g&1&&f.value!==_[0]&&ue(f,_[0])},d(_){_&&(v(e),v(u),v(f)),m=!1,h()}}}function tM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[eM,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function nM(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=this.value,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class iM extends ge{constructor(e){super(),_e(this,e,nM,tM,he,{field:1,value:0})}}function lM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),f=b("input"),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[3]),p(f,"type","url"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(_,g){w(_,e,g),y(e,t),y(e,l),y(e,s),y(s,r),w(_,u,g),w(_,f,g),ue(f,n[0]),m||(h=K(f,"input",n[2]),m=!0)},p(_,g){g&2&&i!==(i=j.getFieldTypeIcon(_[1].type))&&p(t,"class",i),g&2&&o!==(o=_[1].name+"")&&le(r,o),g&8&&a!==(a=_[3])&&p(e,"for",a),g&8&&c!==(c=_[3])&&p(f,"id",c),g&2&&d!==(d=_[1].required)&&(f.required=d),g&1&&f.value!==_[0]&&ue(f,_[0])},d(_){_&&(v(e),v(u),v(f)),m=!1,h()}}}function sM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[lM,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&27&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function oM(n,e,t){let{field:i}=e,{value:l=void 0}=e;function s(){l=this.value,t(0,l)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,l=o.value)},[l,i,s]}class rM extends ge{constructor(e){super(),_e(this,e,oM,sM,he,{field:1,value:0})}}function Wp(n){let e,t,i,l;return{c(){e=b("div"),t=b("button"),t.innerHTML='',p(t,"type","button"),p(t,"class","link-hint clear-btn svelte-11df51y"),p(e,"class","form-field-addon")},m(s,o){w(s,e,o),y(e,t),i||(l=[ve(Le.call(null,t,"Clear")),K(t,"click",n[5])],i=!0)},p:Q,d(s){s&&v(e),i=!1,we(l)}}}function aM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g=n[0]&&!n[1].required&&Wp(n);function k($){n[6]($)}function S($){n[7]($)}let T={id:n[8],options:j.defaultFlatpickrOptions()};return n[2]!==void 0&&(T.value=n[2]),n[0]!==void 0&&(T.formattedValue=n[0]),d=new Ga({props:T}),te.push(()=>be(d,"value",k)),te.push(()=>be(d,"formattedValue",S)),d.$on("close",n[3]),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=Y(" (UTC)"),f=M(),g&&g.c(),c=M(),V(d.$$.fragment),p(t,"class",i=Jn(j.getFieldTypeIcon(n[1].type))+" svelte-11df51y"),p(s,"class","txt"),p(e,"for",u=n[8])},m($,C){w($,e,C),y(e,t),y(e,l),y(e,s),y(s,r),y(s,a),w($,f,C),g&&g.m($,C),w($,c,C),H(d,$,C),_=!0},p($,C){(!_||C&2&&i!==(i=Jn(j.getFieldTypeIcon($[1].type))+" svelte-11df51y"))&&p(t,"class",i),(!_||C&2)&&o!==(o=$[1].name+"")&&le(r,o),(!_||C&256&&u!==(u=$[8]))&&p(e,"for",u),$[0]&&!$[1].required?g?g.p($,C):(g=Wp($),g.c(),g.m(c.parentNode,c)):g&&(g.d(1),g=null);const D={};C&256&&(D.id=$[8]),!m&&C&4&&(m=!0,D.value=$[2],ye(()=>m=!1)),!h&&C&1&&(h=!0,D.formattedValue=$[0],ye(()=>h=!1)),d.$set(D)},i($){_||(A(d.$$.fragment,$),_=!0)},o($){I(d.$$.fragment,$),_=!1},d($){$&&(v(e),v(f),v(c)),g&&g.d($),z(d,$)}}}function uM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[aM,({uniqueId:i})=>({8:i}),({uniqueId:i})=>i?256:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&775&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function fM(n,e,t){let{field:i}=e,{value:l=void 0}=e,s=l;function o(c){c.detail&&c.detail.length==3&&t(0,l=c.detail[1])}function r(){t(0,l="")}const a=()=>r();function u(c){s=c,t(2,s),t(0,l)}function f(c){l=c,t(0,l)}return n.$$set=c=>{"field"in c&&t(1,i=c.field),"value"in c&&t(0,l=c.value)},n.$$.update=()=>{n.$$.dirty&1&&l&&l.length>19&&t(0,l=l.substring(0,19)),n.$$.dirty&5&&s!=l&&t(2,s=l)},[l,i,s,o,r,a,u,f]}class cM extends ge{constructor(e){super(),_e(this,e,fM,uM,he,{field:1,value:0})}}function Yp(n){let e,t,i=n[1].options.maxSelect+"",l,s;return{c(){e=b("div"),t=Y("Select up to "),l=Y(i),s=Y(" items."),p(e,"class","help-block")},m(o,r){w(o,e,r),y(e,t),y(e,l),y(e,s)},p(o,r){r&2&&i!==(i=o[1].options.maxSelect+"")&&le(l,i)},d(o){o&&v(e)}}}function dM(n){var S,T,$,C,D,O;let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h;function _(E){n[3](E)}let g={id:n[4],toggle:!n[1].required||n[2],multiple:n[2],closable:!n[2]||((S=n[0])==null?void 0:S.length)>=((T=n[1].options)==null?void 0:T.maxSelect),items:($=n[1].options)==null?void 0:$.values,searchable:((D=(C=n[1].options)==null?void 0:C.values)==null?void 0:D.length)>5};n[0]!==void 0&&(g.selected=n[0]),f=new Fb({props:g}),te.push(()=>be(f,"selected",_));let k=((O=n[1].options)==null?void 0:O.maxSelect)>1&&Yp(n);return{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),u=M(),V(f.$$.fragment),d=M(),k&&k.c(),m=ke(),p(t,"class",i=j.getFieldTypeIcon(n[1].type)),p(s,"class","txt"),p(e,"for",a=n[4])},m(E,L){w(E,e,L),y(e,t),y(e,l),y(e,s),y(s,r),w(E,u,L),H(f,E,L),w(E,d,L),k&&k.m(E,L),w(E,m,L),h=!0},p(E,L){var P,N,R,q,W,J;(!h||L&2&&i!==(i=j.getFieldTypeIcon(E[1].type)))&&p(t,"class",i),(!h||L&2)&&o!==(o=E[1].name+"")&&le(r,o),(!h||L&16&&a!==(a=E[4]))&&p(e,"for",a);const F={};L&16&&(F.id=E[4]),L&6&&(F.toggle=!E[1].required||E[2]),L&4&&(F.multiple=E[2]),L&7&&(F.closable=!E[2]||((P=E[0])==null?void 0:P.length)>=((N=E[1].options)==null?void 0:N.maxSelect)),L&2&&(F.items=(R=E[1].options)==null?void 0:R.values),L&2&&(F.searchable=((W=(q=E[1].options)==null?void 0:q.values)==null?void 0:W.length)>5),!c&&L&1&&(c=!0,F.selected=E[0],ye(()=>c=!1)),f.$set(F),((J=E[1].options)==null?void 0:J.maxSelect)>1?k?k.p(E,L):(k=Yp(E),k.c(),k.m(m.parentNode,m)):k&&(k.d(1),k=null)},i(E){h||(A(f.$$.fragment,E),h=!0)},o(E){I(f.$$.fragment,E),h=!1},d(E){E&&(v(e),v(u),v(d),v(m)),z(f,E),k&&k.d(E)}}}function pM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[dM,({uniqueId:i})=>({4:i}),({uniqueId:i})=>i?16:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&55&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function mM(n,e,t){let i,{field:l}=e,{value:s=void 0}=e;function o(r){s=r,t(0,s),t(2,i),t(1,l)}return n.$$set=r=>{"field"in r&&t(1,l=r.field),"value"in r&&t(0,s=r.value)},n.$$.update=()=>{var r;n.$$.dirty&2&&t(2,i=((r=l.options)==null?void 0:r.maxSelect)>1),n.$$.dirty&5&&typeof s>"u"&&t(0,s=i?[]:""),n.$$.dirty&7&&i&&Array.isArray(s)&&s.length>l.options.maxSelect&&t(0,s=s.slice(s.length-l.options.maxSelect))},[s,l,i,o]}class hM extends ge{constructor(e){super(),_e(this,e,mM,pM,he,{field:1,value:0})}}function _M(n){let e;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function gM(n){let e;return{c(){e=b("i"),p(e,"class","ri-checkbox-circle-fill txt-success")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function bM(n){let e;return{c(){e=b("input"),p(e,"type","text"),p(e,"class","txt-mono"),e.value="Loading...",e.disabled=!0},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function yM(n){let e,t,i;var l=n[3];function s(o,r){return{props:{id:o[6],maxHeight:"500",language:"json",value:o[2]}}}return l&&(e=Ot(l,s(n)),e.$on("change",n[5])),{c(){e&&V(e.$$.fragment),t=ke()},m(o,r){e&&H(e,o,r),w(o,t,r),i=!0},p(o,r){if(r&8&&l!==(l=o[3])){if(e){oe();const a=e;I(a.$$.fragment,1,0,()=>{z(a,1)}),re()}l?(e=Ot(l,s(o)),e.$on("change",o[5]),V(e.$$.fragment),A(e.$$.fragment,1),H(e,t.parentNode,t)):e=null}else if(l){const a={};r&64&&(a.id=o[6]),r&4&&(a.value=o[2]),e.$set(a)}},i(o){i||(e&&A(e.$$.fragment,o),i=!0)},o(o){e&&I(e.$$.fragment,o),i=!1},d(o){o&&v(t),e&&z(e,o)}}}function kM(n){let e,t,i,l,s,o=n[1].name+"",r,a,u,f,c,d,m,h,_,g,k,S;function T(L,F){return L[4]?gM:_M}let $=T(n),C=$(n);const D=[yM,bM],O=[];function E(L,F){return L[3]?0:1}return m=E(n),h=O[m]=D[m](n),{c(){e=b("label"),t=b("i"),l=M(),s=b("span"),r=Y(o),a=M(),u=b("span"),C.c(),d=M(),h.c(),_=ke(),p(t,"class",i=Jn(j.getFieldTypeIcon(n[1].type))+" svelte-p6ecb8"),p(s,"class","txt"),p(u,"class","json-state svelte-p6ecb8"),p(e,"for",c=n[6])},m(L,F){w(L,e,F),y(e,t),y(e,l),y(e,s),y(s,r),y(e,a),y(e,u),C.m(u,null),w(L,d,F),O[m].m(L,F),w(L,_,F),g=!0,k||(S=ve(f=Le.call(null,u,{position:"left",text:n[4]?"Valid JSON":"Invalid JSON"})),k=!0)},p(L,F){(!g||F&2&&i!==(i=Jn(j.getFieldTypeIcon(L[1].type))+" svelte-p6ecb8"))&&p(t,"class",i),(!g||F&2)&&o!==(o=L[1].name+"")&&le(r,o),$!==($=T(L))&&(C.d(1),C=$(L),C&&(C.c(),C.m(u,null))),f&&$t(f.update)&&F&16&&f.update.call(null,{position:"left",text:L[4]?"Valid JSON":"Invalid JSON"}),(!g||F&64&&c!==(c=L[6]))&&p(e,"for",c);let P=m;m=E(L),m===P?O[m].p(L,F):(oe(),I(O[P],1,1,()=>{O[P]=null}),re(),h=O[m],h?h.p(L,F):(h=O[m]=D[m](L),h.c()),A(h,1),h.m(_.parentNode,_))},i(L){g||(A(h),g=!0)},o(L){I(h),g=!1},d(L){L&&(v(e),v(d),v(_)),C.d(),O[m].d(L),k=!1,S()}}}function vM(n){let e,t;return e=new me({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[kM,({uniqueId:i})=>({6:i}),({uniqueId:i})=>i?64:0]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment)},m(i,l){H(e,i,l),t=!0},p(i,[l]){const s={};l&2&&(s.class="form-field "+(i[1].required?"required":"")),l&2&&(s.name=i[1].name),l&223&&(s.$$scope={dirty:l,ctx:i}),e.$set(s)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){I(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function Kp(n){return JSON.stringify(typeof n>"u"?null:n,null,2)}function wM(n){try{return JSON.parse(n===""?null:n),!0}catch{}return!1}function SM(n,e,t){let i,{field:l}=e,{value:s=void 0}=e,o,r=Kp(s);Vt(async()=>{try{t(3,o=(await rt(()=>import("./CodeEditor-e3209658.js"),["./CodeEditor-e3209658.js","./index-9ee652b3.js"],import.meta.url)).default)}catch(u){console.warn(u)}});const a=u=>{t(2,r=u.detail),t(0,s=r.trim())};return n.$$set=u=>{"field"in u&&t(1,l=u.field),"value"in u&&t(0,s=u.value)},n.$$.update=()=>{n.$$.dirty&5&&s!==(r==null?void 0:r.trim())&&(t(2,r=Kp(s)),t(0,s=r)),n.$$.dirty&4&&t(4,i=wM(r))},[s,l,r,o,i,a]}class $M extends ge{constructor(e){super(),_e(this,e,SM,vM,he,{field:1,value:0})}}function TM(n){let e,t;return{c(){e=b("i"),p(e,"class","ri-file-line"),p(e,"alt",t=n[0].name)},m(i,l){w(i,e,l)},p(i,l){l&1&&t!==(t=i[0].name)&&p(e,"alt",t)},d(i){i&&v(e)}}}function CM(n){let e,t,i;return{c(){e=b("img"),p(e,"draggable",!1),nn(e.src,t=n[2])||p(e,"src",t),p(e,"width",n[1]),p(e,"height",n[1]),p(e,"alt",i=n[0].name)},m(l,s){w(l,e,s)},p(l,s){s&4&&!nn(e.src,t=l[2])&&p(e,"src",t),s&2&&p(e,"width",l[1]),s&2&&p(e,"height",l[1]),s&1&&i!==(i=l[0].name)&&p(e,"alt",i)},d(l){l&&v(e)}}}function MM(n){let e;function t(s,o){return s[2]?CM:TM}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,[o]){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},i:Q,o:Q,d(s){s&&v(e),l.d(s)}}}function OM(n,e,t){let i,{file:l}=e,{size:s=50}=e;function o(){j.hasImageExtension(l==null?void 0:l.name)?j.generateThumb(l,s,s).then(r=>{t(2,i=r)}).catch(r=>{t(2,i=""),console.warn("Unable to generate thumb: ",r)}):t(2,i="")}return n.$$set=r=>{"file"in r&&t(0,l=r.file),"size"in r&&t(1,s=r.size)},n.$$.update=()=>{n.$$.dirty&1&&typeof l<"u"&&o()},t(2,i=""),[l,s,i]}class DM extends ge{constructor(e){super(),_e(this,e,OM,MM,he,{file:0,size:1})}}function Jp(n){let e;function t(s,o){return s[4]==="image"?AM:EM}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function EM(n){let e,t;return{c(){e=b("object"),t=Y("Cannot preview the file."),p(e,"title",n[2]),p(e,"data",n[1])},m(i,l){w(i,e,l),y(e,t)},p(i,l){l&4&&p(e,"title",i[2]),l&2&&p(e,"data",i[1])},d(i){i&&v(e)}}}function AM(n){let e,t,i;return{c(){e=b("img"),nn(e.src,t=n[1])||p(e,"src",t),p(e,"alt",i="Preview "+n[2])},m(l,s){w(l,e,s)},p(l,s){s&2&&!nn(e.src,t=l[1])&&p(e,"src",t),s&4&&i!==(i="Preview "+l[2])&&p(e,"alt",i)},d(l){l&&v(e)}}}function IM(n){var l;let e=(l=n[3])==null?void 0:l.isActive(),t,i=e&&Jp(n);return{c(){i&&i.c(),t=ke()},m(s,o){i&&i.m(s,o),w(s,t,o)},p(s,o){var r;o&8&&(e=(r=s[3])==null?void 0:r.isActive()),e?i?i.p(s,o):(i=Jp(s),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(s){s&&v(t),i&&i.d(s)}}}function LM(n){let e,t,i;return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","overlay-close")},m(l,s){w(l,e,s),t||(i=K(e,"click",Ye(n[0])),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function PM(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("a"),t=Y(n[2]),i=M(),l=b("i"),s=M(),o=b("div"),r=M(),a=b("button"),a.textContent="Close",p(l,"class","ri-external-link-line"),p(e,"href",n[1]),p(e,"title",n[2]),p(e,"target","_blank"),p(e,"rel","noreferrer noopener"),p(e,"class","link-hint txt-ellipsis inline-flex"),p(o,"class","flex-fill"),p(a,"type","button"),p(a,"class","btn btn-transparent")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,s,d),w(c,o,d),w(c,r,d),w(c,a,d),u||(f=K(a,"click",n[0]),u=!0)},p(c,d){d&4&&le(t,c[2]),d&2&&p(e,"href",c[1]),d&4&&p(e,"title",c[2])},d(c){c&&(v(e),v(s),v(o),v(r),v(a)),u=!1,f()}}}function NM(n){let e,t,i={class:"preview preview-"+n[4],btnClose:!1,popup:!0,$$slots:{footer:[PM],header:[LM],default:[IM]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[7](e),e.$on("show",n[8]),e.$on("hide",n[9]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&16&&(o.class="preview preview-"+l[4]),s&1054&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[7](null),z(e,l)}}}function FM(n,e,t){let i,l,s,o,r="";function a(m){m!==""&&(t(1,r=m),o==null||o.show())}function u(){return o==null?void 0:o.hide()}function f(m){te[m?"unshift":"push"](()=>{o=m,t(3,o)})}function c(m){Ae.call(this,n,m)}function d(m){Ae.call(this,n,m)}return n.$$.update=()=>{n.$$.dirty&2&&t(6,i=r.indexOf("?")),n.$$.dirty&66&&t(2,l=r.substring(r.lastIndexOf("/")+1,i>0?i:void 0)),n.$$.dirty&4&&t(4,s=j.getFileType(l))},[u,r,l,o,s,a,i,f,c,d]}class RM extends ge{constructor(e){super(),_e(this,e,FM,NM,he,{show:5,hide:0})}get show(){return this.$$.ctx[5]}get hide(){return this.$$.ctx[0]}}function qM(n){let e,t,i,l,s;function o(u,f){return u[3]==="image"?VM:u[3]==="video"||u[3]==="audio"?zM:HM}let r=o(n),a=r(n);return{c(){e=b("a"),a.c(),p(e,"draggable",!1),p(e,"class",t="thumb "+(n[1]?`thumb-${n[1]}`:"")),p(e,"href",n[6]),p(e,"target","_blank"),p(e,"rel","noreferrer"),p(e,"title",i=(n[7]?"Preview":"Download")+" "+n[0])},m(u,f){w(u,e,f),a.m(e,null),l||(s=K(e,"click",fn(n[11])),l=!0)},p(u,f){r===(r=o(u))&&a?a.p(u,f):(a.d(1),a=r(u),a&&(a.c(),a.m(e,null))),f&2&&t!==(t="thumb "+(u[1]?`thumb-${u[1]}`:""))&&p(e,"class",t),f&64&&p(e,"href",u[6]),f&129&&i!==(i=(u[7]?"Preview":"Download")+" "+u[0])&&p(e,"title",i)},d(u){u&&v(e),a.d(),l=!1,s()}}}function jM(n){let e,t;return{c(){e=b("div"),p(e,"class",t="thumb "+(n[1]?`thumb-${n[1]}`:""))},m(i,l){w(i,e,l)},p(i,l){l&2&&t!==(t="thumb "+(i[1]?`thumb-${i[1]}`:""))&&p(e,"class",t)},d(i){i&&v(e)}}}function HM(n){let e;return{c(){e=b("i"),p(e,"class","ri-file-3-line")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function zM(n){let e;return{c(){e=b("i"),p(e,"class","ri-video-line")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function VM(n){let e,t,i,l,s;return{c(){e=b("img"),p(e,"draggable",!1),nn(e.src,t=n[5])||p(e,"src",t),p(e,"alt",n[0]),p(e,"title",i="Preview "+n[0]),p(e,"loading","lazy")},m(o,r){w(o,e,r),l||(s=K(e,"error",n[8]),l=!0)},p(o,r){r&32&&!nn(e.src,t=o[5])&&p(e,"src",t),r&1&&p(e,"alt",o[0]),r&1&&i!==(i="Preview "+o[0])&&p(e,"title",i)},d(o){o&&v(e),l=!1,s()}}}function Zp(n){let e,t,i={};return e=new RM({props:i}),n[12](e),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,s){const o={};e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[12](null),z(e,l)}}}function BM(n){let e,t,i;function l(a,u){return a[2]?jM:qM}let s=l(n),o=s(n),r=n[7]&&Zp(n);return{c(){o.c(),e=M(),r&&r.c(),t=ke()},m(a,u){o.m(a,u),w(a,e,u),r&&r.m(a,u),w(a,t,u),i=!0},p(a,[u]){s===(s=l(a))&&o?o.p(a,u):(o.d(1),o=s(a),o&&(o.c(),o.m(e.parentNode,e))),a[7]?r?(r.p(a,u),u&128&&A(r,1)):(r=Zp(a),r.c(),A(r,1),r.m(t.parentNode,t)):r&&(oe(),I(r,1,1,()=>{r=null}),re())},i(a){i||(A(r),i=!0)},o(a){I(r),i=!1},d(a){a&&(v(e),v(t)),o.d(a),r&&r.d(a)}}}function UM(n,e,t){let i,l,{record:s=null}=e,{filename:o=""}=e,{size:r=""}=e,a,u="",f="",c="",d=!0;m();async function m(){t(2,d=!0);try{t(10,c=await fe.getAdminFileToken(s.collectionId))}catch(k){console.warn("File token failure:",k)}t(2,d=!1)}function h(){t(5,u="")}const _=k=>{l&&(k.preventDefault(),a==null||a.show(f))};function g(k){te[k?"unshift":"push"](()=>{a=k,t(4,a)})}return n.$$set=k=>{"record"in k&&t(9,s=k.record),"filename"in k&&t(0,o=k.filename),"size"in k&&t(1,r=k.size)},n.$$.update=()=>{n.$$.dirty&1&&t(3,i=j.getFileType(o)),n.$$.dirty&9&&t(7,l=["image","audio","video"].includes(i)||o.endsWith(".pdf")),n.$$.dirty&1541&&t(6,f=d?"":fe.files.getUrl(s,o,{token:c})),n.$$.dirty&1541&&t(5,u=d?"":fe.files.getUrl(s,o,{thumb:"100x100",token:c}))},[o,r,d,i,a,u,f,l,h,s,c,_,g]}class Qa extends ge{constructor(e){super(),_e(this,e,UM,BM,he,{record:9,filename:0,size:1})}}function Gp(n,e,t){const i=n.slice();return i[29]=e[t],i[31]=t,i}function Xp(n,e,t){const i=n.slice();i[34]=e[t],i[31]=t;const l=i[2].includes(i[34]);return i[35]=l,i}function WM(n){let e,t,i;function l(){return n[17](n[34])}return{c(){e=b("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-transparent btn-hint btn-sm btn-circle btn-remove")},m(s,o){w(s,e,o),t||(i=[ve(Le.call(null,e,"Remove file")),K(e,"click",l)],t=!0)},p(s,o){n=s},d(s){s&&v(e),t=!1,we(i)}}}function YM(n){let e,t,i;function l(){return n[16](n[34])}return{c(){e=b("button"),e.innerHTML='Restore',p(e,"type","button"),p(e,"class","btn btn-sm btn-danger btn-transparent")},m(s,o){w(s,e,o),t||(i=K(e,"click",l),t=!0)},p(s,o){n=s},d(s){s&&v(e),t=!1,i()}}}function KM(n){let e,t,i,l,s,o,r=n[34]+"",a,u,f,c,d,m;i=new Qa({props:{record:n[3],filename:n[34]}});function h(k,S){return k[35]?YM:WM}let _=h(n),g=_(n);return{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),o=b("a"),a=Y(r),c=M(),d=b("div"),g.c(),ee(t,"fade",n[35]),p(o,"draggable",!1),p(o,"href",u=fe.files.getUrl(n[3],n[34],{token:n[10]})),p(o,"class",f="txt-ellipsis "+(n[35]?"txt-strikethrough txt-hint":"link-primary")),p(o,"title","Download"),p(o,"target","_blank"),p(o,"rel","noopener noreferrer"),p(s,"class","content"),p(d,"class","actions"),p(e,"class","list-item"),ee(e,"dragging",n[32]),ee(e,"dragover",n[33])},m(k,S){w(k,e,S),y(e,t),H(i,t,null),y(e,l),y(e,s),y(s,o),y(o,a),y(e,c),y(e,d),g.m(d,null),m=!0},p(k,S){const T={};S[0]&8&&(T.record=k[3]),S[0]&32&&(T.filename=k[34]),i.$set(T),(!m||S[0]&36)&&ee(t,"fade",k[35]),(!m||S[0]&32)&&r!==(r=k[34]+"")&&le(a,r),(!m||S[0]&1064&&u!==(u=fe.files.getUrl(k[3],k[34],{token:k[10]})))&&p(o,"href",u),(!m||S[0]&36&&f!==(f="txt-ellipsis "+(k[35]?"txt-strikethrough txt-hint":"link-primary")))&&p(o,"class",f),_===(_=h(k))&&g?g.p(k,S):(g.d(1),g=_(k),g&&(g.c(),g.m(d,null))),(!m||S[1]&2)&&ee(e,"dragging",k[32]),(!m||S[1]&4)&&ee(e,"dragover",k[33])},i(k){m||(A(i.$$.fragment,k),m=!0)},o(k){I(i.$$.fragment,k),m=!1},d(k){k&&v(e),z(i),g.d()}}}function Qp(n,e){let t,i,l,s;function o(a){e[18](a)}let r={group:e[4].name+"_uploaded",index:e[31],disabled:!e[6],$$slots:{default:[KM,({dragging:a,dragover:u})=>({32:a,33:u}),({dragging:a,dragover:u})=>[0,(a?2:0)|(u?4:0)]]},$$scope:{ctx:e}};return e[0]!==void 0&&(r.list=e[0]),i=new As({props:r}),te.push(()=>be(i,"list",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u[0]&16&&(f.group=e[4].name+"_uploaded"),u[0]&32&&(f.index=e[31]),u[0]&64&&(f.disabled=!e[6]),u[0]&1068|u[1]&70&&(f.$$scope={dirty:u,ctx:e}),!l&&u[0]&1&&(l=!0,f.list=e[0],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function JM(n){let e,t,i,l,s,o,r,a,u=n[29].name+"",f,c,d,m,h,_,g;i=new DM({props:{file:n[29]}});function k(){return n[19](n[31])}return{c(){e=b("div"),t=b("figure"),V(i.$$.fragment),l=M(),s=b("div"),o=b("small"),o.textContent="New",r=M(),a=b("span"),f=Y(u),d=M(),m=b("button"),m.innerHTML='',p(t,"class","thumb"),p(o,"class","label label-success m-r-5"),p(a,"class","txt"),p(s,"class","filename m-r-auto"),p(s,"title",c=n[29].name),p(m,"type","button"),p(m,"class","btn btn-transparent btn-hint btn-sm btn-circle btn-remove"),p(e,"class","list-item"),ee(e,"dragging",n[32]),ee(e,"dragover",n[33])},m(S,T){w(S,e,T),y(e,t),H(i,t,null),y(e,l),y(e,s),y(s,o),y(s,r),y(s,a),y(a,f),y(e,d),y(e,m),h=!0,_||(g=[ve(Le.call(null,m,"Remove file")),K(m,"click",k)],_=!0)},p(S,T){n=S;const $={};T[0]&2&&($.file=n[29]),i.$set($),(!h||T[0]&2)&&u!==(u=n[29].name+"")&&le(f,u),(!h||T[0]&2&&c!==(c=n[29].name))&&p(s,"title",c),(!h||T[1]&2)&&ee(e,"dragging",n[32]),(!h||T[1]&4)&&ee(e,"dragover",n[33])},i(S){h||(A(i.$$.fragment,S),h=!0)},o(S){I(i.$$.fragment,S),h=!1},d(S){S&&v(e),z(i),_=!1,we(g)}}}function xp(n,e){let t,i,l,s;function o(a){e[20](a)}let r={group:e[4].name+"_new",index:e[31],disabled:!e[6],$$slots:{default:[JM,({dragging:a,dragover:u})=>({32:a,33:u}),({dragging:a,dragover:u})=>[0,(a?2:0)|(u?4:0)]]},$$scope:{ctx:e}};return e[1]!==void 0&&(r.list=e[1]),i=new As({props:r}),te.push(()=>be(i,"list",o)),{key:n,first:null,c(){t=ke(),V(i.$$.fragment),this.first=t},m(a,u){w(a,t,u),H(i,a,u),s=!0},p(a,u){e=a;const f={};u[0]&16&&(f.group=e[4].name+"_new"),u[0]&2&&(f.index=e[31]),u[0]&64&&(f.disabled=!e[6]),u[0]&2|u[1]&70&&(f.$$scope={dirty:u,ctx:e}),!l&&u[0]&2&&(l=!0,f.list=e[1],ye(()=>l=!1)),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){I(i.$$.fragment,a),s=!1},d(a){a&&v(t),z(i,a)}}}function ZM(n){let e,t,i,l,s,o=n[4].name+"",r,a,u,f,c=[],d=new Map,m,h=[],_=new Map,g,k,S,T,$,C,D,O,E,L,F,P,N=pe(n[5]);const R=J=>J[34]+J[3].id;for(let J=0;JJ[29].name+J[31];for(let J=0;J{D[F]=null}),re(),o=D[s],o?o.p(E,L):(o=D[s]=C[s](E),o.c()),A(o,1),o.m(r.parentNode,r))},i(E){S||(A(o),S=!0)},o(E){I(o),S=!1},d(E){E&&(v(e),v(l),v(r),v(a)),D[s].d(E),T=!1,we($)}}}function uA(n){let e,t,i,l,s,o;return e=new me({props:{class:"form-field required",name:n[1]+".subject",$$slots:{default:[lA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),i=new me({props:{class:"form-field required",name:n[1]+".actionUrl",$$slots:{default:[sA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),s=new me({props:{class:"form-field m-0 required",name:n[1]+".body",$$slots:{default:[aA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(r,a){H(e,r,a),w(r,t,a),H(i,r,a),w(r,l,a),H(s,r,a),o=!0},p(r,a){const u={};a[0]&2&&(u.name=r[1]+".subject"),a[0]&1|a[1]&3&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};a[0]&2&&(f.name=r[1]+".actionUrl"),a[0]&1|a[1]&3&&(f.$$scope={dirty:a,ctx:r}),i.$set(f);const c={};a[0]&2&&(c.name=r[1]+".body"),a[0]&49|a[1]&3&&(c.$$scope={dirty:a,ctx:r}),s.$set(c)},i(r){o||(A(e.$$.fragment,r),A(i.$$.fragment,r),A(s.$$.fragment,r),o=!0)},o(r){I(e.$$.fragment,r),I(i.$$.fragment,r),I(s.$$.fragment,r),o=!1},d(r){r&&(v(t),v(l)),z(e,r),z(i,r),z(s,r)}}}function Qh(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function fA(n){let e,t,i,l,s,o,r,a,u,f=n[6]&&Qh();return{c(){e=b("div"),t=b("i"),i=M(),l=b("span"),s=Y(n[2]),o=M(),r=b("div"),a=M(),f&&f.c(),u=ke(),p(t,"class","ri-draft-line"),p(l,"class","txt"),p(e,"class","inline-flex"),p(r,"class","flex-fill")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),y(l,s),w(c,o,d),w(c,r,d),w(c,a,d),f&&f.m(c,d),w(c,u,d)},p(c,d){d[0]&4&&le(s,c[2]),c[6]?f?d[0]&64&&A(f,1):(f=Qh(),f.c(),A(f,1),f.m(u.parentNode,u)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(o),v(r),v(a),v(u)),f&&f.d(c)}}}function cA(n){let e,t;const i=[n[8]];let l={$$slots:{header:[fA],default:[uA]},$$scope:{ctx:n}};for(let s=0;st(12,o=U));let{key:r}=e,{title:a}=e,{config:u={}}=e,f,c=xh,d=!1;function m(){f==null||f.expand()}function h(){f==null||f.collapse()}function _(){f==null||f.collapseSiblings()}async function g(){c||d||(t(5,d=!0),t(4,c=(await rt(()=>import("./CodeEditor-d15a301a.js"),["./CodeEditor-d15a301a.js","./index-9ee652b3.js"],import.meta.url)).default),xh=c,t(5,d=!1))}function k(U){j.copyToClipboard(U),$o(`Copied ${U} to clipboard`,2e3)}g();function S(){u.subject=this.value,t(0,u)}const T=()=>k("{APP_NAME}"),$=()=>k("{APP_URL}");function C(){u.actionUrl=this.value,t(0,u)}const D=()=>k("{APP_NAME}"),O=()=>k("{APP_URL}"),E=()=>k("{TOKEN}");function L(U){n.$$.not_equal(u.body,U)&&(u.body=U,t(0,u))}function F(){u.body=this.value,t(0,u)}const P=()=>k("{APP_NAME}"),N=()=>k("{APP_URL}"),R=()=>k("{TOKEN}"),q=()=>k("{ACTION_URL}");function W(U){te[U?"unshift":"push"](()=>{f=U,t(3,f)})}function J(U){Ae.call(this,n,U)}function G(U){Ae.call(this,n,U)}function B(U){Ae.call(this,n,U)}return n.$$set=U=>{e=Ne(Ne({},e),Kt(U)),t(8,s=Ge(e,l)),"key"in U&&t(1,r=U.key),"title"in U&&t(2,a=U.title),"config"in U&&t(0,u=U.config)},n.$$.update=()=>{n.$$.dirty[0]&4098&&t(6,i=!j.isEmpty(j.getNestedVal(o,r))),n.$$.dirty[0]&3&&(u.enabled||ii(r))},[u,r,a,f,c,d,i,k,s,m,h,_,o,S,T,$,C,D,O,E,L,F,P,N,R,q,W,J,G,B]}class Fr extends ge{constructor(e){super(),_e(this,e,dA,cA,he,{key:1,title:2,config:0,expand:9,collapse:10,collapseSiblings:11},null,[-1,-1])}get expand(){return this.$$.ctx[9]}get collapse(){return this.$$.ctx[10]}get collapseSiblings(){return this.$$.ctx[11]}}function e_(n,e,t){const i=n.slice();return i[21]=e[t],i}function t_(n,e){let t,i,l,s,o,r=e[21].label+"",a,u,f,c,d,m;return c=r0(e[11][0]),{key:n,first:null,c(){t=b("div"),i=b("input"),s=M(),o=b("label"),a=Y(r),f=M(),p(i,"type","radio"),p(i,"name","template"),p(i,"id",l=e[20]+e[21].value),i.__value=e[21].value,ue(i,i.__value),p(o,"for",u=e[20]+e[21].value),p(t,"class","form-field-block"),c.p(i),this.first=t},m(h,_){w(h,t,_),y(t,i),i.checked=i.__value===e[2],y(t,s),y(t,o),y(o,a),y(t,f),d||(m=K(i,"change",e[10]),d=!0)},p(h,_){e=h,_&1048576&&l!==(l=e[20]+e[21].value)&&p(i,"id",l),_&4&&(i.checked=i.__value===e[2]),_&1048576&&u!==(u=e[20]+e[21].value)&&p(o,"for",u)},d(h){h&&v(t),c.r(),d=!1,m()}}}function pA(n){let e=[],t=new Map,i,l=pe(n[7]);const s=o=>o[21].value;for(let o=0;o({20:a}),({uniqueId:a})=>a?1048576:0]},$$scope:{ctx:n}}}),l=new me({props:{class:"form-field required m-0",name:"email",$$slots:{default:[mA,({uniqueId:a})=>({20:a}),({uniqueId:a})=>a?1048576:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),V(t.$$.fragment),i=M(),V(l.$$.fragment),p(e,"id",n[6]),p(e,"autocomplete","off")},m(a,u){w(a,e,u),H(t,e,null),y(e,i),H(l,e,null),s=!0,o||(r=K(e,"submit",Ye(n[13])),o=!0)},p(a,u){const f={};u&17825796&&(f.$$scope={dirty:u,ctx:a}),t.$set(f);const c={};u&17825794&&(c.$$scope={dirty:u,ctx:a}),l.$set(c)},i(a){s||(A(t.$$.fragment,a),A(l.$$.fragment,a),s=!0)},o(a){I(t.$$.fragment,a),I(l.$$.fragment,a),s=!1},d(a){a&&v(e),z(t),z(l),o=!1,r()}}}function _A(n){let e;return{c(){e=b("h4"),e.textContent="Send test email",p(e,"class","center txt-break")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function gA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("button"),t=Y("Close"),i=M(),l=b("button"),s=b("i"),o=M(),r=b("span"),r.textContent="Send",p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[4],p(s,"class","ri-mail-send-line"),p(r,"class","txt"),p(l,"type","submit"),p(l,"form",n[6]),p(l,"class","btn btn-expanded"),l.disabled=a=!n[5]||n[4],ee(l,"btn-loading",n[4])},m(c,d){w(c,e,d),y(e,t),w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=K(e,"click",n[0]),u=!0)},p(c,d){d&16&&(e.disabled=c[4]),d&48&&a!==(a=!c[5]||c[4])&&(l.disabled=a),d&16&&ee(l,"btn-loading",c[4])},d(c){c&&(v(e),v(i),v(l)),u=!1,f()}}}function bA(n){let e,t,i={class:"overlay-panel-sm email-test-popup",overlayClose:!n[4],escClose:!n[4],beforeHide:n[14],popup:!0,$$slots:{footer:[gA],header:[_A],default:[hA]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[15](e),e.$on("show",n[16]),e.$on("hide",n[17]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&16&&(o.overlayClose=!l[4]),s&16&&(o.escClose=!l[4]),s&16&&(o.beforeHide=l[14]),s&16777270&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[15](null),z(e,l)}}}const Rr="last_email_test",n_="email_test_request";function yA(n,e,t){let i;const l=ot(),s="email_test_"+j.randomString(5),o=[{label:'"Verification" template',value:"verification"},{label:'"Password reset" template',value:"password-reset"},{label:'"Confirm email change" template',value:"email-change"}];let r,a=localStorage.getItem(Rr),u=o[0].value,f=!1,c=null;function d(O="",E=""){t(1,a=O||localStorage.getItem(Rr)),t(2,u=E||o[0].value),Gt({}),r==null||r.show()}function m(){return clearTimeout(c),r==null?void 0:r.hide()}async function h(){if(!(!i||f)){t(4,f=!0),localStorage==null||localStorage.setItem(Rr,a),clearTimeout(c),c=setTimeout(()=>{fe.cancelRequest(n_),ni("Test email send timeout.")},3e4);try{await fe.settings.testEmail(a,u,{$cancelKey:n_}),It("Successfully sent test email."),l("submit"),t(4,f=!1),await Qt(),m()}catch(O){t(4,f=!1),fe.error(O)}clearTimeout(c)}}const _=[[]];function g(){u=this.__value,t(2,u)}function k(){a=this.value,t(1,a)}const S=()=>h(),T=()=>!f;function $(O){te[O?"unshift":"push"](()=>{r=O,t(3,r)})}function C(O){Ae.call(this,n,O)}function D(O){Ae.call(this,n,O)}return n.$$.update=()=>{n.$$.dirty&6&&t(5,i=!!a&&!!u)},[m,a,u,r,f,i,s,o,h,d,g,_,k,S,T,$,C,D]}class kA extends ge{constructor(e){super(),_e(this,e,yA,bA,he,{show:9,hide:0})}get show(){return this.$$.ctx[9]}get hide(){return this.$$.ctx[0]}}function vA(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L,F;i=new me({props:{class:"form-field required",name:"meta.senderName",$$slots:{default:[SA,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:"meta.senderAddress",$$slots:{default:[$A,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}});function P(x){n[15](x)}let N={single:!0,key:"meta.verificationTemplate",title:'Default "Verification" email template'};n[0].meta.verificationTemplate!==void 0&&(N.config=n[0].meta.verificationTemplate),u=new Fr({props:N}),te.push(()=>be(u,"config",P));function R(x){n[16](x)}let q={single:!0,key:"meta.resetPasswordTemplate",title:'Default "Password reset" email template'};n[0].meta.resetPasswordTemplate!==void 0&&(q.config=n[0].meta.resetPasswordTemplate),d=new Fr({props:q}),te.push(()=>be(d,"config",R));function W(x){n[17](x)}let J={single:!0,key:"meta.confirmEmailChangeTemplate",title:'Default "Confirm email change" email template'};n[0].meta.confirmEmailChangeTemplate!==void 0&&(J.config=n[0].meta.confirmEmailChangeTemplate),_=new Fr({props:J}),te.push(()=>be(_,"config",W)),$=new me({props:{class:"form-field form-field-toggle m-b-sm",$$slots:{default:[TA,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}});let G=n[0].smtp.enabled&&i_(n);function B(x,se){return x[5]?FA:NA}let U=B(n),ae=U(n);return{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),c=M(),V(d.$$.fragment),h=M(),V(_.$$.fragment),k=M(),S=b("hr"),T=M(),V($.$$.fragment),C=M(),G&&G.c(),D=M(),O=b("div"),E=b("div"),L=M(),ae.c(),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(e,"class","grid m-b-base"),p(a,"class","accordions"),p(E,"class","flex-fill"),p(O,"class","flex")},m(x,se){w(x,e,se),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),w(x,r,se),w(x,a,se),H(u,a,null),y(a,c),H(d,a,null),y(a,h),H(_,a,null),w(x,k,se),w(x,S,se),w(x,T,se),H($,x,se),w(x,C,se),G&&G.m(x,se),w(x,D,se),w(x,O,se),y(O,E),y(O,L),ae.m(O,null),F=!0},p(x,se){const De={};se[0]&1|se[1]&24&&(De.$$scope={dirty:se,ctx:x}),i.$set(De);const je={};se[0]&1|se[1]&24&&(je.$$scope={dirty:se,ctx:x}),o.$set(je);const Ve={};!f&&se[0]&1&&(f=!0,Ve.config=x[0].meta.verificationTemplate,ye(()=>f=!1)),u.$set(Ve);const Ze={};!m&&se[0]&1&&(m=!0,Ze.config=x[0].meta.resetPasswordTemplate,ye(()=>m=!1)),d.$set(Ze);const tt={};!g&&se[0]&1&&(g=!0,tt.config=x[0].meta.confirmEmailChangeTemplate,ye(()=>g=!1)),_.$set(tt);const Xe={};se[0]&1|se[1]&24&&(Xe.$$scope={dirty:se,ctx:x}),$.$set(Xe),x[0].smtp.enabled?G?(G.p(x,se),se[0]&1&&A(G,1)):(G=i_(x),G.c(),A(G,1),G.m(D.parentNode,D)):G&&(oe(),I(G,1,1,()=>{G=null}),re()),U===(U=B(x))&&ae?ae.p(x,se):(ae.d(1),ae=U(x),ae&&(ae.c(),ae.m(O,null)))},i(x){F||(A(i.$$.fragment,x),A(o.$$.fragment,x),A(u.$$.fragment,x),A(d.$$.fragment,x),A(_.$$.fragment,x),A($.$$.fragment,x),A(G),F=!0)},o(x){I(i.$$.fragment,x),I(o.$$.fragment,x),I(u.$$.fragment,x),I(d.$$.fragment,x),I(_.$$.fragment,x),I($.$$.fragment,x),I(G),F=!1},d(x){x&&(v(e),v(r),v(a),v(k),v(S),v(T),v(C),v(D),v(O)),z(i),z(o),z(u),z(d),z(_),z($,x),G&&G.d(x),ae.d()}}}function wA(n){let e;return{c(){e=b("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function SA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Sender name"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].meta.senderName),r||(a=K(s,"input",n[13]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].meta.senderName&&ue(s,u[0].meta.senderName)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function $A(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Sender address"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","email"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].meta.senderAddress),r||(a=K(s,"input",n[14]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].meta.senderAddress&&ue(s,u[0].meta.senderAddress)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function TA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.innerHTML="Use SMTP mail server (recommended)",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[34]),e.required=!0,p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[34])},m(c,d){w(c,e,d),e.checked=n[0].smtp.enabled,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[18]),ve(Le.call(null,r,{text:'By default PocketBase uses the unix "sendmail" command for sending emails. For better emails deliverability it is recommended to use a SMTP mail server.',position:"top"}))],u=!0)},p(c,d){d[1]&8&&t!==(t=c[34])&&p(e,"id",t),d[0]&1&&(e.checked=c[0].smtp.enabled),d[1]&8&&a!==(a=c[34])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function i_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$;l=new me({props:{class:"form-field required",name:"smtp.host",$$slots:{default:[CA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field required",name:"smtp.port",$$slots:{default:[MA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),f=new me({props:{class:"form-field",name:"smtp.username",$$slots:{default:[OA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),m=new me({props:{class:"form-field",name:"smtp.password",$$slots:{default:[DA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}});function C(L,F){return L[4]?AA:EA}let D=C(n),O=D(n),E=n[4]&&l_(n);return{c(){e=b("div"),t=b("div"),i=b("div"),V(l.$$.fragment),s=M(),o=b("div"),V(r.$$.fragment),a=M(),u=b("div"),V(f.$$.fragment),c=M(),d=b("div"),V(m.$$.fragment),h=M(),_=b("button"),O.c(),g=M(),E&&E.c(),p(i,"class","col-lg-4"),p(o,"class","col-lg-2"),p(u,"class","col-lg-3"),p(d,"class","col-lg-3"),p(t,"class","grid"),p(_,"type","button"),p(_,"class","btn btn-sm btn-secondary m-t-sm m-b-sm")},m(L,F){w(L,e,F),y(e,t),y(t,i),H(l,i,null),y(t,s),y(t,o),H(r,o,null),y(t,a),y(t,u),H(f,u,null),y(t,c),y(t,d),H(m,d,null),y(e,h),y(e,_),O.m(_,null),y(e,g),E&&E.m(e,null),S=!0,T||($=K(_,"click",Ye(n[23])),T=!0)},p(L,F){const P={};F[0]&1|F[1]&24&&(P.$$scope={dirty:F,ctx:L}),l.$set(P);const N={};F[0]&1|F[1]&24&&(N.$$scope={dirty:F,ctx:L}),r.$set(N);const R={};F[0]&1|F[1]&24&&(R.$$scope={dirty:F,ctx:L}),f.$set(R);const q={};F[0]&1|F[1]&24&&(q.$$scope={dirty:F,ctx:L}),m.$set(q),D!==(D=C(L))&&(O.d(1),O=D(L),O&&(O.c(),O.m(_,null))),L[4]?E?(E.p(L,F),F[0]&16&&A(E,1)):(E=l_(L),E.c(),A(E,1),E.m(e,null)):E&&(oe(),I(E,1,1,()=>{E=null}),re())},i(L){S||(A(l.$$.fragment,L),A(r.$$.fragment,L),A(f.$$.fragment,L),A(m.$$.fragment,L),A(E),L&&Ke(()=>{S&&(k||(k=Pe(e,et,{duration:150},!0)),k.run(1))}),S=!0)},o(L){I(l.$$.fragment,L),I(r.$$.fragment,L),I(f.$$.fragment,L),I(m.$$.fragment,L),I(E),L&&(k||(k=Pe(e,et,{duration:150},!1)),k.run(0)),S=!1},d(L){L&&v(e),z(l),z(r),z(f),z(m),O.d(),E&&E.d(),L&&k&&k.end(),T=!1,$()}}}function CA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("SMTP server host"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.host),r||(a=K(s,"input",n[19]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].smtp.host&&ue(s,u[0].smtp.host)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function MA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Port"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","number"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.port),r||(a=K(s,"input",n[20]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&st(s.value)!==u[0].smtp.port&&ue(s,u[0].smtp.port)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function OA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Username"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34])},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.username),r||(a=K(s,"input",n[21]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].smtp.username&&ue(s,u[0].smtp.username)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function DA(n){let e,t,i,l,s,o,r;function a(f){n[22](f)}let u={id:n[34]};return n[0].smtp.password!==void 0&&(u.value=n[0].smtp.password),s=new tu({props:u}),te.push(()=>be(s,"value",a)),{c(){e=b("label"),t=Y("Password"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.value=f[0].smtp.password,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function EA(n){let e,t,i;return{c(){e=b("span"),e.textContent="Show more options",t=M(),i=b("i"),p(e,"class","txt"),p(i,"class","ri-arrow-down-s-line")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function AA(n){let e,t,i;return{c(){e=b("span"),e.textContent="Hide more options",t=M(),i=b("i"),p(e,"class","txt"),p(i,"class","ri-arrow-up-s-line")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function l_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return i=new me({props:{class:"form-field",name:"smtp.tls",$$slots:{default:[IA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"smtp.authMethod",$$slots:{default:[LA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field",name:"smtp.localName",$$slots:{default:[PA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),f=M(),c=b("div"),p(t,"class","col-lg-3"),p(s,"class","col-lg-3"),p(a,"class","col-lg-6"),p(c,"class","col-lg-12"),p(e,"class","grid")},m(h,_){w(h,e,_),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),y(e,f),y(e,c),m=!0},p(h,_){const g={};_[0]&1|_[1]&24&&(g.$$scope={dirty:_,ctx:h}),i.$set(g);const k={};_[0]&1|_[1]&24&&(k.$$scope={dirty:_,ctx:h}),o.$set(k);const S={};_[0]&1|_[1]&24&&(S.$$scope={dirty:_,ctx:h}),u.$set(S)},i(h){m||(A(i.$$.fragment,h),A(o.$$.fragment,h),A(u.$$.fragment,h),h&&Ke(()=>{m&&(d||(d=Pe(e,et,{duration:150},!0)),d.run(1))}),m=!0)},o(h){I(i.$$.fragment,h),I(o.$$.fragment,h),I(u.$$.fragment,h),h&&(d||(d=Pe(e,et,{duration:150},!1)),d.run(0)),m=!1},d(h){h&&v(e),z(i),z(o),z(u),h&&d&&d.end()}}}function IA(n){let e,t,i,l,s,o,r;function a(f){n[24](f)}let u={id:n[34],items:n[7]};return n[0].smtp.tls!==void 0&&(u.keyOfSelected=n[0].smtp.tls),s=new gi({props:u}),te.push(()=>be(s,"keyOfSelected",a)),{c(){e=b("label"),t=Y("TLS encryption"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.keyOfSelected=f[0].smtp.tls,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function LA(n){let e,t,i,l,s,o,r;function a(f){n[25](f)}let u={id:n[34],items:n[8]};return n[0].smtp.authMethod!==void 0&&(u.keyOfSelected=n[0].smtp.authMethod),s=new gi({props:u}),te.push(()=>be(s,"keyOfSelected",a)),{c(){e=b("label"),t=Y("AUTH method"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.keyOfSelected=f[0].smtp.authMethod,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function PA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=b("span"),t.textContent="EHLO/HELO domain",i=M(),l=b("i"),o=M(),r=b("input"),p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[34]),p(r,"type","text"),p(r,"id",a=n[34]),p(r,"placeholder","Default to localhost")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,o,d),w(c,r,d),ue(r,n[0].smtp.localName),u||(f=[ve(Le.call(null,l,{text:"Some SMTP servers, such as the Gmail SMTP-relay, requires a proper domain name in the inital EHLO/HELO exchange and will reject attempts to use localhost.",position:"top"})),K(r,"input",n[26])],u=!0)},p(c,d){d[1]&8&&s!==(s=c[34])&&p(e,"for",s),d[1]&8&&a!==(a=c[34])&&p(r,"id",a),d[0]&1&&r.value!==c[0].smtp.localName&&ue(r,c[0].smtp.localName)},d(c){c&&(v(e),v(o),v(r)),u=!1,we(f)}}}function NA(n){let e,t,i;return{c(){e=b("button"),e.innerHTML=' Send test email',p(e,"type","button"),p(e,"class","btn btn-expanded btn-outline")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[29]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function FA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),s.textContent="Save changes",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent btn-hint"),e.disabled=n[3],p(s,"class","txt"),p(l,"type","submit"),p(l,"class","btn btn-expanded"),l.disabled=o=!n[5]||n[3],ee(l,"btn-loading",n[3])},m(u,f){w(u,e,f),y(e,t),w(u,i,f),w(u,l,f),y(l,s),r||(a=[K(e,"click",n[27]),K(l,"click",n[28])],r=!0)},p(u,f){f[0]&8&&(e.disabled=u[3]),f[0]&40&&o!==(o=!u[5]||u[3])&&(l.disabled=o),f[0]&8&&ee(l,"btn-loading",u[3])},d(u){u&&(v(e),v(i),v(l)),r=!1,we(a)}}}function RA(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g;const k=[wA,vA],S=[];function T($,C){return $[2]?0:1}return d=T(n),m=S[d]=k[d](n),{c(){e=b("header"),t=b("nav"),i=b("div"),i.textContent="Settings",l=M(),s=b("div"),o=Y(n[6]),r=M(),a=b("div"),u=b("form"),f=b("div"),f.innerHTML="

    Configure common settings for sending emails.

    ",c=M(),m.c(),p(i,"class","breadcrumb-item"),p(s,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","content txt-xl m-b-base"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m($,C){w($,e,C),y(e,t),y(t,i),y(t,l),y(t,s),y(s,o),w($,r,C),w($,a,C),y(a,u),y(u,f),y(u,c),S[d].m(u,null),h=!0,_||(g=K(u,"submit",Ye(n[30])),_=!0)},p($,C){(!h||C[0]&64)&&le(o,$[6]);let D=d;d=T($),d===D?S[d].p($,C):(oe(),I(S[D],1,1,()=>{S[D]=null}),re(),m=S[d],m?m.p($,C):(m=S[d]=k[d]($),m.c()),A(m,1),m.m(u,null))},i($){h||(A(m),h=!0)},o($){I(m),h=!1},d($){$&&(v(e),v(r),v(a)),S[d].d(),_=!1,g()}}}function qA(n){let e,t,i,l,s,o;e=new bi({}),i=new gn({props:{$$slots:{default:[RA]},$$scope:{ctx:n}}});let r={};return s=new kA({props:r}),n[31](s),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(a,u){H(e,a,u),w(a,t,u),H(i,a,u),w(a,l,u),H(s,a,u),o=!0},p(a,u){const f={};u[0]&127|u[1]&16&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};s.$set(c)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),A(s.$$.fragment,a),o=!0)},o(a){I(e.$$.fragment,a),I(i.$$.fragment,a),I(s.$$.fragment,a),o=!1},d(a){a&&(v(t),v(l)),z(e,a),z(i,a),n[31](null),z(s,a)}}}function jA(n,e,t){let i,l,s;We(n,Dt,x=>t(6,s=x));const o=[{label:"Auto (StartTLS)",value:!1},{label:"Always",value:!0}],r=[{label:"PLAIN (default)",value:"PLAIN"},{label:"LOGIN",value:"LOGIN"}];tn(Dt,s="Mail settings",s);let a,u={},f={},c=!1,d=!1,m=!1;h();async function h(){t(2,c=!0);try{const x=await fe.settings.getAll()||{};g(x)}catch(x){fe.error(x)}t(2,c=!1)}async function _(){if(!(d||!l)){t(3,d=!0);try{const x=await fe.settings.update(j.filterRedactedProps(f));g(x),Gt({}),It("Successfully saved mail settings.")}catch(x){fe.error(x)}t(3,d=!1)}}function g(x={}){t(0,f={meta:(x==null?void 0:x.meta)||{},smtp:(x==null?void 0:x.smtp)||{}}),f.smtp.authMethod||t(0,f.smtp.authMethod=r[0].value,f),t(11,u=JSON.parse(JSON.stringify(f)))}function k(){t(0,f=JSON.parse(JSON.stringify(u||{})))}function S(){f.meta.senderName=this.value,t(0,f)}function T(){f.meta.senderAddress=this.value,t(0,f)}function $(x){n.$$.not_equal(f.meta.verificationTemplate,x)&&(f.meta.verificationTemplate=x,t(0,f))}function C(x){n.$$.not_equal(f.meta.resetPasswordTemplate,x)&&(f.meta.resetPasswordTemplate=x,t(0,f))}function D(x){n.$$.not_equal(f.meta.confirmEmailChangeTemplate,x)&&(f.meta.confirmEmailChangeTemplate=x,t(0,f))}function O(){f.smtp.enabled=this.checked,t(0,f)}function E(){f.smtp.host=this.value,t(0,f)}function L(){f.smtp.port=st(this.value),t(0,f)}function F(){f.smtp.username=this.value,t(0,f)}function P(x){n.$$.not_equal(f.smtp.password,x)&&(f.smtp.password=x,t(0,f))}const N=()=>{t(4,m=!m)};function R(x){n.$$.not_equal(f.smtp.tls,x)&&(f.smtp.tls=x,t(0,f))}function q(x){n.$$.not_equal(f.smtp.authMethod,x)&&(f.smtp.authMethod=x,t(0,f))}function W(){f.smtp.localName=this.value,t(0,f)}const J=()=>k(),G=()=>_(),B=()=>a==null?void 0:a.show(),U=()=>_();function ae(x){te[x?"unshift":"push"](()=>{a=x,t(1,a)})}return n.$$.update=()=>{n.$$.dirty[0]&2048&&t(12,i=JSON.stringify(u)),n.$$.dirty[0]&4097&&t(5,l=i!=JSON.stringify(f))},[f,a,c,d,m,l,s,o,r,_,k,u,i,S,T,$,C,D,O,E,L,F,P,N,R,q,W,J,G,B,U,ae]}class HA extends ge{constructor(e){super(),_e(this,e,jA,qA,he,{},null,[-1,-1])}}const zA=n=>({isTesting:n&4,testError:n&2,enabled:n&1}),s_=n=>({isTesting:n[2],testError:n[1],enabled:n[0].enabled});function VA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y(n[4]),p(e,"type","checkbox"),p(e,"id",t=n[20]),e.required=!0,p(l,"for",o=n[20])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[8]),r=!0)},p(u,f){f&1048576&&t!==(t=u[20])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&16&&le(s,u[4]),f&1048576&&o!==(o=u[20])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function o_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D;return i=new me({props:{class:"form-field required",name:n[3]+".endpoint",$$slots:{default:[BA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:n[3]+".bucket",$$slots:{default:[UA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field required",name:n[3]+".region",$$slots:{default:[WA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),d=new me({props:{class:"form-field required",name:n[3]+".accessKey",$$slots:{default:[YA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),_=new me({props:{class:"form-field required",name:n[3]+".secret",$$slots:{default:[KA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),S=new me({props:{class:"form-field",name:n[3]+".forcePathStyle",$$slots:{default:[JA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),f=M(),c=b("div"),V(d.$$.fragment),m=M(),h=b("div"),V(_.$$.fragment),g=M(),k=b("div"),V(S.$$.fragment),T=M(),$=b("div"),p(t,"class","col-lg-6"),p(s,"class","col-lg-3"),p(a,"class","col-lg-3"),p(c,"class","col-lg-6"),p(h,"class","col-lg-6"),p(k,"class","col-lg-12"),p($,"class","col-lg-12"),p(e,"class","grid")},m(O,E){w(O,e,E),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),y(e,f),y(e,c),H(d,c,null),y(e,m),y(e,h),H(_,h,null),y(e,g),y(e,k),H(S,k,null),y(e,T),y(e,$),D=!0},p(O,E){const L={};E&8&&(L.name=O[3]+".endpoint"),E&1081345&&(L.$$scope={dirty:E,ctx:O}),i.$set(L);const F={};E&8&&(F.name=O[3]+".bucket"),E&1081345&&(F.$$scope={dirty:E,ctx:O}),o.$set(F);const P={};E&8&&(P.name=O[3]+".region"),E&1081345&&(P.$$scope={dirty:E,ctx:O}),u.$set(P);const N={};E&8&&(N.name=O[3]+".accessKey"),E&1081345&&(N.$$scope={dirty:E,ctx:O}),d.$set(N);const R={};E&8&&(R.name=O[3]+".secret"),E&1081345&&(R.$$scope={dirty:E,ctx:O}),_.$set(R);const q={};E&8&&(q.name=O[3]+".forcePathStyle"),E&1081345&&(q.$$scope={dirty:E,ctx:O}),S.$set(q)},i(O){D||(A(i.$$.fragment,O),A(o.$$.fragment,O),A(u.$$.fragment,O),A(d.$$.fragment,O),A(_.$$.fragment,O),A(S.$$.fragment,O),O&&Ke(()=>{D&&(C||(C=Pe(e,et,{duration:150},!0)),C.run(1))}),D=!0)},o(O){I(i.$$.fragment,O),I(o.$$.fragment,O),I(u.$$.fragment,O),I(d.$$.fragment,O),I(_.$$.fragment,O),I(S.$$.fragment,O),O&&(C||(C=Pe(e,et,{duration:150},!1)),C.run(0)),D=!1},d(O){O&&v(e),z(i),z(o),z(u),z(d),z(_),z(S),O&&C&&C.end()}}}function BA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Endpoint"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].endpoint),r||(a=K(s,"input",n[9]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].endpoint&&ue(s,u[0].endpoint)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function UA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Bucket"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].bucket),r||(a=K(s,"input",n[10]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].bucket&&ue(s,u[0].bucket)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function WA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Region"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].region),r||(a=K(s,"input",n[11]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].region&&ue(s,u[0].region)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function YA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Access key"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].accessKey),r||(a=K(s,"input",n[12]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].accessKey&&ue(s,u[0].accessKey)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function KA(n){let e,t,i,l,s,o,r;function a(f){n[13](f)}let u={id:n[20],required:!0};return n[0].secret!==void 0&&(u.value=n[0].secret),s=new tu({props:u}),te.push(()=>be(s,"value",a)),{c(){e=b("label"),t=Y("Secret"),l=M(),V(s.$$.fragment),p(e,"for",i=n[20])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c&1048576&&i!==(i=f[20]))&&p(e,"for",i);const d={};c&1048576&&(d.id=f[20]),!o&&c&1&&(o=!0,d.value=f[0].secret,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function JA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Force path-style addressing",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[20]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[20])},m(c,d){w(c,e,d),e.checked=n[0].forcePathStyle,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[14]),ve(Le.call(null,r,{text:'Forces the request to use path-style addressing, eg. "https://s3.amazonaws.com/BUCKET/KEY" instead of the default "https://BUCKET.s3.amazonaws.com/KEY".',position:"top"}))],u=!0)},p(c,d){d&1048576&&t!==(t=c[20])&&p(e,"id",t),d&1&&(e.checked=c[0].forcePathStyle),d&1048576&&a!==(a=c[20])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function ZA(n){let e,t,i,l,s;e=new me({props:{class:"form-field form-field-toggle",$$slots:{default:[VA,({uniqueId:u})=>({20:u}),({uniqueId:u})=>u?1048576:0]},$$scope:{ctx:n}}});const o=n[7].default,r=kt(o,n,n[15],s_);let a=n[0].enabled&&o_(n);return{c(){V(e.$$.fragment),t=M(),r&&r.c(),i=M(),a&&a.c(),l=ke()},m(u,f){H(e,u,f),w(u,t,f),r&&r.m(u,f),w(u,i,f),a&&a.m(u,f),w(u,l,f),s=!0},p(u,[f]){const c={};f&1081361&&(c.$$scope={dirty:f,ctx:u}),e.$set(c),r&&r.p&&(!s||f&32775)&&wt(r,o,u,u[15],s?vt(o,u[15],f,zA):St(u[15]),s_),u[0].enabled?a?(a.p(u,f),f&1&&A(a,1)):(a=o_(u),a.c(),A(a,1),a.m(l.parentNode,l)):a&&(oe(),I(a,1,1,()=>{a=null}),re())},i(u){s||(A(e.$$.fragment,u),A(r,u),A(a),s=!0)},o(u){I(e.$$.fragment,u),I(r,u),I(a),s=!1},d(u){u&&(v(t),v(i),v(l)),z(e,u),r&&r.d(u),a&&a.d(u)}}}const qr="s3_test_request";function GA(n,e,t){let{$$slots:i={},$$scope:l}=e,{originalConfig:s={}}=e,{config:o={}}=e,{configKey:r="s3"}=e,{toggleLabel:a="Enable S3"}=e,{testFilesystem:u="storage"}=e,{testError:f=null}=e,{isTesting:c=!1}=e,d=null,m=null;function h(O){t(2,c=!0),clearTimeout(m),m=setTimeout(()=>{_()},O)}async function _(){if(t(1,f=null),!o.enabled)return t(2,c=!1),f;fe.cancelRequest(qr),clearTimeout(d),d=setTimeout(()=>{fe.cancelRequest(qr),t(1,f=new Error("S3 test connection timeout.")),t(2,c=!1)},3e4),t(2,c=!0);let O;try{await fe.settings.testS3(u,{$cancelKey:qr})}catch(E){O=E}return O!=null&&O.isAbort||(t(1,f=O),t(2,c=!1),clearTimeout(d)),f}Vt(()=>()=>{clearTimeout(d),clearTimeout(m)});function g(){o.enabled=this.checked,t(0,o)}function k(){o.endpoint=this.value,t(0,o)}function S(){o.bucket=this.value,t(0,o)}function T(){o.region=this.value,t(0,o)}function $(){o.accessKey=this.value,t(0,o)}function C(O){n.$$.not_equal(o.secret,O)&&(o.secret=O,t(0,o))}function D(){o.forcePathStyle=this.checked,t(0,o)}return n.$$set=O=>{"originalConfig"in O&&t(5,s=O.originalConfig),"config"in O&&t(0,o=O.config),"configKey"in O&&t(3,r=O.configKey),"toggleLabel"in O&&t(4,a=O.toggleLabel),"testFilesystem"in O&&t(6,u=O.testFilesystem),"testError"in O&&t(1,f=O.testError),"isTesting"in O&&t(2,c=O.isTesting),"$$scope"in O&&t(15,l=O.$$scope)},n.$$.update=()=>{n.$$.dirty&32&&s!=null&&s.enabled&&h(100),n.$$.dirty&9&&(o.enabled||ii(r))},[o,f,c,r,a,s,u,i,g,k,S,T,$,C,D,l]}class zb extends ge{constructor(e){super(),_e(this,e,GA,ZA,he,{originalConfig:5,config:0,configKey:3,toggleLabel:4,testFilesystem:6,testError:1,isTesting:2})}}function XA(n){var O;let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g;function k(E){n[11](E)}function S(E){n[12](E)}function T(E){n[13](E)}let $={toggleLabel:"Use S3 storage",originalConfig:n[0].s3,$$slots:{default:[xA]},$$scope:{ctx:n}};n[1].s3!==void 0&&($.config=n[1].s3),n[4]!==void 0&&($.isTesting=n[4]),n[5]!==void 0&&($.testError=n[5]),e=new zb({props:$}),te.push(()=>be(e,"config",k)),te.push(()=>be(e,"isTesting",S)),te.push(()=>be(e,"testError",T));let C=((O=n[1].s3)==null?void 0:O.enabled)&&!n[6]&&!n[3]&&a_(n),D=n[6]&&u_(n);return{c(){V(e.$$.fragment),s=M(),o=b("div"),r=b("div"),a=M(),C&&C.c(),u=M(),D&&D.c(),f=M(),c=b("button"),d=b("span"),d.textContent="Save changes",p(r,"class","flex-fill"),p(d,"class","txt"),p(c,"type","submit"),p(c,"class","btn btn-expanded"),c.disabled=m=!n[6]||n[3],ee(c,"btn-loading",n[3]),p(o,"class","flex")},m(E,L){H(e,E,L),w(E,s,L),w(E,o,L),y(o,r),y(o,a),C&&C.m(o,null),y(o,u),D&&D.m(o,null),y(o,f),y(o,c),y(c,d),h=!0,_||(g=K(c,"click",n[15]),_=!0)},p(E,L){var P;const F={};L&1&&(F.originalConfig=E[0].s3),L&524291&&(F.$$scope={dirty:L,ctx:E}),!t&&L&2&&(t=!0,F.config=E[1].s3,ye(()=>t=!1)),!i&&L&16&&(i=!0,F.isTesting=E[4],ye(()=>i=!1)),!l&&L&32&&(l=!0,F.testError=E[5],ye(()=>l=!1)),e.$set(F),(P=E[1].s3)!=null&&P.enabled&&!E[6]&&!E[3]?C?C.p(E,L):(C=a_(E),C.c(),C.m(o,u)):C&&(C.d(1),C=null),E[6]?D?D.p(E,L):(D=u_(E),D.c(),D.m(o,f)):D&&(D.d(1),D=null),(!h||L&72&&m!==(m=!E[6]||E[3]))&&(c.disabled=m),(!h||L&8)&&ee(c,"btn-loading",E[3])},i(E){h||(A(e.$$.fragment,E),h=!0)},o(E){I(e.$$.fragment,E),h=!1},d(E){E&&(v(s),v(o)),z(e,E),C&&C.d(),D&&D.d(),_=!1,g()}}}function QA(n){let e;return{c(){e=b("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function r_(n){var L;let e,t,i,l,s,o,r,a=(L=n[0].s3)!=null&&L.enabled?"S3 storage":"local file system",u,f,c,d=n[1].s3.enabled?"S3 storage":"local file system",m,h,_,g,k,S,T,$,C,D,O,E;return{c(){e=b("div"),t=b("div"),i=b("div"),i.innerHTML='',l=M(),s=b("div"),o=Y(`If you have existing uploaded files, you'll have to migrate them manually + `),g=b("button"),g.textContent="{ACTION_URL} ",k=Y("."),p(e,"for",i=n[31]),p(f,"type","button"),p(f,"class","label label-sm link-primary txt-mono"),p(d,"type","button"),p(d,"class","label label-sm link-primary txt-mono"),p(h,"type","button"),p(h,"class","label label-sm link-primary txt-mono"),p(g,"type","button"),p(g,"class","label label-sm link-primary txt-mono"),p(g,"title","Required parameter"),p(a,"class","help-block")},m(E,L){w(E,e,L),y(e,t),w(E,l,L),D[s].m(E,L),w(E,r,L),w(E,a,L),y(a,u),y(a,f),y(a,c),y(a,d),y(a,m),y(a,h),y(a,_),y(a,g),y(a,k),S=!0,T||($=[K(f,"click",n[22]),K(d,"click",n[23]),K(h,"click",n[24]),K(g,"click",n[25])],T=!0)},p(E,L){(!S||L[1]&1&&i!==(i=E[31]))&&p(e,"for",i);let F=s;s=O(E),s===F?D[s].p(E,L):(oe(),I(D[F],1,1,()=>{D[F]=null}),re(),o=D[s],o?o.p(E,L):(o=D[s]=C[s](E),o.c()),A(o,1),o.m(r.parentNode,r))},i(E){S||(A(o),S=!0)},o(E){I(o),S=!1},d(E){E&&(v(e),v(l),v(r),v(a)),D[s].d(E),T=!1,we($)}}}function uA(n){let e,t,i,l,s,o;return e=new me({props:{class:"form-field required",name:n[1]+".subject",$$slots:{default:[lA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),i=new me({props:{class:"form-field required",name:n[1]+".actionUrl",$$slots:{default:[sA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),s=new me({props:{class:"form-field m-0 required",name:n[1]+".body",$$slots:{default:[aA,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(r,a){H(e,r,a),w(r,t,a),H(i,r,a),w(r,l,a),H(s,r,a),o=!0},p(r,a){const u={};a[0]&2&&(u.name=r[1]+".subject"),a[0]&1|a[1]&3&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};a[0]&2&&(f.name=r[1]+".actionUrl"),a[0]&1|a[1]&3&&(f.$$scope={dirty:a,ctx:r}),i.$set(f);const c={};a[0]&2&&(c.name=r[1]+".body"),a[0]&49|a[1]&3&&(c.$$scope={dirty:a,ctx:r}),s.$set(c)},i(r){o||(A(e.$$.fragment,r),A(i.$$.fragment,r),A(s.$$.fragment,r),o=!0)},o(r){I(e.$$.fragment,r),I(i.$$.fragment,r),I(s.$$.fragment,r),o=!1},d(r){r&&(v(t),v(l)),z(e,r),z(i,r),z(s,r)}}}function Qh(n){let e,t,i,l,s;return{c(){e=b("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,l||(s=ve(Le.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){i||(o&&Ke(()=>{i&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!0)),t.run(1))}),i=!0)},o(o){o&&(t||(t=Pe(e,Yt,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&v(e),o&&t&&t.end(),l=!1,s()}}}function fA(n){let e,t,i,l,s,o,r,a,u,f=n[6]&&Qh();return{c(){e=b("div"),t=b("i"),i=M(),l=b("span"),s=Y(n[2]),o=M(),r=b("div"),a=M(),f&&f.c(),u=ke(),p(t,"class","ri-draft-line"),p(l,"class","txt"),p(e,"class","inline-flex"),p(r,"class","flex-fill")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),y(l,s),w(c,o,d),w(c,r,d),w(c,a,d),f&&f.m(c,d),w(c,u,d)},p(c,d){d[0]&4&&le(s,c[2]),c[6]?f?d[0]&64&&A(f,1):(f=Qh(),f.c(),A(f,1),f.m(u.parentNode,u)):f&&(oe(),I(f,1,1,()=>{f=null}),re())},d(c){c&&(v(e),v(o),v(r),v(a),v(u)),f&&f.d(c)}}}function cA(n){let e,t;const i=[n[8]];let l={$$slots:{header:[fA],default:[uA]},$$scope:{ctx:n}};for(let s=0;st(12,o=U));let{key:r}=e,{title:a}=e,{config:u={}}=e,f,c=xh,d=!1;function m(){f==null||f.expand()}function h(){f==null||f.collapse()}function _(){f==null||f.collapseSiblings()}async function g(){c||d||(t(5,d=!0),t(4,c=(await rt(()=>import("./CodeEditor-e3209658.js"),["./CodeEditor-e3209658.js","./index-9ee652b3.js"],import.meta.url)).default),xh=c,t(5,d=!1))}function k(U){j.copyToClipboard(U),$o(`Copied ${U} to clipboard`,2e3)}g();function S(){u.subject=this.value,t(0,u)}const T=()=>k("{APP_NAME}"),$=()=>k("{APP_URL}");function C(){u.actionUrl=this.value,t(0,u)}const D=()=>k("{APP_NAME}"),O=()=>k("{APP_URL}"),E=()=>k("{TOKEN}");function L(U){n.$$.not_equal(u.body,U)&&(u.body=U,t(0,u))}function F(){u.body=this.value,t(0,u)}const P=()=>k("{APP_NAME}"),N=()=>k("{APP_URL}"),R=()=>k("{TOKEN}"),q=()=>k("{ACTION_URL}");function W(U){te[U?"unshift":"push"](()=>{f=U,t(3,f)})}function J(U){Ae.call(this,n,U)}function G(U){Ae.call(this,n,U)}function B(U){Ae.call(this,n,U)}return n.$$set=U=>{e=Ne(Ne({},e),Kt(U)),t(8,s=Ge(e,l)),"key"in U&&t(1,r=U.key),"title"in U&&t(2,a=U.title),"config"in U&&t(0,u=U.config)},n.$$.update=()=>{n.$$.dirty[0]&4098&&t(6,i=!j.isEmpty(j.getNestedVal(o,r))),n.$$.dirty[0]&3&&(u.enabled||ii(r))},[u,r,a,f,c,d,i,k,s,m,h,_,o,S,T,$,C,D,O,E,L,F,P,N,R,q,W,J,G,B]}class Fr extends ge{constructor(e){super(),_e(this,e,dA,cA,he,{key:1,title:2,config:0,expand:9,collapse:10,collapseSiblings:11},null,[-1,-1])}get expand(){return this.$$.ctx[9]}get collapse(){return this.$$.ctx[10]}get collapseSiblings(){return this.$$.ctx[11]}}function e_(n,e,t){const i=n.slice();return i[21]=e[t],i}function t_(n,e){let t,i,l,s,o,r=e[21].label+"",a,u,f,c,d,m;return c=r0(e[11][0]),{key:n,first:null,c(){t=b("div"),i=b("input"),s=M(),o=b("label"),a=Y(r),f=M(),p(i,"type","radio"),p(i,"name","template"),p(i,"id",l=e[20]+e[21].value),i.__value=e[21].value,ue(i,i.__value),p(o,"for",u=e[20]+e[21].value),p(t,"class","form-field-block"),c.p(i),this.first=t},m(h,_){w(h,t,_),y(t,i),i.checked=i.__value===e[2],y(t,s),y(t,o),y(o,a),y(t,f),d||(m=K(i,"change",e[10]),d=!0)},p(h,_){e=h,_&1048576&&l!==(l=e[20]+e[21].value)&&p(i,"id",l),_&4&&(i.checked=i.__value===e[2]),_&1048576&&u!==(u=e[20]+e[21].value)&&p(o,"for",u)},d(h){h&&v(t),c.r(),d=!1,m()}}}function pA(n){let e=[],t=new Map,i,l=pe(n[7]);const s=o=>o[21].value;for(let o=0;o({20:a}),({uniqueId:a})=>a?1048576:0]},$$scope:{ctx:n}}}),l=new me({props:{class:"form-field required m-0",name:"email",$$slots:{default:[mA,({uniqueId:a})=>({20:a}),({uniqueId:a})=>a?1048576:0]},$$scope:{ctx:n}}}),{c(){e=b("form"),V(t.$$.fragment),i=M(),V(l.$$.fragment),p(e,"id",n[6]),p(e,"autocomplete","off")},m(a,u){w(a,e,u),H(t,e,null),y(e,i),H(l,e,null),s=!0,o||(r=K(e,"submit",Ye(n[13])),o=!0)},p(a,u){const f={};u&17825796&&(f.$$scope={dirty:u,ctx:a}),t.$set(f);const c={};u&17825794&&(c.$$scope={dirty:u,ctx:a}),l.$set(c)},i(a){s||(A(t.$$.fragment,a),A(l.$$.fragment,a),s=!0)},o(a){I(t.$$.fragment,a),I(l.$$.fragment,a),s=!1},d(a){a&&v(e),z(t),z(l),o=!1,r()}}}function _A(n){let e;return{c(){e=b("h4"),e.textContent="Send test email",p(e,"class","center txt-break")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function gA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("button"),t=Y("Close"),i=M(),l=b("button"),s=b("i"),o=M(),r=b("span"),r.textContent="Send",p(e,"type","button"),p(e,"class","btn btn-transparent"),e.disabled=n[4],p(s,"class","ri-mail-send-line"),p(r,"class","txt"),p(l,"type","submit"),p(l,"form",n[6]),p(l,"class","btn btn-expanded"),l.disabled=a=!n[5]||n[4],ee(l,"btn-loading",n[4])},m(c,d){w(c,e,d),y(e,t),w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=K(e,"click",n[0]),u=!0)},p(c,d){d&16&&(e.disabled=c[4]),d&48&&a!==(a=!c[5]||c[4])&&(l.disabled=a),d&16&&ee(l,"btn-loading",c[4])},d(c){c&&(v(e),v(i),v(l)),u=!1,f()}}}function bA(n){let e,t,i={class:"overlay-panel-sm email-test-popup",overlayClose:!n[4],escClose:!n[4],beforeHide:n[14],popup:!0,$$slots:{footer:[gA],header:[_A],default:[hA]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[15](e),e.$on("show",n[16]),e.$on("hide",n[17]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&16&&(o.overlayClose=!l[4]),s&16&&(o.escClose=!l[4]),s&16&&(o.beforeHide=l[14]),s&16777270&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[15](null),z(e,l)}}}const Rr="last_email_test",n_="email_test_request";function yA(n,e,t){let i;const l=ot(),s="email_test_"+j.randomString(5),o=[{label:'"Verification" template',value:"verification"},{label:'"Password reset" template',value:"password-reset"},{label:'"Confirm email change" template',value:"email-change"}];let r,a=localStorage.getItem(Rr),u=o[0].value,f=!1,c=null;function d(O="",E=""){t(1,a=O||localStorage.getItem(Rr)),t(2,u=E||o[0].value),Gt({}),r==null||r.show()}function m(){return clearTimeout(c),r==null?void 0:r.hide()}async function h(){if(!(!i||f)){t(4,f=!0),localStorage==null||localStorage.setItem(Rr,a),clearTimeout(c),c=setTimeout(()=>{fe.cancelRequest(n_),ni("Test email send timeout.")},3e4);try{await fe.settings.testEmail(a,u,{$cancelKey:n_}),It("Successfully sent test email."),l("submit"),t(4,f=!1),await Qt(),m()}catch(O){t(4,f=!1),fe.error(O)}clearTimeout(c)}}const _=[[]];function g(){u=this.__value,t(2,u)}function k(){a=this.value,t(1,a)}const S=()=>h(),T=()=>!f;function $(O){te[O?"unshift":"push"](()=>{r=O,t(3,r)})}function C(O){Ae.call(this,n,O)}function D(O){Ae.call(this,n,O)}return n.$$.update=()=>{n.$$.dirty&6&&t(5,i=!!a&&!!u)},[m,a,u,r,f,i,s,o,h,d,g,_,k,S,T,$,C,D]}class kA extends ge{constructor(e){super(),_e(this,e,yA,bA,he,{show:9,hide:0})}get show(){return this.$$.ctx[9]}get hide(){return this.$$.ctx[0]}}function vA(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L,F;i=new me({props:{class:"form-field required",name:"meta.senderName",$$slots:{default:[SA,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:"meta.senderAddress",$$slots:{default:[$A,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}});function P(x){n[15](x)}let N={single:!0,key:"meta.verificationTemplate",title:'Default "Verification" email template'};n[0].meta.verificationTemplate!==void 0&&(N.config=n[0].meta.verificationTemplate),u=new Fr({props:N}),te.push(()=>be(u,"config",P));function R(x){n[16](x)}let q={single:!0,key:"meta.resetPasswordTemplate",title:'Default "Password reset" email template'};n[0].meta.resetPasswordTemplate!==void 0&&(q.config=n[0].meta.resetPasswordTemplate),d=new Fr({props:q}),te.push(()=>be(d,"config",R));function W(x){n[17](x)}let J={single:!0,key:"meta.confirmEmailChangeTemplate",title:'Default "Confirm email change" email template'};n[0].meta.confirmEmailChangeTemplate!==void 0&&(J.config=n[0].meta.confirmEmailChangeTemplate),_=new Fr({props:J}),te.push(()=>be(_,"config",W)),$=new me({props:{class:"form-field form-field-toggle m-b-sm",$$slots:{default:[TA,({uniqueId:x})=>({34:x}),({uniqueId:x})=>[0,x?8:0]]},$$scope:{ctx:n}}});let G=n[0].smtp.enabled&&i_(n);function B(x,se){return x[5]?FA:NA}let U=B(n),ae=U(n);return{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),c=M(),V(d.$$.fragment),h=M(),V(_.$$.fragment),k=M(),S=b("hr"),T=M(),V($.$$.fragment),C=M(),G&&G.c(),D=M(),O=b("div"),E=b("div"),L=M(),ae.c(),p(t,"class","col-lg-6"),p(s,"class","col-lg-6"),p(e,"class","grid m-b-base"),p(a,"class","accordions"),p(E,"class","flex-fill"),p(O,"class","flex")},m(x,se){w(x,e,se),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),w(x,r,se),w(x,a,se),H(u,a,null),y(a,c),H(d,a,null),y(a,h),H(_,a,null),w(x,k,se),w(x,S,se),w(x,T,se),H($,x,se),w(x,C,se),G&&G.m(x,se),w(x,D,se),w(x,O,se),y(O,E),y(O,L),ae.m(O,null),F=!0},p(x,se){const De={};se[0]&1|se[1]&24&&(De.$$scope={dirty:se,ctx:x}),i.$set(De);const je={};se[0]&1|se[1]&24&&(je.$$scope={dirty:se,ctx:x}),o.$set(je);const Ve={};!f&&se[0]&1&&(f=!0,Ve.config=x[0].meta.verificationTemplate,ye(()=>f=!1)),u.$set(Ve);const Ze={};!m&&se[0]&1&&(m=!0,Ze.config=x[0].meta.resetPasswordTemplate,ye(()=>m=!1)),d.$set(Ze);const tt={};!g&&se[0]&1&&(g=!0,tt.config=x[0].meta.confirmEmailChangeTemplate,ye(()=>g=!1)),_.$set(tt);const Xe={};se[0]&1|se[1]&24&&(Xe.$$scope={dirty:se,ctx:x}),$.$set(Xe),x[0].smtp.enabled?G?(G.p(x,se),se[0]&1&&A(G,1)):(G=i_(x),G.c(),A(G,1),G.m(D.parentNode,D)):G&&(oe(),I(G,1,1,()=>{G=null}),re()),U===(U=B(x))&&ae?ae.p(x,se):(ae.d(1),ae=U(x),ae&&(ae.c(),ae.m(O,null)))},i(x){F||(A(i.$$.fragment,x),A(o.$$.fragment,x),A(u.$$.fragment,x),A(d.$$.fragment,x),A(_.$$.fragment,x),A($.$$.fragment,x),A(G),F=!0)},o(x){I(i.$$.fragment,x),I(o.$$.fragment,x),I(u.$$.fragment,x),I(d.$$.fragment,x),I(_.$$.fragment,x),I($.$$.fragment,x),I(G),F=!1},d(x){x&&(v(e),v(r),v(a),v(k),v(S),v(T),v(C),v(D),v(O)),z(i),z(o),z(u),z(d),z(_),z($,x),G&&G.d(x),ae.d()}}}function wA(n){let e;return{c(){e=b("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function SA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Sender name"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].meta.senderName),r||(a=K(s,"input",n[13]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].meta.senderName&&ue(s,u[0].meta.senderName)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function $A(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Sender address"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","email"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].meta.senderAddress),r||(a=K(s,"input",n[14]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].meta.senderAddress&&ue(s,u[0].meta.senderAddress)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function TA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.innerHTML="Use SMTP mail server (recommended)",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[34]),e.required=!0,p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[34])},m(c,d){w(c,e,d),e.checked=n[0].smtp.enabled,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[18]),ve(Le.call(null,r,{text:'By default PocketBase uses the unix "sendmail" command for sending emails. For better emails deliverability it is recommended to use a SMTP mail server.',position:"top"}))],u=!0)},p(c,d){d[1]&8&&t!==(t=c[34])&&p(e,"id",t),d[0]&1&&(e.checked=c[0].smtp.enabled),d[1]&8&&a!==(a=c[34])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function i_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$;l=new me({props:{class:"form-field required",name:"smtp.host",$$slots:{default:[CA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),r=new me({props:{class:"form-field required",name:"smtp.port",$$slots:{default:[MA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),f=new me({props:{class:"form-field",name:"smtp.username",$$slots:{default:[OA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}}),m=new me({props:{class:"form-field",name:"smtp.password",$$slots:{default:[DA,({uniqueId:L})=>({34:L}),({uniqueId:L})=>[0,L?8:0]]},$$scope:{ctx:n}}});function C(L,F){return L[4]?AA:EA}let D=C(n),O=D(n),E=n[4]&&l_(n);return{c(){e=b("div"),t=b("div"),i=b("div"),V(l.$$.fragment),s=M(),o=b("div"),V(r.$$.fragment),a=M(),u=b("div"),V(f.$$.fragment),c=M(),d=b("div"),V(m.$$.fragment),h=M(),_=b("button"),O.c(),g=M(),E&&E.c(),p(i,"class","col-lg-4"),p(o,"class","col-lg-2"),p(u,"class","col-lg-3"),p(d,"class","col-lg-3"),p(t,"class","grid"),p(_,"type","button"),p(_,"class","btn btn-sm btn-secondary m-t-sm m-b-sm")},m(L,F){w(L,e,F),y(e,t),y(t,i),H(l,i,null),y(t,s),y(t,o),H(r,o,null),y(t,a),y(t,u),H(f,u,null),y(t,c),y(t,d),H(m,d,null),y(e,h),y(e,_),O.m(_,null),y(e,g),E&&E.m(e,null),S=!0,T||($=K(_,"click",Ye(n[23])),T=!0)},p(L,F){const P={};F[0]&1|F[1]&24&&(P.$$scope={dirty:F,ctx:L}),l.$set(P);const N={};F[0]&1|F[1]&24&&(N.$$scope={dirty:F,ctx:L}),r.$set(N);const R={};F[0]&1|F[1]&24&&(R.$$scope={dirty:F,ctx:L}),f.$set(R);const q={};F[0]&1|F[1]&24&&(q.$$scope={dirty:F,ctx:L}),m.$set(q),D!==(D=C(L))&&(O.d(1),O=D(L),O&&(O.c(),O.m(_,null))),L[4]?E?(E.p(L,F),F[0]&16&&A(E,1)):(E=l_(L),E.c(),A(E,1),E.m(e,null)):E&&(oe(),I(E,1,1,()=>{E=null}),re())},i(L){S||(A(l.$$.fragment,L),A(r.$$.fragment,L),A(f.$$.fragment,L),A(m.$$.fragment,L),A(E),L&&Ke(()=>{S&&(k||(k=Pe(e,et,{duration:150},!0)),k.run(1))}),S=!0)},o(L){I(l.$$.fragment,L),I(r.$$.fragment,L),I(f.$$.fragment,L),I(m.$$.fragment,L),I(E),L&&(k||(k=Pe(e,et,{duration:150},!1)),k.run(0)),S=!1},d(L){L&&v(e),z(l),z(r),z(f),z(m),O.d(),E&&E.d(),L&&k&&k.end(),T=!1,$()}}}function CA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("SMTP server host"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.host),r||(a=K(s,"input",n[19]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].smtp.host&&ue(s,u[0].smtp.host)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function MA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Port"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","number"),p(s,"id",o=n[34]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.port),r||(a=K(s,"input",n[20]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&st(s.value)!==u[0].smtp.port&&ue(s,u[0].smtp.port)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function OA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Username"),l=M(),s=b("input"),p(e,"for",i=n[34]),p(s,"type","text"),p(s,"id",o=n[34])},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].smtp.username),r||(a=K(s,"input",n[21]),r=!0)},p(u,f){f[1]&8&&i!==(i=u[34])&&p(e,"for",i),f[1]&8&&o!==(o=u[34])&&p(s,"id",o),f[0]&1&&s.value!==u[0].smtp.username&&ue(s,u[0].smtp.username)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function DA(n){let e,t,i,l,s,o,r;function a(f){n[22](f)}let u={id:n[34]};return n[0].smtp.password!==void 0&&(u.value=n[0].smtp.password),s=new tu({props:u}),te.push(()=>be(s,"value",a)),{c(){e=b("label"),t=Y("Password"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.value=f[0].smtp.password,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function EA(n){let e,t,i;return{c(){e=b("span"),e.textContent="Show more options",t=M(),i=b("i"),p(e,"class","txt"),p(i,"class","ri-arrow-down-s-line")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function AA(n){let e,t,i;return{c(){e=b("span"),e.textContent="Hide more options",t=M(),i=b("i"),p(e,"class","txt"),p(i,"class","ri-arrow-up-s-line")},m(l,s){w(l,e,s),w(l,t,s),w(l,i,s)},d(l){l&&(v(e),v(t),v(i))}}}function l_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m;return i=new me({props:{class:"form-field",name:"smtp.tls",$$slots:{default:[IA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field",name:"smtp.authMethod",$$slots:{default:[LA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field",name:"smtp.localName",$$slots:{default:[PA,({uniqueId:h})=>({34:h}),({uniqueId:h})=>[0,h?8:0]]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),f=M(),c=b("div"),p(t,"class","col-lg-3"),p(s,"class","col-lg-3"),p(a,"class","col-lg-6"),p(c,"class","col-lg-12"),p(e,"class","grid")},m(h,_){w(h,e,_),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),y(e,f),y(e,c),m=!0},p(h,_){const g={};_[0]&1|_[1]&24&&(g.$$scope={dirty:_,ctx:h}),i.$set(g);const k={};_[0]&1|_[1]&24&&(k.$$scope={dirty:_,ctx:h}),o.$set(k);const S={};_[0]&1|_[1]&24&&(S.$$scope={dirty:_,ctx:h}),u.$set(S)},i(h){m||(A(i.$$.fragment,h),A(o.$$.fragment,h),A(u.$$.fragment,h),h&&Ke(()=>{m&&(d||(d=Pe(e,et,{duration:150},!0)),d.run(1))}),m=!0)},o(h){I(i.$$.fragment,h),I(o.$$.fragment,h),I(u.$$.fragment,h),h&&(d||(d=Pe(e,et,{duration:150},!1)),d.run(0)),m=!1},d(h){h&&v(e),z(i),z(o),z(u),h&&d&&d.end()}}}function IA(n){let e,t,i,l,s,o,r;function a(f){n[24](f)}let u={id:n[34],items:n[7]};return n[0].smtp.tls!==void 0&&(u.keyOfSelected=n[0].smtp.tls),s=new gi({props:u}),te.push(()=>be(s,"keyOfSelected",a)),{c(){e=b("label"),t=Y("TLS encryption"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.keyOfSelected=f[0].smtp.tls,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function LA(n){let e,t,i,l,s,o,r;function a(f){n[25](f)}let u={id:n[34],items:n[8]};return n[0].smtp.authMethod!==void 0&&(u.keyOfSelected=n[0].smtp.authMethod),s=new gi({props:u}),te.push(()=>be(s,"keyOfSelected",a)),{c(){e=b("label"),t=Y("AUTH method"),l=M(),V(s.$$.fragment),p(e,"for",i=n[34])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c[1]&8&&i!==(i=f[34]))&&p(e,"for",i);const d={};c[1]&8&&(d.id=f[34]),!o&&c[0]&1&&(o=!0,d.keyOfSelected=f[0].smtp.authMethod,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function PA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("label"),t=b("span"),t.textContent="EHLO/HELO domain",i=M(),l=b("i"),o=M(),r=b("input"),p(t,"class","txt"),p(l,"class","ri-information-line link-hint"),p(e,"for",s=n[34]),p(r,"type","text"),p(r,"id",a=n[34]),p(r,"placeholder","Default to localhost")},m(c,d){w(c,e,d),y(e,t),y(e,i),y(e,l),w(c,o,d),w(c,r,d),ue(r,n[0].smtp.localName),u||(f=[ve(Le.call(null,l,{text:"Some SMTP servers, such as the Gmail SMTP-relay, requires a proper domain name in the inital EHLO/HELO exchange and will reject attempts to use localhost.",position:"top"})),K(r,"input",n[26])],u=!0)},p(c,d){d[1]&8&&s!==(s=c[34])&&p(e,"for",s),d[1]&8&&a!==(a=c[34])&&p(r,"id",a),d[0]&1&&r.value!==c[0].smtp.localName&&ue(r,c[0].smtp.localName)},d(c){c&&(v(e),v(o),v(r)),u=!1,we(f)}}}function NA(n){let e,t,i;return{c(){e=b("button"),e.innerHTML=' Send test email',p(e,"type","button"),p(e,"class","btn btn-expanded btn-outline")},m(l,s){w(l,e,s),t||(i=K(e,"click",n[29]),t=!0)},p:Q,d(l){l&&v(e),t=!1,i()}}}function FA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("button"),t=b("span"),t.textContent="Cancel",i=M(),l=b("button"),s=b("span"),s.textContent="Save changes",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-transparent btn-hint"),e.disabled=n[3],p(s,"class","txt"),p(l,"type","submit"),p(l,"class","btn btn-expanded"),l.disabled=o=!n[5]||n[3],ee(l,"btn-loading",n[3])},m(u,f){w(u,e,f),y(e,t),w(u,i,f),w(u,l,f),y(l,s),r||(a=[K(e,"click",n[27]),K(l,"click",n[28])],r=!0)},p(u,f){f[0]&8&&(e.disabled=u[3]),f[0]&40&&o!==(o=!u[5]||u[3])&&(l.disabled=o),f[0]&8&&ee(l,"btn-loading",u[3])},d(u){u&&(v(e),v(i),v(l)),r=!1,we(a)}}}function RA(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g;const k=[wA,vA],S=[];function T($,C){return $[2]?0:1}return d=T(n),m=S[d]=k[d](n),{c(){e=b("header"),t=b("nav"),i=b("div"),i.textContent="Settings",l=M(),s=b("div"),o=Y(n[6]),r=M(),a=b("div"),u=b("form"),f=b("div"),f.innerHTML="

    Configure common settings for sending emails.

    ",c=M(),m.c(),p(i,"class","breadcrumb-item"),p(s,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","content txt-xl m-b-base"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m($,C){w($,e,C),y(e,t),y(t,i),y(t,l),y(t,s),y(s,o),w($,r,C),w($,a,C),y(a,u),y(u,f),y(u,c),S[d].m(u,null),h=!0,_||(g=K(u,"submit",Ye(n[30])),_=!0)},p($,C){(!h||C[0]&64)&&le(o,$[6]);let D=d;d=T($),d===D?S[d].p($,C):(oe(),I(S[D],1,1,()=>{S[D]=null}),re(),m=S[d],m?m.p($,C):(m=S[d]=k[d]($),m.c()),A(m,1),m.m(u,null))},i($){h||(A(m),h=!0)},o($){I(m),h=!1},d($){$&&(v(e),v(r),v(a)),S[d].d(),_=!1,g()}}}function qA(n){let e,t,i,l,s,o;e=new bi({}),i=new gn({props:{$$slots:{default:[RA]},$$scope:{ctx:n}}});let r={};return s=new kA({props:r}),n[31](s),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment),l=M(),V(s.$$.fragment)},m(a,u){H(e,a,u),w(a,t,u),H(i,a,u),w(a,l,u),H(s,a,u),o=!0},p(a,u){const f={};u[0]&127|u[1]&16&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};s.$set(c)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),A(s.$$.fragment,a),o=!0)},o(a){I(e.$$.fragment,a),I(i.$$.fragment,a),I(s.$$.fragment,a),o=!1},d(a){a&&(v(t),v(l)),z(e,a),z(i,a),n[31](null),z(s,a)}}}function jA(n,e,t){let i,l,s;We(n,Dt,x=>t(6,s=x));const o=[{label:"Auto (StartTLS)",value:!1},{label:"Always",value:!0}],r=[{label:"PLAIN (default)",value:"PLAIN"},{label:"LOGIN",value:"LOGIN"}];tn(Dt,s="Mail settings",s);let a,u={},f={},c=!1,d=!1,m=!1;h();async function h(){t(2,c=!0);try{const x=await fe.settings.getAll()||{};g(x)}catch(x){fe.error(x)}t(2,c=!1)}async function _(){if(!(d||!l)){t(3,d=!0);try{const x=await fe.settings.update(j.filterRedactedProps(f));g(x),Gt({}),It("Successfully saved mail settings.")}catch(x){fe.error(x)}t(3,d=!1)}}function g(x={}){t(0,f={meta:(x==null?void 0:x.meta)||{},smtp:(x==null?void 0:x.smtp)||{}}),f.smtp.authMethod||t(0,f.smtp.authMethod=r[0].value,f),t(11,u=JSON.parse(JSON.stringify(f)))}function k(){t(0,f=JSON.parse(JSON.stringify(u||{})))}function S(){f.meta.senderName=this.value,t(0,f)}function T(){f.meta.senderAddress=this.value,t(0,f)}function $(x){n.$$.not_equal(f.meta.verificationTemplate,x)&&(f.meta.verificationTemplate=x,t(0,f))}function C(x){n.$$.not_equal(f.meta.resetPasswordTemplate,x)&&(f.meta.resetPasswordTemplate=x,t(0,f))}function D(x){n.$$.not_equal(f.meta.confirmEmailChangeTemplate,x)&&(f.meta.confirmEmailChangeTemplate=x,t(0,f))}function O(){f.smtp.enabled=this.checked,t(0,f)}function E(){f.smtp.host=this.value,t(0,f)}function L(){f.smtp.port=st(this.value),t(0,f)}function F(){f.smtp.username=this.value,t(0,f)}function P(x){n.$$.not_equal(f.smtp.password,x)&&(f.smtp.password=x,t(0,f))}const N=()=>{t(4,m=!m)};function R(x){n.$$.not_equal(f.smtp.tls,x)&&(f.smtp.tls=x,t(0,f))}function q(x){n.$$.not_equal(f.smtp.authMethod,x)&&(f.smtp.authMethod=x,t(0,f))}function W(){f.smtp.localName=this.value,t(0,f)}const J=()=>k(),G=()=>_(),B=()=>a==null?void 0:a.show(),U=()=>_();function ae(x){te[x?"unshift":"push"](()=>{a=x,t(1,a)})}return n.$$.update=()=>{n.$$.dirty[0]&2048&&t(12,i=JSON.stringify(u)),n.$$.dirty[0]&4097&&t(5,l=i!=JSON.stringify(f))},[f,a,c,d,m,l,s,o,r,_,k,u,i,S,T,$,C,D,O,E,L,F,P,N,R,q,W,J,G,B,U,ae]}class HA extends ge{constructor(e){super(),_e(this,e,jA,qA,he,{},null,[-1,-1])}}const zA=n=>({isTesting:n&4,testError:n&2,enabled:n&1}),s_=n=>({isTesting:n[2],testError:n[1],enabled:n[0].enabled});function VA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("input"),i=M(),l=b("label"),s=Y(n[4]),p(e,"type","checkbox"),p(e,"id",t=n[20]),e.required=!0,p(l,"for",o=n[20])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,l,f),y(l,s),r||(a=K(e,"change",n[8]),r=!0)},p(u,f){f&1048576&&t!==(t=u[20])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&16&&le(s,u[4]),f&1048576&&o!==(o=u[20])&&p(l,"for",o)},d(u){u&&(v(e),v(i),v(l)),r=!1,a()}}}function o_(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D;return i=new me({props:{class:"form-field required",name:n[3]+".endpoint",$$slots:{default:[BA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),o=new me({props:{class:"form-field required",name:n[3]+".bucket",$$slots:{default:[UA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),u=new me({props:{class:"form-field required",name:n[3]+".region",$$slots:{default:[WA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),d=new me({props:{class:"form-field required",name:n[3]+".accessKey",$$slots:{default:[YA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),_=new me({props:{class:"form-field required",name:n[3]+".secret",$$slots:{default:[KA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),S=new me({props:{class:"form-field",name:n[3]+".forcePathStyle",$$slots:{default:[JA,({uniqueId:O})=>({20:O}),({uniqueId:O})=>O?1048576:0]},$$scope:{ctx:n}}}),{c(){e=b("div"),t=b("div"),V(i.$$.fragment),l=M(),s=b("div"),V(o.$$.fragment),r=M(),a=b("div"),V(u.$$.fragment),f=M(),c=b("div"),V(d.$$.fragment),m=M(),h=b("div"),V(_.$$.fragment),g=M(),k=b("div"),V(S.$$.fragment),T=M(),$=b("div"),p(t,"class","col-lg-6"),p(s,"class","col-lg-3"),p(a,"class","col-lg-3"),p(c,"class","col-lg-6"),p(h,"class","col-lg-6"),p(k,"class","col-lg-12"),p($,"class","col-lg-12"),p(e,"class","grid")},m(O,E){w(O,e,E),y(e,t),H(i,t,null),y(e,l),y(e,s),H(o,s,null),y(e,r),y(e,a),H(u,a,null),y(e,f),y(e,c),H(d,c,null),y(e,m),y(e,h),H(_,h,null),y(e,g),y(e,k),H(S,k,null),y(e,T),y(e,$),D=!0},p(O,E){const L={};E&8&&(L.name=O[3]+".endpoint"),E&1081345&&(L.$$scope={dirty:E,ctx:O}),i.$set(L);const F={};E&8&&(F.name=O[3]+".bucket"),E&1081345&&(F.$$scope={dirty:E,ctx:O}),o.$set(F);const P={};E&8&&(P.name=O[3]+".region"),E&1081345&&(P.$$scope={dirty:E,ctx:O}),u.$set(P);const N={};E&8&&(N.name=O[3]+".accessKey"),E&1081345&&(N.$$scope={dirty:E,ctx:O}),d.$set(N);const R={};E&8&&(R.name=O[3]+".secret"),E&1081345&&(R.$$scope={dirty:E,ctx:O}),_.$set(R);const q={};E&8&&(q.name=O[3]+".forcePathStyle"),E&1081345&&(q.$$scope={dirty:E,ctx:O}),S.$set(q)},i(O){D||(A(i.$$.fragment,O),A(o.$$.fragment,O),A(u.$$.fragment,O),A(d.$$.fragment,O),A(_.$$.fragment,O),A(S.$$.fragment,O),O&&Ke(()=>{D&&(C||(C=Pe(e,et,{duration:150},!0)),C.run(1))}),D=!0)},o(O){I(i.$$.fragment,O),I(o.$$.fragment,O),I(u.$$.fragment,O),I(d.$$.fragment,O),I(_.$$.fragment,O),I(S.$$.fragment,O),O&&(C||(C=Pe(e,et,{duration:150},!1)),C.run(0)),D=!1},d(O){O&&v(e),z(i),z(o),z(u),z(d),z(_),z(S),O&&C&&C.end()}}}function BA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Endpoint"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].endpoint),r||(a=K(s,"input",n[9]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].endpoint&&ue(s,u[0].endpoint)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function UA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Bucket"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].bucket),r||(a=K(s,"input",n[10]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].bucket&&ue(s,u[0].bucket)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function WA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Region"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].region),r||(a=K(s,"input",n[11]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].region&&ue(s,u[0].region)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function YA(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Access key"),l=M(),s=b("input"),p(e,"for",i=n[20]),p(s,"type","text"),p(s,"id",o=n[20]),s.required=!0},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[0].accessKey),r||(a=K(s,"input",n[12]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(s,"id",o),f&1&&s.value!==u[0].accessKey&&ue(s,u[0].accessKey)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function KA(n){let e,t,i,l,s,o,r;function a(f){n[13](f)}let u={id:n[20],required:!0};return n[0].secret!==void 0&&(u.value=n[0].secret),s=new tu({props:u}),te.push(()=>be(s,"value",a)),{c(){e=b("label"),t=Y("Secret"),l=M(),V(s.$$.fragment),p(e,"for",i=n[20])},m(f,c){w(f,e,c),y(e,t),w(f,l,c),H(s,f,c),r=!0},p(f,c){(!r||c&1048576&&i!==(i=f[20]))&&p(e,"for",i);const d={};c&1048576&&(d.id=f[20]),!o&&c&1&&(o=!0,d.value=f[0].secret,ye(()=>o=!1)),s.$set(d)},i(f){r||(A(s.$$.fragment,f),r=!0)},o(f){I(s.$$.fragment,f),r=!1},d(f){f&&(v(e),v(l)),z(s,f)}}}function JA(n){let e,t,i,l,s,o,r,a,u,f;return{c(){e=b("input"),i=M(),l=b("label"),s=b("span"),s.textContent="Force path-style addressing",o=M(),r=b("i"),p(e,"type","checkbox"),p(e,"id",t=n[20]),p(s,"class","txt"),p(r,"class","ri-information-line link-hint"),p(l,"for",a=n[20])},m(c,d){w(c,e,d),e.checked=n[0].forcePathStyle,w(c,i,d),w(c,l,d),y(l,s),y(l,o),y(l,r),u||(f=[K(e,"change",n[14]),ve(Le.call(null,r,{text:'Forces the request to use path-style addressing, eg. "https://s3.amazonaws.com/BUCKET/KEY" instead of the default "https://BUCKET.s3.amazonaws.com/KEY".',position:"top"}))],u=!0)},p(c,d){d&1048576&&t!==(t=c[20])&&p(e,"id",t),d&1&&(e.checked=c[0].forcePathStyle),d&1048576&&a!==(a=c[20])&&p(l,"for",a)},d(c){c&&(v(e),v(i),v(l)),u=!1,we(f)}}}function ZA(n){let e,t,i,l,s;e=new me({props:{class:"form-field form-field-toggle",$$slots:{default:[VA,({uniqueId:u})=>({20:u}),({uniqueId:u})=>u?1048576:0]},$$scope:{ctx:n}}});const o=n[7].default,r=kt(o,n,n[15],s_);let a=n[0].enabled&&o_(n);return{c(){V(e.$$.fragment),t=M(),r&&r.c(),i=M(),a&&a.c(),l=ke()},m(u,f){H(e,u,f),w(u,t,f),r&&r.m(u,f),w(u,i,f),a&&a.m(u,f),w(u,l,f),s=!0},p(u,[f]){const c={};f&1081361&&(c.$$scope={dirty:f,ctx:u}),e.$set(c),r&&r.p&&(!s||f&32775)&&wt(r,o,u,u[15],s?vt(o,u[15],f,zA):St(u[15]),s_),u[0].enabled?a?(a.p(u,f),f&1&&A(a,1)):(a=o_(u),a.c(),A(a,1),a.m(l.parentNode,l)):a&&(oe(),I(a,1,1,()=>{a=null}),re())},i(u){s||(A(e.$$.fragment,u),A(r,u),A(a),s=!0)},o(u){I(e.$$.fragment,u),I(r,u),I(a),s=!1},d(u){u&&(v(t),v(i),v(l)),z(e,u),r&&r.d(u),a&&a.d(u)}}}const qr="s3_test_request";function GA(n,e,t){let{$$slots:i={},$$scope:l}=e,{originalConfig:s={}}=e,{config:o={}}=e,{configKey:r="s3"}=e,{toggleLabel:a="Enable S3"}=e,{testFilesystem:u="storage"}=e,{testError:f=null}=e,{isTesting:c=!1}=e,d=null,m=null;function h(O){t(2,c=!0),clearTimeout(m),m=setTimeout(()=>{_()},O)}async function _(){if(t(1,f=null),!o.enabled)return t(2,c=!1),f;fe.cancelRequest(qr),clearTimeout(d),d=setTimeout(()=>{fe.cancelRequest(qr),t(1,f=new Error("S3 test connection timeout.")),t(2,c=!1)},3e4),t(2,c=!0);let O;try{await fe.settings.testS3(u,{$cancelKey:qr})}catch(E){O=E}return O!=null&&O.isAbort||(t(1,f=O),t(2,c=!1),clearTimeout(d)),f}Vt(()=>()=>{clearTimeout(d),clearTimeout(m)});function g(){o.enabled=this.checked,t(0,o)}function k(){o.endpoint=this.value,t(0,o)}function S(){o.bucket=this.value,t(0,o)}function T(){o.region=this.value,t(0,o)}function $(){o.accessKey=this.value,t(0,o)}function C(O){n.$$.not_equal(o.secret,O)&&(o.secret=O,t(0,o))}function D(){o.forcePathStyle=this.checked,t(0,o)}return n.$$set=O=>{"originalConfig"in O&&t(5,s=O.originalConfig),"config"in O&&t(0,o=O.config),"configKey"in O&&t(3,r=O.configKey),"toggleLabel"in O&&t(4,a=O.toggleLabel),"testFilesystem"in O&&t(6,u=O.testFilesystem),"testError"in O&&t(1,f=O.testError),"isTesting"in O&&t(2,c=O.isTesting),"$$scope"in O&&t(15,l=O.$$scope)},n.$$.update=()=>{n.$$.dirty&32&&s!=null&&s.enabled&&h(100),n.$$.dirty&9&&(o.enabled||ii(r))},[o,f,c,r,a,s,u,i,g,k,S,T,$,C,D,l]}class zb extends ge{constructor(e){super(),_e(this,e,GA,ZA,he,{originalConfig:5,config:0,configKey:3,toggleLabel:4,testFilesystem:6,testError:1,isTesting:2})}}function XA(n){var O;let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g;function k(E){n[11](E)}function S(E){n[12](E)}function T(E){n[13](E)}let $={toggleLabel:"Use S3 storage",originalConfig:n[0].s3,$$slots:{default:[xA]},$$scope:{ctx:n}};n[1].s3!==void 0&&($.config=n[1].s3),n[4]!==void 0&&($.isTesting=n[4]),n[5]!==void 0&&($.testError=n[5]),e=new zb({props:$}),te.push(()=>be(e,"config",k)),te.push(()=>be(e,"isTesting",S)),te.push(()=>be(e,"testError",T));let C=((O=n[1].s3)==null?void 0:O.enabled)&&!n[6]&&!n[3]&&a_(n),D=n[6]&&u_(n);return{c(){V(e.$$.fragment),s=M(),o=b("div"),r=b("div"),a=M(),C&&C.c(),u=M(),D&&D.c(),f=M(),c=b("button"),d=b("span"),d.textContent="Save changes",p(r,"class","flex-fill"),p(d,"class","txt"),p(c,"type","submit"),p(c,"class","btn btn-expanded"),c.disabled=m=!n[6]||n[3],ee(c,"btn-loading",n[3]),p(o,"class","flex")},m(E,L){H(e,E,L),w(E,s,L),w(E,o,L),y(o,r),y(o,a),C&&C.m(o,null),y(o,u),D&&D.m(o,null),y(o,f),y(o,c),y(c,d),h=!0,_||(g=K(c,"click",n[15]),_=!0)},p(E,L){var P;const F={};L&1&&(F.originalConfig=E[0].s3),L&524291&&(F.$$scope={dirty:L,ctx:E}),!t&&L&2&&(t=!0,F.config=E[1].s3,ye(()=>t=!1)),!i&&L&16&&(i=!0,F.isTesting=E[4],ye(()=>i=!1)),!l&&L&32&&(l=!0,F.testError=E[5],ye(()=>l=!1)),e.$set(F),(P=E[1].s3)!=null&&P.enabled&&!E[6]&&!E[3]?C?C.p(E,L):(C=a_(E),C.c(),C.m(o,u)):C&&(C.d(1),C=null),E[6]?D?D.p(E,L):(D=u_(E),D.c(),D.m(o,f)):D&&(D.d(1),D=null),(!h||L&72&&m!==(m=!E[6]||E[3]))&&(c.disabled=m),(!h||L&8)&&ee(c,"btn-loading",E[3])},i(E){h||(A(e.$$.fragment,E),h=!0)},o(E){I(e.$$.fragment,E),h=!1},d(E){E&&(v(s),v(o)),z(e,E),C&&C.d(),D&&D.d(),_=!1,g()}}}function QA(n){let e;return{c(){e=b("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:Q,i:Q,o:Q,d(t){t&&v(e)}}}function r_(n){var L;let e,t,i,l,s,o,r,a=(L=n[0].s3)!=null&&L.enabled?"S3 storage":"local file system",u,f,c,d=n[1].s3.enabled?"S3 storage":"local file system",m,h,_,g,k,S,T,$,C,D,O,E;return{c(){e=b("div"),t=b("div"),i=b("div"),i.innerHTML='',l=M(),s=b("div"),o=Y(`If you have existing uploaded files, you'll have to migrate them manually from the `),r=b("strong"),u=Y(a),f=Y(` to the @@ -159,4 +159,4 @@ Also note that some OAuth2 providers (like Twitter), don't return an email and t @weekly @daily @midnight -@hourly`))],L=!0)},p(P,N){var q,W;(!E||N[1]&1&&i!==(i=P[31]))&&p(e,"for",i),(!E||N[1]&1&&o!==(o=P[31]))&&p(s,"id",o),(!E||N[0]&1&&r!==(r=!((W=(q=P[0])==null?void 0:q.backups)!=null&&W.cron)))&&(s.autofocus=r),N[0]&2&&s.value!==P[1].backups.cron&&ue(s,P[1].backups.cron);const R={};N[0]&2|N[1]&2&&(R.$$scope={dirty:N,ctx:P}),_.$set(R)},i(P){E||(A(_.$$.fragment,P),E=!0)},o(P){I(_.$$.fragment,P),E=!1},d(P){P&&(v(e),v(l),v(s),v(a),v(u),v(g),v(k)),z(_),L=!1,we(F)}}}function PL(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Max @auto backups to keep"),l=M(),s=b("input"),p(e,"for",i=n[31]),p(s,"type","number"),p(s,"id",o=n[31]),p(s,"min","1")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[1].backups.cronMaxKeep),r||(a=K(s,"input",n[23]),r=!0)},p(u,f){f[1]&1&&i!==(i=u[31])&&p(e,"for",i),f[1]&1&&o!==(o=u[31])&&p(s,"id",o),f[0]&2&&st(s.value)!==u[1].backups.cronMaxKeep&&ue(s,u[1].backups.cronMaxKeep)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function hg(n){let e;function t(s,o){return s[7]?RL:s[8]?FL:NL}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function NL(n){let e;return{c(){e=b("div"),e.innerHTML=' S3 connected successfully',p(e,"class","label label-sm label-success entrance-right")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function FL(n){let e,t,i,l;return{c(){e=b("div"),e.innerHTML=' Failed to establish S3 connection',p(e,"class","label label-sm label-warning entrance-right")},m(s,o){var r;w(s,e,o),i||(l=ve(t=Le.call(null,e,(r=n[8].data)==null?void 0:r.message)),i=!0)},p(s,o){var r;t&&$t(t.update)&&o[0]&256&&t.update.call(null,(r=s[8].data)==null?void 0:r.message)},d(s){s&&v(e),i=!1,l()}}}function RL(n){let e;return{c(){e=b("span"),p(e,"class","loader loader-sm")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function _g(n){let e,t,i,l,s;return{c(){e=b("button"),t=b("span"),t.textContent="Reset",p(t,"class","txt"),p(e,"type","submit"),p(e,"class","btn btn-hint btn-transparent"),e.disabled=i=!n[9]||n[5]},m(o,r){w(o,e,r),y(e,t),l||(s=K(e,"click",n[27]),l=!0)},p(o,r){r[0]&544&&i!==(i=!o[9]||o[5])&&(e.disabled=i)},d(o){o&&v(e),l=!1,s()}}}function qL(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L,F,P;m=new Go({props:{class:"btn-sm",tooltip:"Refresh"}}),m.$on("refresh",n[13]),_=new OL({props:{class:"btn-sm"}}),_.$on("success",n[13]);let N={};k=new TL({props:N}),n[15](k);function R(G,B){return G[6]?EL:DL}let q=R(n),W=q(n),J=n[6]&&!n[4]&&pg(n);return{c(){e=b("header"),t=b("nav"),i=b("div"),i.textContent="Settings",l=M(),s=b("div"),o=Y(n[10]),r=M(),a=b("div"),u=b("div"),f=b("div"),c=b("span"),c.textContent="Backup and restore your PocketBase data",d=M(),V(m.$$.fragment),h=M(),V(_.$$.fragment),g=M(),V(k.$$.fragment),S=M(),T=b("hr"),$=M(),C=b("button"),D=b("span"),D.textContent="Backups options",O=M(),W.c(),E=M(),J&&J.c(),p(i,"class","breadcrumb-item"),p(s,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(c,"class","txt-xl"),p(f,"class","flex m-b-sm flex-gap-10"),p(D,"class","txt"),p(C,"type","button"),p(C,"class","btn btn-secondary"),C.disabled=n[4],ee(C,"btn-loading",n[4]),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(G,B){w(G,e,B),y(e,t),y(t,i),y(t,l),y(t,s),y(s,o),w(G,r,B),w(G,a,B),y(a,u),y(u,f),y(f,c),y(f,d),H(m,f,null),y(f,h),H(_,f,null),y(u,g),H(k,u,null),y(u,S),y(u,T),y(u,$),y(u,C),y(C,D),y(C,O),W.m(C,null),y(u,E),J&&J.m(u,null),L=!0,F||(P=[K(C,"click",n[16]),K(u,"submit",Ye(n[11]))],F=!0)},p(G,B){(!L||B[0]&1024)&&le(o,G[10]);const U={};k.$set(U),q!==(q=R(G))&&(W.d(1),W=q(G),W&&(W.c(),W.m(C,null))),(!L||B[0]&16)&&(C.disabled=G[4]),(!L||B[0]&16)&&ee(C,"btn-loading",G[4]),G[6]&&!G[4]?J?(J.p(G,B),B[0]&80&&A(J,1)):(J=pg(G),J.c(),A(J,1),J.m(u,null)):J&&(oe(),I(J,1,1,()=>{J=null}),re())},i(G){L||(A(m.$$.fragment,G),A(_.$$.fragment,G),A(k.$$.fragment,G),A(J),L=!0)},o(G){I(m.$$.fragment,G),I(_.$$.fragment,G),I(k.$$.fragment,G),I(J),L=!1},d(G){G&&(v(e),v(r),v(a)),z(m),z(_),n[15](null),z(k),W.d(),J&&J.d(),F=!1,we(P)}}}function jL(n){let e,t,i,l;return e=new bi({}),i=new gn({props:{$$slots:{default:[qL]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(s,o){H(e,s,o),w(s,t,o),H(i,s,o),l=!0},p(s,o){const r={};o[0]&2047|o[1]&2&&(r.$$scope={dirty:o,ctx:s}),i.$set(r)},i(s){l||(A(e.$$.fragment,s),A(i.$$.fragment,s),l=!0)},o(s){I(e.$$.fragment,s),I(i.$$.fragment,s),l=!1},d(s){s&&v(t),z(e,s),z(i,s)}}}function HL(n,e,t){let i,l;We(n,Dt,B=>t(10,l=B)),tn(Dt,l="Backups",l);let s,o={},r={},a=!1,u=!1,f="",c=!1,d=!1,m=!1,h=null;_();async function _(){t(4,a=!0);try{const B=await fe.settings.getAll()||{};k(B)}catch(B){fe.error(B)}t(4,a=!1)}async function g(){if(!(u||!i)){t(5,u=!0);try{const B=await fe.settings.update(j.filterRedactedProps(r));await T(),k(B),It("Successfully saved application settings.")}catch(B){fe.error(B)}t(5,u=!1)}}function k(B={}){t(1,r={backups:(B==null?void 0:B.backups)||{}}),t(2,c=r.backups.cron!=""),t(0,o=JSON.parse(JSON.stringify(r)))}function S(){t(1,r=JSON.parse(JSON.stringify(o||{backups:{}}))),t(2,c=r.backups.cron!="")}async function T(){return s==null?void 0:s.loadBackups()}function $(B){te[B?"unshift":"push"](()=>{s=B,t(3,s)})}const C=()=>t(6,d=!d);function D(){c=this.checked,t(2,c)}function O(){r.backups.cron=this.value,t(1,r),t(2,c)}const E=()=>{t(1,r.backups.cron="0 0 * * *",r)},L=()=>{t(1,r.backups.cron="0 0 * * 0",r)},F=()=>{t(1,r.backups.cron="0 0 * * 1,3",r)},P=()=>{t(1,r.backups.cron="0 0 1 * *",r)};function N(){r.backups.cronMaxKeep=st(this.value),t(1,r),t(2,c)}function R(B){n.$$.not_equal(r.backups.s3,B)&&(r.backups.s3=B,t(1,r),t(2,c))}function q(B){m=B,t(7,m)}function W(B){h=B,t(8,h)}const J=()=>S(),G=()=>g();return n.$$.update=()=>{var B;n.$$.dirty[0]&1&&t(14,f=JSON.stringify(o)),n.$$.dirty[0]&6&&!c&&(B=r==null?void 0:r.backups)!=null&&B.cron&&(ii("backups.cron"),t(1,r.backups.cron="",r)),n.$$.dirty[0]&16386&&t(9,i=f!=JSON.stringify(r))},[o,r,c,s,a,u,d,m,h,i,l,g,S,T,f,$,C,D,O,E,L,F,P,N,R,q,W,J,G]}class zL extends ge{constructor(e){super(),_e(this,e,HL,jL,he,{},null,[-1,-1])}}const Ht=[async n=>{const e=new URLSearchParams(window.location.search);return n.location!=="/"&&e.has("installer")?nl("/"):!0}],VL={"/login":Ft({component:U8,conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/request-password-reset":Ft({asyncComponent:()=>rt(()=>import("./PageAdminRequestPasswordReset-fabf61d9.js"),[],import.meta.url),conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageAdminConfirmPasswordReset-3f83e2fb.js"),[],import.meta.url),conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/collections":Ft({component:d8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/logs":Ft({component:f$,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings":Ft({component:x8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/admins":Ft({component:q8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/mail":Ft({component:HA,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/storage":Ft({component:rI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/auth-providers":Ft({component:$I,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/tokens":Ft({component:LI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/export-collections":Ft({component:jI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/import-collections":Ft({component:lL,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/backups":Ft({component:zL,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/users/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmPasswordReset-d2ce212c.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmPasswordReset-d2ce212c.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/users/confirm-verification/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmVerification-bca816f3.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-verification/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmVerification-bca816f3.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/users/confirm-email-change/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmEmailChange-db209470.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-email-change/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmEmailChange-db209470.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/oauth2-redirect":Ft({asyncComponent:()=>rt(()=>import("./PageOAuth2Redirect-18ed8ff3.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"*":Ft({component:kv,userData:{showAppSidebar:!1}})};function BL(n,{from:e,to:t},i={}){const l=getComputedStyle(n),s=l.transform==="none"?"":l.transform,[o,r]=l.transformOrigin.split(" ").map(parseFloat),a=e.left+e.width*o/t.width-(t.left+o),u=e.top+e.height*r/t.height-(t.top+r),{delay:f=0,duration:c=m=>Math.sqrt(m)*120,easing:d=Zo}=i;return{delay:f,duration:$t(c)?c(Math.sqrt(a*a+u*u)):c,easing:d,css:(m,h)=>{const _=h*a,g=h*u,k=m+h*e.width/t.width,S=m+h*e.height/t.height;return`transform: ${s} translate(${_}px, ${g}px) scale(${k}, ${S});`}}}function gg(n,e,t){const i=n.slice();return i[2]=e[t],i}function UL(n){let e;return{c(){e=b("i"),p(e,"class","ri-alert-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function WL(n){let e;return{c(){e=b("i"),p(e,"class","ri-error-warning-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function YL(n){let e;return{c(){e=b("i"),p(e,"class","ri-checkbox-circle-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function KL(n){let e;return{c(){e=b("i"),p(e,"class","ri-information-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function bg(n,e){let t,i,l,s,o=e[2].message+"",r,a,u,f,c,d,m,h=Q,_,g,k;function S(D,O){return D[2].type==="info"?KL:D[2].type==="success"?YL:D[2].type==="warning"?WL:UL}let T=S(e),$=T(e);function C(){return e[1](e[2])}return{key:n,first:null,c(){t=b("div"),i=b("div"),$.c(),l=M(),s=b("div"),r=Y(o),a=M(),u=b("button"),u.innerHTML='',f=M(),p(i,"class","icon"),p(s,"class","content"),p(u,"type","button"),p(u,"class","close"),p(t,"class","alert txt-break"),ee(t,"alert-info",e[2].type=="info"),ee(t,"alert-success",e[2].type=="success"),ee(t,"alert-danger",e[2].type=="error"),ee(t,"alert-warning",e[2].type=="warning"),this.first=t},m(D,O){w(D,t,O),y(t,i),$.m(i,null),y(t,l),y(t,s),y(s,r),y(t,a),y(t,u),y(t,f),_=!0,g||(k=K(u,"click",Ye(C)),g=!0)},p(D,O){e=D,T!==(T=S(e))&&($.d(1),$=T(e),$&&($.c(),$.m(i,null))),(!_||O&1)&&o!==(o=e[2].message+"")&&le(r,o),(!_||O&1)&&ee(t,"alert-info",e[2].type=="info"),(!_||O&1)&&ee(t,"alert-success",e[2].type=="success"),(!_||O&1)&&ee(t,"alert-danger",e[2].type=="error"),(!_||O&1)&&ee(t,"alert-warning",e[2].type=="warning")},r(){m=t.getBoundingClientRect()},f(){m0(t),h(),Mg(t,m)},a(){h(),h=p0(t,m,BL,{duration:150})},i(D){_||(D&&Ke(()=>{_&&(d&&d.end(1),c=Eg(t,et,{duration:150}),c.start())}),_=!0)},o(D){c&&c.invalidate(),D&&(d=_a(t,fs,{duration:150})),_=!1},d(D){D&&v(t),$.d(),D&&d&&d.end(),g=!1,k()}}}function JL(n){let e,t=[],i=new Map,l,s=pe(n[0]);const o=r=>r[2].message;for(let r=0;rt(0,i=s)),[i,s=>q1(s)]}class GL extends ge{constructor(e){super(),_e(this,e,ZL,JL,he,{})}}function XL(n){var l;let e,t=((l=n[1])==null?void 0:l.text)+"",i;return{c(){e=b("h4"),i=Y(t),p(e,"class","block center txt-break"),p(e,"slot","header")},m(s,o){w(s,e,o),y(e,i)},p(s,o){var r;o&2&&t!==(t=((r=s[1])==null?void 0:r.text)+"")&&le(i,t)},d(s){s&&v(e)}}}function QL(n){let e,t,i,l,s,o,r;return{c(){e=b("button"),t=b("span"),t.textContent="No",i=M(),l=b("button"),s=b("span"),s.textContent="Yes",p(t,"class","txt"),e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-transparent btn-expanded-sm"),e.disabled=n[2],p(s,"class","txt"),p(l,"type","button"),p(l,"class","btn btn-danger btn-expanded"),l.disabled=n[2],ee(l,"btn-loading",n[2])},m(a,u){w(a,e,u),y(e,t),w(a,i,u),w(a,l,u),y(l,s),e.focus(),o||(r=[K(e,"click",n[4]),K(l,"click",n[5])],o=!0)},p(a,u){u&4&&(e.disabled=a[2]),u&4&&(l.disabled=a[2]),u&4&&ee(l,"btn-loading",a[2])},d(a){a&&(v(e),v(i),v(l)),o=!1,we(r)}}}function xL(n){let e,t,i={class:"confirm-popup hide-content overlay-panel-sm",overlayClose:!n[2],escClose:!n[2],btnClose:!1,popup:!0,$$slots:{footer:[QL],header:[XL]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[6](e),e.$on("hide",n[7]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&4&&(o.overlayClose=!l[2]),s&4&&(o.escClose=!l[2]),s&271&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[6](null),z(e,l)}}}function eP(n,e,t){let i;We(n,Za,c=>t(1,i=c));let l,s=!1,o=!1;const r=()=>{t(3,o=!1),l==null||l.hide()},a=async()=>{i!=null&&i.yesCallback&&(t(2,s=!0),await Promise.resolve(i.yesCallback()),t(2,s=!1)),t(3,o=!0),l==null||l.hide()};function u(c){te[c?"unshift":"push"](()=>{l=c,t(0,l)})}const f=async()=>{!o&&(i!=null&&i.noCallback)&&i.noCallback(),await Qt(),t(3,o=!1),Ib()};return n.$$.update=()=>{n.$$.dirty&3&&i!=null&&i.text&&(t(3,o=!1),l==null||l.show())},[l,i,s,o,r,a,u,f]}class tP extends ge{constructor(e){super(),_e(this,e,eP,xL,he,{})}}function yg(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S;return _=new En({props:{class:"dropdown dropdown-nowrap dropdown-upside dropdown-left",$$slots:{default:[nP]},$$scope:{ctx:n}}}),{c(){var T;e=b("aside"),t=b("a"),t.innerHTML='PocketBase logo',i=M(),l=b("nav"),s=b("a"),s.innerHTML='',o=M(),r=b("a"),r.innerHTML='',a=M(),u=b("a"),u.innerHTML='',f=M(),c=b("figure"),d=b("img"),h=M(),V(_.$$.fragment),p(t,"href","/"),p(t,"class","logo logo-sm"),p(s,"href","/collections"),p(s,"class","menu-item"),p(s,"aria-label","Collections"),p(r,"href","/logs"),p(r,"class","menu-item"),p(r,"aria-label","Logs"),p(u,"href","/settings"),p(u,"class","menu-item"),p(u,"aria-label","Settings"),p(l,"class","main-menu"),nn(d.src,m="./images/avatars/avatar"+(((T=n[0])==null?void 0:T.avatar)||0)+".svg")||p(d,"src",m),p(d,"alt","Avatar"),p(c,"class","thumb thumb-circle link-hint closable"),p(e,"class","app-sidebar")},m(T,$){w(T,e,$),y(e,t),y(e,i),y(e,l),y(l,s),y(l,o),y(l,r),y(l,a),y(l,u),y(e,f),y(e,c),y(c,d),y(c,h),H(_,c,null),g=!0,k||(S=[ve(ln.call(null,t)),ve(ln.call(null,s)),ve(Pn.call(null,s,{path:"/collections/?.*",className:"current-route"})),ve(Le.call(null,s,{text:"Collections",position:"right"})),ve(ln.call(null,r)),ve(Pn.call(null,r,{path:"/logs/?.*",className:"current-route"})),ve(Le.call(null,r,{text:"Logs",position:"right"})),ve(ln.call(null,u)),ve(Pn.call(null,u,{path:"/settings/?.*",className:"current-route"})),ve(Le.call(null,u,{text:"Settings",position:"right"}))],k=!0)},p(T,$){var D;(!g||$&1&&!nn(d.src,m="./images/avatars/avatar"+(((D=T[0])==null?void 0:D.avatar)||0)+".svg"))&&p(d,"src",m);const C={};$&4096&&(C.$$scope={dirty:$,ctx:T}),_.$set(C)},i(T){g||(A(_.$$.fragment,T),g=!0)},o(T){I(_.$$.fragment,T),g=!1},d(T){T&&v(e),z(_),k=!1,we(S)}}}function nP(n){let e,t,i,l,s,o,r;return{c(){e=b("a"),e.innerHTML=' Manage admins',t=M(),i=b("hr"),l=M(),s=b("button"),s.innerHTML=' Logout',p(e,"href","/settings/admins"),p(e,"class","dropdown-item closable"),p(s,"type","button"),p(s,"class","dropdown-item closable")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),w(a,l,u),w(a,s,u),o||(r=[ve(ln.call(null,e)),K(s,"click",n[7])],o=!0)},p:Q,d(a){a&&(v(e),v(t),v(i),v(l),v(s)),o=!1,we(r)}}}function kg(n){let e,t,i;return t=new xa({props:{conf:j.defaultEditorOptions()}}),t.$on("init",n[8]),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tinymce-preloader hidden")},m(l,s){w(l,e,s),H(t,e,null),i=!0},p:Q,i(l){i||(A(t.$$.fragment,l),i=!0)},o(l){I(t.$$.fragment,l),i=!1},d(l){l&&v(e),z(t)}}}function iP(n){var g;let e,t,i,l,s,o,r,a,u,f,c,d,m;document.title=e=j.joinNonEmpty([n[4],n[3],"PocketBase"]," - ");let h=((g=n[0])==null?void 0:g.id)&&n[1]&&yg(n);o=new O0({props:{routes:VL}}),o.$on("routeLoading",n[5]),o.$on("conditionsFailed",n[6]),a=new GL({}),f=new tP({});let _=n[1]&&!n[2]&&kg(n);return{c(){t=M(),i=b("div"),h&&h.c(),l=M(),s=b("div"),V(o.$$.fragment),r=M(),V(a.$$.fragment),u=M(),V(f.$$.fragment),c=M(),_&&_.c(),d=ke(),p(s,"class","app-body"),p(i,"class","app-layout")},m(k,S){w(k,t,S),w(k,i,S),h&&h.m(i,null),y(i,l),y(i,s),H(o,s,null),y(s,r),H(a,s,null),w(k,u,S),H(f,k,S),w(k,c,S),_&&_.m(k,S),w(k,d,S),m=!0},p(k,[S]){var T;(!m||S&24)&&e!==(e=j.joinNonEmpty([k[4],k[3],"PocketBase"]," - "))&&(document.title=e),(T=k[0])!=null&&T.id&&k[1]?h?(h.p(k,S),S&3&&A(h,1)):(h=yg(k),h.c(),A(h,1),h.m(i,l)):h&&(oe(),I(h,1,1,()=>{h=null}),re()),k[1]&&!k[2]?_?(_.p(k,S),S&6&&A(_,1)):(_=kg(k),_.c(),A(_,1),_.m(d.parentNode,d)):_&&(oe(),I(_,1,1,()=>{_=null}),re())},i(k){m||(A(h),A(o.$$.fragment,k),A(a.$$.fragment,k),A(f.$$.fragment,k),A(_),m=!0)},o(k){I(h),I(o.$$.fragment,k),I(a.$$.fragment,k),I(f.$$.fragment,k),I(_),m=!1},d(k){k&&(v(t),v(i),v(u),v(c),v(d)),h&&h.d(),z(o),z(a),z(f,k),_&&_.d(k)}}}function lP(n,e,t){let i,l,s,o;We(n,Sl,_=>t(10,i=_)),We(n,Mo,_=>t(3,l=_)),We(n,Da,_=>t(0,s=_)),We(n,Dt,_=>t(4,o=_));let r,a=!1,u=!1;function f(_){var g,k,S,T;((g=_==null?void 0:_.detail)==null?void 0:g.location)!==r&&(t(1,a=!!((S=(k=_==null?void 0:_.detail)==null?void 0:k.userData)!=null&&S.showAppSidebar)),r=(T=_==null?void 0:_.detail)==null?void 0:T.location,tn(Dt,o="",o),Gt({}),Ib())}function c(){nl("/")}async function d(){var _,g;if(s!=null&&s.id)try{const k=await fe.settings.getAll({$cancelKey:"initialAppSettings"});tn(Mo,l=((_=k==null?void 0:k.meta)==null?void 0:_.appName)||"",l),tn(Sl,i=!!((g=k==null?void 0:k.meta)!=null&&g.hideControls),i)}catch(k){k!=null&&k.isAbort||console.warn("Failed to load app settings.",k)}}function m(){fe.logout()}const h=()=>{t(2,u=!0)};return n.$$.update=()=>{n.$$.dirty&1&&s!=null&&s.id&&d()},[s,a,u,l,o,f,c,m,h]}class sP extends ge{constructor(e){super(),_e(this,e,lP,iP,he,{})}}new sP({target:document.getElementById("app")});export{we as A,It as B,j as C,nl as D,ke as E,H1 as F,Bo as G,ao as H,Vt as I,We as J,zn as K,ot as L,te as M,Ja as N,pe as O,dt as P,Li as Q,Lt as R,ge as S,ut as T,u0 as U,I as a,M as b,V as c,z as d,b as e,p as f,w as g,y as h,_e as i,ve as j,oe as k,ln as l,H as m,re as n,v as o,fe as p,me as q,ee as r,he as s,A as t,K as u,Ye as v,Y as w,le as x,Q as y,ue as z}; +@hourly`))],L=!0)},p(P,N){var q,W;(!E||N[1]&1&&i!==(i=P[31]))&&p(e,"for",i),(!E||N[1]&1&&o!==(o=P[31]))&&p(s,"id",o),(!E||N[0]&1&&r!==(r=!((W=(q=P[0])==null?void 0:q.backups)!=null&&W.cron)))&&(s.autofocus=r),N[0]&2&&s.value!==P[1].backups.cron&&ue(s,P[1].backups.cron);const R={};N[0]&2|N[1]&2&&(R.$$scope={dirty:N,ctx:P}),_.$set(R)},i(P){E||(A(_.$$.fragment,P),E=!0)},o(P){I(_.$$.fragment,P),E=!1},d(P){P&&(v(e),v(l),v(s),v(a),v(u),v(g),v(k)),z(_),L=!1,we(F)}}}function PL(n){let e,t,i,l,s,o,r,a;return{c(){e=b("label"),t=Y("Max @auto backups to keep"),l=M(),s=b("input"),p(e,"for",i=n[31]),p(s,"type","number"),p(s,"id",o=n[31]),p(s,"min","1")},m(u,f){w(u,e,f),y(e,t),w(u,l,f),w(u,s,f),ue(s,n[1].backups.cronMaxKeep),r||(a=K(s,"input",n[23]),r=!0)},p(u,f){f[1]&1&&i!==(i=u[31])&&p(e,"for",i),f[1]&1&&o!==(o=u[31])&&p(s,"id",o),f[0]&2&&st(s.value)!==u[1].backups.cronMaxKeep&&ue(s,u[1].backups.cronMaxKeep)},d(u){u&&(v(e),v(l),v(s)),r=!1,a()}}}function hg(n){let e;function t(s,o){return s[7]?RL:s[8]?FL:NL}let i=t(n),l=i(n);return{c(){l.c(),e=ke()},m(s,o){l.m(s,o),w(s,e,o)},p(s,o){i===(i=t(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e.parentNode,e)))},d(s){s&&v(e),l.d(s)}}}function NL(n){let e;return{c(){e=b("div"),e.innerHTML=' S3 connected successfully',p(e,"class","label label-sm label-success entrance-right")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function FL(n){let e,t,i,l;return{c(){e=b("div"),e.innerHTML=' Failed to establish S3 connection',p(e,"class","label label-sm label-warning entrance-right")},m(s,o){var r;w(s,e,o),i||(l=ve(t=Le.call(null,e,(r=n[8].data)==null?void 0:r.message)),i=!0)},p(s,o){var r;t&&$t(t.update)&&o[0]&256&&t.update.call(null,(r=s[8].data)==null?void 0:r.message)},d(s){s&&v(e),i=!1,l()}}}function RL(n){let e;return{c(){e=b("span"),p(e,"class","loader loader-sm")},m(t,i){w(t,e,i)},p:Q,d(t){t&&v(e)}}}function _g(n){let e,t,i,l,s;return{c(){e=b("button"),t=b("span"),t.textContent="Reset",p(t,"class","txt"),p(e,"type","submit"),p(e,"class","btn btn-hint btn-transparent"),e.disabled=i=!n[9]||n[5]},m(o,r){w(o,e,r),y(e,t),l||(s=K(e,"click",n[27]),l=!0)},p(o,r){r[0]&544&&i!==(i=!o[9]||o[5])&&(e.disabled=i)},d(o){o&&v(e),l=!1,s()}}}function qL(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S,T,$,C,D,O,E,L,F,P;m=new Go({props:{class:"btn-sm",tooltip:"Refresh"}}),m.$on("refresh",n[13]),_=new OL({props:{class:"btn-sm"}}),_.$on("success",n[13]);let N={};k=new TL({props:N}),n[15](k);function R(G,B){return G[6]?EL:DL}let q=R(n),W=q(n),J=n[6]&&!n[4]&&pg(n);return{c(){e=b("header"),t=b("nav"),i=b("div"),i.textContent="Settings",l=M(),s=b("div"),o=Y(n[10]),r=M(),a=b("div"),u=b("div"),f=b("div"),c=b("span"),c.textContent="Backup and restore your PocketBase data",d=M(),V(m.$$.fragment),h=M(),V(_.$$.fragment),g=M(),V(k.$$.fragment),S=M(),T=b("hr"),$=M(),C=b("button"),D=b("span"),D.textContent="Backups options",O=M(),W.c(),E=M(),J&&J.c(),p(i,"class","breadcrumb-item"),p(s,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(c,"class","txt-xl"),p(f,"class","flex m-b-sm flex-gap-10"),p(D,"class","txt"),p(C,"type","button"),p(C,"class","btn btn-secondary"),C.disabled=n[4],ee(C,"btn-loading",n[4]),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(G,B){w(G,e,B),y(e,t),y(t,i),y(t,l),y(t,s),y(s,o),w(G,r,B),w(G,a,B),y(a,u),y(u,f),y(f,c),y(f,d),H(m,f,null),y(f,h),H(_,f,null),y(u,g),H(k,u,null),y(u,S),y(u,T),y(u,$),y(u,C),y(C,D),y(C,O),W.m(C,null),y(u,E),J&&J.m(u,null),L=!0,F||(P=[K(C,"click",n[16]),K(u,"submit",Ye(n[11]))],F=!0)},p(G,B){(!L||B[0]&1024)&&le(o,G[10]);const U={};k.$set(U),q!==(q=R(G))&&(W.d(1),W=q(G),W&&(W.c(),W.m(C,null))),(!L||B[0]&16)&&(C.disabled=G[4]),(!L||B[0]&16)&&ee(C,"btn-loading",G[4]),G[6]&&!G[4]?J?(J.p(G,B),B[0]&80&&A(J,1)):(J=pg(G),J.c(),A(J,1),J.m(u,null)):J&&(oe(),I(J,1,1,()=>{J=null}),re())},i(G){L||(A(m.$$.fragment,G),A(_.$$.fragment,G),A(k.$$.fragment,G),A(J),L=!0)},o(G){I(m.$$.fragment,G),I(_.$$.fragment,G),I(k.$$.fragment,G),I(J),L=!1},d(G){G&&(v(e),v(r),v(a)),z(m),z(_),n[15](null),z(k),W.d(),J&&J.d(),F=!1,we(P)}}}function jL(n){let e,t,i,l;return e=new bi({}),i=new gn({props:{$$slots:{default:[qL]},$$scope:{ctx:n}}}),{c(){V(e.$$.fragment),t=M(),V(i.$$.fragment)},m(s,o){H(e,s,o),w(s,t,o),H(i,s,o),l=!0},p(s,o){const r={};o[0]&2047|o[1]&2&&(r.$$scope={dirty:o,ctx:s}),i.$set(r)},i(s){l||(A(e.$$.fragment,s),A(i.$$.fragment,s),l=!0)},o(s){I(e.$$.fragment,s),I(i.$$.fragment,s),l=!1},d(s){s&&v(t),z(e,s),z(i,s)}}}function HL(n,e,t){let i,l;We(n,Dt,B=>t(10,l=B)),tn(Dt,l="Backups",l);let s,o={},r={},a=!1,u=!1,f="",c=!1,d=!1,m=!1,h=null;_();async function _(){t(4,a=!0);try{const B=await fe.settings.getAll()||{};k(B)}catch(B){fe.error(B)}t(4,a=!1)}async function g(){if(!(u||!i)){t(5,u=!0);try{const B=await fe.settings.update(j.filterRedactedProps(r));await T(),k(B),It("Successfully saved application settings.")}catch(B){fe.error(B)}t(5,u=!1)}}function k(B={}){t(1,r={backups:(B==null?void 0:B.backups)||{}}),t(2,c=r.backups.cron!=""),t(0,o=JSON.parse(JSON.stringify(r)))}function S(){t(1,r=JSON.parse(JSON.stringify(o||{backups:{}}))),t(2,c=r.backups.cron!="")}async function T(){return s==null?void 0:s.loadBackups()}function $(B){te[B?"unshift":"push"](()=>{s=B,t(3,s)})}const C=()=>t(6,d=!d);function D(){c=this.checked,t(2,c)}function O(){r.backups.cron=this.value,t(1,r),t(2,c)}const E=()=>{t(1,r.backups.cron="0 0 * * *",r)},L=()=>{t(1,r.backups.cron="0 0 * * 0",r)},F=()=>{t(1,r.backups.cron="0 0 * * 1,3",r)},P=()=>{t(1,r.backups.cron="0 0 1 * *",r)};function N(){r.backups.cronMaxKeep=st(this.value),t(1,r),t(2,c)}function R(B){n.$$.not_equal(r.backups.s3,B)&&(r.backups.s3=B,t(1,r),t(2,c))}function q(B){m=B,t(7,m)}function W(B){h=B,t(8,h)}const J=()=>S(),G=()=>g();return n.$$.update=()=>{var B;n.$$.dirty[0]&1&&t(14,f=JSON.stringify(o)),n.$$.dirty[0]&6&&!c&&(B=r==null?void 0:r.backups)!=null&&B.cron&&(ii("backups.cron"),t(1,r.backups.cron="",r)),n.$$.dirty[0]&16386&&t(9,i=f!=JSON.stringify(r))},[o,r,c,s,a,u,d,m,h,i,l,g,S,T,f,$,C,D,O,E,L,F,P,N,R,q,W,J,G]}class zL extends ge{constructor(e){super(),_e(this,e,HL,jL,he,{},null,[-1,-1])}}const Ht=[async n=>{const e=new URLSearchParams(window.location.search);return n.location!=="/"&&e.has("installer")?nl("/"):!0}],VL={"/login":Ft({component:U8,conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/request-password-reset":Ft({asyncComponent:()=>rt(()=>import("./PageAdminRequestPasswordReset-24a89844.js"),[],import.meta.url),conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageAdminConfirmPasswordReset-f7ab4776.js"),[],import.meta.url),conditions:Ht.concat([n=>!fe.authStore.isValid]),userData:{showAppSidebar:!1}}),"/collections":Ft({component:d8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/logs":Ft({component:f$,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings":Ft({component:x8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/admins":Ft({component:q8,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/mail":Ft({component:HA,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/storage":Ft({component:rI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/auth-providers":Ft({component:$I,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/tokens":Ft({component:LI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/export-collections":Ft({component:jI,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/import-collections":Ft({component:lL,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/backups":Ft({component:zL,conditions:Ht.concat([n=>fe.authStore.isValid]),userData:{showAppSidebar:!0}}),"/users/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmPasswordReset-b2841fec.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-password-reset/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmPasswordReset-b2841fec.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/users/confirm-verification/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmVerification-19057812.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-verification/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmVerification-19057812.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/users/confirm-email-change/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmEmailChange-96f3613e.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/confirm-email-change/:token":Ft({asyncComponent:()=>rt(()=>import("./PageRecordConfirmEmailChange-96f3613e.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"/auth/oauth2-redirect":Ft({asyncComponent:()=>rt(()=>import("./PageOAuth2Redirect-0f04d5a1.js"),[],import.meta.url),conditions:Ht,userData:{showAppSidebar:!1}}),"*":Ft({component:kv,userData:{showAppSidebar:!1}})};function BL(n,{from:e,to:t},i={}){const l=getComputedStyle(n),s=l.transform==="none"?"":l.transform,[o,r]=l.transformOrigin.split(" ").map(parseFloat),a=e.left+e.width*o/t.width-(t.left+o),u=e.top+e.height*r/t.height-(t.top+r),{delay:f=0,duration:c=m=>Math.sqrt(m)*120,easing:d=Zo}=i;return{delay:f,duration:$t(c)?c(Math.sqrt(a*a+u*u)):c,easing:d,css:(m,h)=>{const _=h*a,g=h*u,k=m+h*e.width/t.width,S=m+h*e.height/t.height;return`transform: ${s} translate(${_}px, ${g}px) scale(${k}, ${S});`}}}function gg(n,e,t){const i=n.slice();return i[2]=e[t],i}function UL(n){let e;return{c(){e=b("i"),p(e,"class","ri-alert-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function WL(n){let e;return{c(){e=b("i"),p(e,"class","ri-error-warning-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function YL(n){let e;return{c(){e=b("i"),p(e,"class","ri-checkbox-circle-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function KL(n){let e;return{c(){e=b("i"),p(e,"class","ri-information-line")},m(t,i){w(t,e,i)},d(t){t&&v(e)}}}function bg(n,e){let t,i,l,s,o=e[2].message+"",r,a,u,f,c,d,m,h=Q,_,g,k;function S(D,O){return D[2].type==="info"?KL:D[2].type==="success"?YL:D[2].type==="warning"?WL:UL}let T=S(e),$=T(e);function C(){return e[1](e[2])}return{key:n,first:null,c(){t=b("div"),i=b("div"),$.c(),l=M(),s=b("div"),r=Y(o),a=M(),u=b("button"),u.innerHTML='',f=M(),p(i,"class","icon"),p(s,"class","content"),p(u,"type","button"),p(u,"class","close"),p(t,"class","alert txt-break"),ee(t,"alert-info",e[2].type=="info"),ee(t,"alert-success",e[2].type=="success"),ee(t,"alert-danger",e[2].type=="error"),ee(t,"alert-warning",e[2].type=="warning"),this.first=t},m(D,O){w(D,t,O),y(t,i),$.m(i,null),y(t,l),y(t,s),y(s,r),y(t,a),y(t,u),y(t,f),_=!0,g||(k=K(u,"click",Ye(C)),g=!0)},p(D,O){e=D,T!==(T=S(e))&&($.d(1),$=T(e),$&&($.c(),$.m(i,null))),(!_||O&1)&&o!==(o=e[2].message+"")&&le(r,o),(!_||O&1)&&ee(t,"alert-info",e[2].type=="info"),(!_||O&1)&&ee(t,"alert-success",e[2].type=="success"),(!_||O&1)&&ee(t,"alert-danger",e[2].type=="error"),(!_||O&1)&&ee(t,"alert-warning",e[2].type=="warning")},r(){m=t.getBoundingClientRect()},f(){m0(t),h(),Mg(t,m)},a(){h(),h=p0(t,m,BL,{duration:150})},i(D){_||(D&&Ke(()=>{_&&(d&&d.end(1),c=Eg(t,et,{duration:150}),c.start())}),_=!0)},o(D){c&&c.invalidate(),D&&(d=_a(t,fs,{duration:150})),_=!1},d(D){D&&v(t),$.d(),D&&d&&d.end(),g=!1,k()}}}function JL(n){let e,t=[],i=new Map,l,s=pe(n[0]);const o=r=>r[2].message;for(let r=0;rt(0,i=s)),[i,s=>q1(s)]}class GL extends ge{constructor(e){super(),_e(this,e,ZL,JL,he,{})}}function XL(n){var l;let e,t=((l=n[1])==null?void 0:l.text)+"",i;return{c(){e=b("h4"),i=Y(t),p(e,"class","block center txt-break"),p(e,"slot","header")},m(s,o){w(s,e,o),y(e,i)},p(s,o){var r;o&2&&t!==(t=((r=s[1])==null?void 0:r.text)+"")&&le(i,t)},d(s){s&&v(e)}}}function QL(n){let e,t,i,l,s,o,r;return{c(){e=b("button"),t=b("span"),t.textContent="No",i=M(),l=b("button"),s=b("span"),s.textContent="Yes",p(t,"class","txt"),e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-transparent btn-expanded-sm"),e.disabled=n[2],p(s,"class","txt"),p(l,"type","button"),p(l,"class","btn btn-danger btn-expanded"),l.disabled=n[2],ee(l,"btn-loading",n[2])},m(a,u){w(a,e,u),y(e,t),w(a,i,u),w(a,l,u),y(l,s),e.focus(),o||(r=[K(e,"click",n[4]),K(l,"click",n[5])],o=!0)},p(a,u){u&4&&(e.disabled=a[2]),u&4&&(l.disabled=a[2]),u&4&&ee(l,"btn-loading",a[2])},d(a){a&&(v(e),v(i),v(l)),o=!1,we(r)}}}function xL(n){let e,t,i={class:"confirm-popup hide-content overlay-panel-sm",overlayClose:!n[2],escClose:!n[2],btnClose:!1,popup:!0,$$slots:{footer:[QL],header:[XL]},$$scope:{ctx:n}};return e=new Xt({props:i}),n[6](e),e.$on("hide",n[7]),{c(){V(e.$$.fragment)},m(l,s){H(e,l,s),t=!0},p(l,[s]){const o={};s&4&&(o.overlayClose=!l[2]),s&4&&(o.escClose=!l[2]),s&271&&(o.$$scope={dirty:s,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){I(e.$$.fragment,l),t=!1},d(l){n[6](null),z(e,l)}}}function eP(n,e,t){let i;We(n,Za,c=>t(1,i=c));let l,s=!1,o=!1;const r=()=>{t(3,o=!1),l==null||l.hide()},a=async()=>{i!=null&&i.yesCallback&&(t(2,s=!0),await Promise.resolve(i.yesCallback()),t(2,s=!1)),t(3,o=!0),l==null||l.hide()};function u(c){te[c?"unshift":"push"](()=>{l=c,t(0,l)})}const f=async()=>{!o&&(i!=null&&i.noCallback)&&i.noCallback(),await Qt(),t(3,o=!1),Ib()};return n.$$.update=()=>{n.$$.dirty&3&&i!=null&&i.text&&(t(3,o=!1),l==null||l.show())},[l,i,s,o,r,a,u,f]}class tP extends ge{constructor(e){super(),_e(this,e,eP,xL,he,{})}}function yg(n){let e,t,i,l,s,o,r,a,u,f,c,d,m,h,_,g,k,S;return _=new En({props:{class:"dropdown dropdown-nowrap dropdown-upside dropdown-left",$$slots:{default:[nP]},$$scope:{ctx:n}}}),{c(){var T;e=b("aside"),t=b("a"),t.innerHTML='PocketBase logo',i=M(),l=b("nav"),s=b("a"),s.innerHTML='',o=M(),r=b("a"),r.innerHTML='',a=M(),u=b("a"),u.innerHTML='',f=M(),c=b("figure"),d=b("img"),h=M(),V(_.$$.fragment),p(t,"href","/"),p(t,"class","logo logo-sm"),p(s,"href","/collections"),p(s,"class","menu-item"),p(s,"aria-label","Collections"),p(r,"href","/logs"),p(r,"class","menu-item"),p(r,"aria-label","Logs"),p(u,"href","/settings"),p(u,"class","menu-item"),p(u,"aria-label","Settings"),p(l,"class","main-menu"),nn(d.src,m="./images/avatars/avatar"+(((T=n[0])==null?void 0:T.avatar)||0)+".svg")||p(d,"src",m),p(d,"alt","Avatar"),p(c,"class","thumb thumb-circle link-hint closable"),p(e,"class","app-sidebar")},m(T,$){w(T,e,$),y(e,t),y(e,i),y(e,l),y(l,s),y(l,o),y(l,r),y(l,a),y(l,u),y(e,f),y(e,c),y(c,d),y(c,h),H(_,c,null),g=!0,k||(S=[ve(ln.call(null,t)),ve(ln.call(null,s)),ve(Pn.call(null,s,{path:"/collections/?.*",className:"current-route"})),ve(Le.call(null,s,{text:"Collections",position:"right"})),ve(ln.call(null,r)),ve(Pn.call(null,r,{path:"/logs/?.*",className:"current-route"})),ve(Le.call(null,r,{text:"Logs",position:"right"})),ve(ln.call(null,u)),ve(Pn.call(null,u,{path:"/settings/?.*",className:"current-route"})),ve(Le.call(null,u,{text:"Settings",position:"right"}))],k=!0)},p(T,$){var D;(!g||$&1&&!nn(d.src,m="./images/avatars/avatar"+(((D=T[0])==null?void 0:D.avatar)||0)+".svg"))&&p(d,"src",m);const C={};$&4096&&(C.$$scope={dirty:$,ctx:T}),_.$set(C)},i(T){g||(A(_.$$.fragment,T),g=!0)},o(T){I(_.$$.fragment,T),g=!1},d(T){T&&v(e),z(_),k=!1,we(S)}}}function nP(n){let e,t,i,l,s,o,r;return{c(){e=b("a"),e.innerHTML=' Manage admins',t=M(),i=b("hr"),l=M(),s=b("button"),s.innerHTML=' Logout',p(e,"href","/settings/admins"),p(e,"class","dropdown-item closable"),p(s,"type","button"),p(s,"class","dropdown-item closable")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),w(a,l,u),w(a,s,u),o||(r=[ve(ln.call(null,e)),K(s,"click",n[7])],o=!0)},p:Q,d(a){a&&(v(e),v(t),v(i),v(l),v(s)),o=!1,we(r)}}}function kg(n){let e,t,i;return t=new xa({props:{conf:j.defaultEditorOptions()}}),t.$on("init",n[8]),{c(){e=b("div"),V(t.$$.fragment),p(e,"class","tinymce-preloader hidden")},m(l,s){w(l,e,s),H(t,e,null),i=!0},p:Q,i(l){i||(A(t.$$.fragment,l),i=!0)},o(l){I(t.$$.fragment,l),i=!1},d(l){l&&v(e),z(t)}}}function iP(n){var g;let e,t,i,l,s,o,r,a,u,f,c,d,m;document.title=e=j.joinNonEmpty([n[4],n[3],"PocketBase"]," - ");let h=((g=n[0])==null?void 0:g.id)&&n[1]&&yg(n);o=new O0({props:{routes:VL}}),o.$on("routeLoading",n[5]),o.$on("conditionsFailed",n[6]),a=new GL({}),f=new tP({});let _=n[1]&&!n[2]&&kg(n);return{c(){t=M(),i=b("div"),h&&h.c(),l=M(),s=b("div"),V(o.$$.fragment),r=M(),V(a.$$.fragment),u=M(),V(f.$$.fragment),c=M(),_&&_.c(),d=ke(),p(s,"class","app-body"),p(i,"class","app-layout")},m(k,S){w(k,t,S),w(k,i,S),h&&h.m(i,null),y(i,l),y(i,s),H(o,s,null),y(s,r),H(a,s,null),w(k,u,S),H(f,k,S),w(k,c,S),_&&_.m(k,S),w(k,d,S),m=!0},p(k,[S]){var T;(!m||S&24)&&e!==(e=j.joinNonEmpty([k[4],k[3],"PocketBase"]," - "))&&(document.title=e),(T=k[0])!=null&&T.id&&k[1]?h?(h.p(k,S),S&3&&A(h,1)):(h=yg(k),h.c(),A(h,1),h.m(i,l)):h&&(oe(),I(h,1,1,()=>{h=null}),re()),k[1]&&!k[2]?_?(_.p(k,S),S&6&&A(_,1)):(_=kg(k),_.c(),A(_,1),_.m(d.parentNode,d)):_&&(oe(),I(_,1,1,()=>{_=null}),re())},i(k){m||(A(h),A(o.$$.fragment,k),A(a.$$.fragment,k),A(f.$$.fragment,k),A(_),m=!0)},o(k){I(h),I(o.$$.fragment,k),I(a.$$.fragment,k),I(f.$$.fragment,k),I(_),m=!1},d(k){k&&(v(t),v(i),v(u),v(c),v(d)),h&&h.d(),z(o),z(a),z(f,k),_&&_.d(k)}}}function lP(n,e,t){let i,l,s,o;We(n,Sl,_=>t(10,i=_)),We(n,Mo,_=>t(3,l=_)),We(n,Da,_=>t(0,s=_)),We(n,Dt,_=>t(4,o=_));let r,a=!1,u=!1;function f(_){var g,k,S,T;((g=_==null?void 0:_.detail)==null?void 0:g.location)!==r&&(t(1,a=!!((S=(k=_==null?void 0:_.detail)==null?void 0:k.userData)!=null&&S.showAppSidebar)),r=(T=_==null?void 0:_.detail)==null?void 0:T.location,tn(Dt,o="",o),Gt({}),Ib())}function c(){nl("/")}async function d(){var _,g;if(s!=null&&s.id)try{const k=await fe.settings.getAll({$cancelKey:"initialAppSettings"});tn(Mo,l=((_=k==null?void 0:k.meta)==null?void 0:_.appName)||"",l),tn(Sl,i=!!((g=k==null?void 0:k.meta)!=null&&g.hideControls),i)}catch(k){k!=null&&k.isAbort||console.warn("Failed to load app settings.",k)}}function m(){fe.logout()}const h=()=>{t(2,u=!0)};return n.$$.update=()=>{n.$$.dirty&1&&s!=null&&s.id&&d()},[s,a,u,l,o,f,c,m,h]}class sP extends ge{constructor(e){super(),_e(this,e,lP,iP,he,{})}}new sP({target:document.getElementById("app")});export{we as A,It as B,j as C,nl as D,ke as E,H1 as F,Bo as G,ao as H,Vt as I,We as J,zn as K,ot as L,te as M,Ja as N,pe as O,dt as P,Li as Q,Lt as R,ge as S,ut as T,u0 as U,I as a,M as b,V as c,z as d,b as e,p as f,w as g,y as h,_e as i,ve as j,oe as k,ln as l,H as m,re as n,v as o,fe as p,me as q,ee as r,he as s,A as t,K as u,Ye as v,Y as w,le as x,Q as y,ue as z}; diff --git a/ui/dist/index.html b/ui/dist/index.html index 7eeef998..966f50bc 100644 --- a/ui/dist/index.html +++ b/ui/dist/index.html @@ -45,7 +45,7 @@ window.Prism = window.Prism || {}; window.Prism.manual = true; - + From 1fcc2d86839b78153677501369771865c557206f Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Wed, 3 Jan 2024 10:58:25 +0200 Subject: [PATCH 4/5] updated CHANGELOG and added t.Parallel to some of the tests --- CHANGELOG.md | 19 +++++++++ cmd/admin_test.go | 2 + mails/admin_test.go | 2 + mails/record_test.go | 6 +++ models/admin_test.go | 8 ++++ models/base_test.go | 10 +++++ models/collection_test.go | 28 ++++++++++++ models/external_auth_test.go | 2 + models/param_test.go | 2 + models/record_test.go | 82 ++++++++++++++++++++++++++++++++++++ models/request.go | 1 + models/request_info_test.go | 2 + tokens/admin_test.go | 6 +++ tokens/record_test.go | 10 +++++ 14 files changed, 180 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9efceea..264a3c45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## v0.20.3 + +- Fixed the `json` field query comparisons to work correctly with plain JSON values like `null`, `bool` `number`, etc. ([#4068](https://github.com/pocketbase/pocketbase/issues/4068)). + Since there are plans in the future to allow custom SQLite builds and also in some situations it may be useful to be able to distinguish `NULL` from `''`, + for the `json` fields (and for any other future non-standard field) we no longer apply `COALESCE` by default, aka.: + ``` + Dataset: + 1) data: json(null) + 2) data: json('') + + For the filter "data = null" only 1) will resolve to TRUE. + For the filter "data = ''" only 2) will resolve to TRUE. + ``` + +- Minor Go tests improvements + - Sorted the record cascade delete references to ensure that the delete operation will preserve the order of the fired events when running the tests. + - Marked some of the tests as safe for parallel execution to speed up a little the GitHub action build times. + + ## v0.20.2 - Added `sleep(milliseconds)` JSVM binding. diff --git a/cmd/admin_test.go b/cmd/admin_test.go index c3fbbd70..7e2dd6c9 100644 --- a/cmd/admin_test.go +++ b/cmd/admin_test.go @@ -8,6 +8,8 @@ import ( ) func TestAdminCreateCommand(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/mails/admin_test.go b/mails/admin_test.go index 32bb6fe7..1bfdb3de 100644 --- a/mails/admin_test.go +++ b/mails/admin_test.go @@ -9,6 +9,8 @@ import ( ) func TestSendAdminPasswordReset(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/mails/record_test.go b/mails/record_test.go index f885d1f2..00d9cbc1 100644 --- a/mails/record_test.go +++ b/mails/record_test.go @@ -9,6 +9,8 @@ import ( ) func TestSendRecordPasswordReset(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -37,6 +39,8 @@ func TestSendRecordPasswordReset(t *testing.T) { } func TestSendRecordVerification(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() @@ -62,6 +66,8 @@ func TestSendRecordVerification(t *testing.T) { } func TestSendRecordChangeEmail(t *testing.T) { + t.Parallel() + testApp, _ := tests.NewTestApp() defer testApp.Cleanup() diff --git a/models/admin_test.go b/models/admin_test.go index 261135dd..6730d229 100644 --- a/models/admin_test.go +++ b/models/admin_test.go @@ -8,6 +8,8 @@ import ( ) func TestAdminTableName(t *testing.T) { + t.Parallel() + m := models.Admin{} if m.TableName() != "_admins" { t.Fatalf("Unexpected table name, got %q", m.TableName()) @@ -15,6 +17,8 @@ func TestAdminTableName(t *testing.T) { } func TestAdminValidatePassword(t *testing.T) { + t.Parallel() + scenarios := []struct { admin models.Admin password string @@ -61,6 +65,8 @@ func TestAdminValidatePassword(t *testing.T) { } func TestAdminSetPassword(t *testing.T) { + t.Parallel() + m := models.Admin{ // 123456 PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv.", @@ -93,6 +99,8 @@ func TestAdminSetPassword(t *testing.T) { } func TestAdminRefreshTokenKey(t *testing.T) { + t.Parallel() + m := models.Admin{TokenKey: "test"} m.RefreshTokenKey() diff --git a/models/base_test.go b/models/base_test.go index 764c26d2..434887f3 100644 --- a/models/base_test.go +++ b/models/base_test.go @@ -7,6 +7,8 @@ import ( ) func TestBaseModelHasId(t *testing.T) { + t.Parallel() + scenarios := []struct { model models.BaseModel expected bool @@ -34,6 +36,8 @@ func TestBaseModelHasId(t *testing.T) { } func TestBaseModelId(t *testing.T) { + t.Parallel() + m := models.BaseModel{} if m.GetId() != "" { @@ -54,6 +58,8 @@ func TestBaseModelId(t *testing.T) { } func TestBaseModelIsNew(t *testing.T) { + t.Parallel() + m0 := models.BaseModel{} m1 := models.BaseModel{Id: ""} m2 := models.BaseModel{Id: "test"} @@ -96,6 +102,8 @@ func TestBaseModelIsNew(t *testing.T) { } func TestBaseModelCreated(t *testing.T) { + t.Parallel() + m := models.BaseModel{} if !m.GetCreated().IsZero() { @@ -110,6 +118,8 @@ func TestBaseModelCreated(t *testing.T) { } func TestBaseModelUpdated(t *testing.T) { + t.Parallel() + m := models.BaseModel{} if !m.GetUpdated().IsZero() { diff --git a/models/collection_test.go b/models/collection_test.go index 5e64f139..ab8c0525 100644 --- a/models/collection_test.go +++ b/models/collection_test.go @@ -11,6 +11,8 @@ import ( ) func TestCollectionTableName(t *testing.T) { + t.Parallel() + m := models.Collection{} if m.TableName() != "_collections" { t.Fatalf("Unexpected table name, got %q", m.TableName()) @@ -18,6 +20,8 @@ func TestCollectionTableName(t *testing.T) { } func TestCollectionBaseFilesPath(t *testing.T) { + t.Parallel() + m := models.Collection{} m.RefreshId() @@ -29,6 +33,8 @@ func TestCollectionBaseFilesPath(t *testing.T) { } func TestCollectionIsBase(t *testing.T) { + t.Parallel() + scenarios := []struct { collection models.Collection expected bool @@ -48,6 +54,8 @@ func TestCollectionIsBase(t *testing.T) { } func TestCollectionIsAuth(t *testing.T) { + t.Parallel() + scenarios := []struct { collection models.Collection expected bool @@ -67,6 +75,8 @@ func TestCollectionIsAuth(t *testing.T) { } func TestCollectionMarshalJSON(t *testing.T) { + t.Parallel() + scenarios := []struct { name string collection models.Collection @@ -109,6 +119,8 @@ func TestCollectionMarshalJSON(t *testing.T) { } func TestCollectionBaseOptions(t *testing.T) { + t.Parallel() + scenarios := []struct { name string collection models.Collection @@ -153,6 +165,8 @@ func TestCollectionBaseOptions(t *testing.T) { } func TestCollectionAuthOptions(t *testing.T) { + t.Parallel() + options := types.JsonMap{"test": 123, "minPasswordLength": 4} expectedSerialization := `{"manageRule":null,"allowOAuth2Auth":false,"allowUsernameAuth":false,"allowEmailAuth":false,"requireEmail":false,"exceptEmailDomains":null,"onlyVerified":false,"onlyEmailDomains":null,"minPasswordLength":4}` @@ -200,6 +214,8 @@ func TestCollectionAuthOptions(t *testing.T) { } func TestCollectionViewOptions(t *testing.T) { + t.Parallel() + options := types.JsonMap{"query": "select id from demo1", "minPasswordLength": 4} expectedSerialization := `{"query":"select id from demo1"}` @@ -247,6 +263,8 @@ func TestCollectionViewOptions(t *testing.T) { } func TestNormalizeOptions(t *testing.T) { + t.Parallel() + scenarios := []struct { name string collection models.Collection @@ -288,6 +306,8 @@ func TestNormalizeOptions(t *testing.T) { } func TestDecodeOptions(t *testing.T) { + t.Parallel() + m := models.Collection{ Options: types.JsonMap{"test": 123}, } @@ -306,6 +326,8 @@ func TestDecodeOptions(t *testing.T) { } func TestSetOptions(t *testing.T) { + t.Parallel() + scenarios := []struct { name string collection models.Collection @@ -357,6 +379,8 @@ func TestSetOptions(t *testing.T) { } func TestCollectionBaseOptionsValidate(t *testing.T) { + t.Parallel() + opt := models.CollectionBaseOptions{} if err := opt.Validate(); err != nil { t.Fatal(err) @@ -364,6 +388,8 @@ func TestCollectionBaseOptionsValidate(t *testing.T) { } func TestCollectionAuthOptionsValidate(t *testing.T) { + t.Parallel() + scenarios := []struct { name string options models.CollectionAuthOptions @@ -451,6 +477,8 @@ func TestCollectionAuthOptionsValidate(t *testing.T) { } func TestCollectionViewOptionsValidate(t *testing.T) { + t.Parallel() + scenarios := []struct { name string options models.CollectionViewOptions diff --git a/models/external_auth_test.go b/models/external_auth_test.go index 26c53b06..7688daa2 100644 --- a/models/external_auth_test.go +++ b/models/external_auth_test.go @@ -7,6 +7,8 @@ import ( ) func TestExternalAuthTableName(t *testing.T) { + t.Parallel() + m := models.ExternalAuth{} if m.TableName() != "_externalAuths" { t.Fatalf("Unexpected table name, got %q", m.TableName()) diff --git a/models/param_test.go b/models/param_test.go index 42291551..0ea03c64 100644 --- a/models/param_test.go +++ b/models/param_test.go @@ -7,6 +7,8 @@ import ( ) func TestParamTableName(t *testing.T) { + t.Parallel() + m := models.Param{} if m.TableName() != "_params" { t.Fatalf("Unexpected table name, got %q", m.TableName()) diff --git a/models/record_test.go b/models/record_test.go index ec620dc1..0bc04cf6 100644 --- a/models/record_test.go +++ b/models/record_test.go @@ -15,6 +15,8 @@ import ( ) func TestNewRecord(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Name: "test_collection", Schema: schema.NewSchema( @@ -37,6 +39,8 @@ func TestNewRecord(t *testing.T) { } func TestNewRecordFromNullStringMap(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Name: "test", Schema: schema.NewSchema( @@ -200,6 +204,8 @@ func TestNewRecordFromNullStringMap(t *testing.T) { } func TestNewRecordsFromNullStringMaps(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Name: "test", Schema: schema.NewSchema( @@ -310,6 +316,8 @@ func TestNewRecordsFromNullStringMaps(t *testing.T) { } func TestRecordTableName(t *testing.T) { + t.Parallel() + collection := &models.Collection{} collection.Name = "test" collection.RefreshId() @@ -322,6 +330,8 @@ func TestRecordTableName(t *testing.T) { } func TestRecordCollection(t *testing.T) { + t.Parallel() + collection := &models.Collection{} collection.RefreshId() @@ -333,6 +343,8 @@ func TestRecordCollection(t *testing.T) { } func TestRecordOriginalCopy(t *testing.T) { + t.Parallel() + m := models.NewRecord(&models.Collection{}) m.Load(map[string]any{"f": "123"}) @@ -360,6 +372,8 @@ func TestRecordOriginalCopy(t *testing.T) { } func TestRecordCleanCopy(t *testing.T) { + t.Parallel() + m := models.NewRecord(&models.Collection{ Name: "cname", Type: models.CollectionTypeAuth, @@ -392,6 +406,8 @@ func TestRecordCleanCopy(t *testing.T) { } func TestRecordSetAndGetExpand(t *testing.T) { + t.Parallel() + collection := &models.Collection{} m := models.NewRecord(collection) @@ -409,6 +425,8 @@ func TestRecordSetAndGetExpand(t *testing.T) { } func TestRecordMergeExpand(t *testing.T) { + t.Parallel() + collection := &models.Collection{} m := models.NewRecord(collection) m.Id = "m" @@ -501,6 +519,8 @@ func TestRecordMergeExpand(t *testing.T) { } func TestRecordMergeExpandNilCheck(t *testing.T) { + t.Parallel() + collection := &models.Collection{} scenarios := []struct { @@ -542,6 +562,8 @@ func TestRecordMergeExpandNilCheck(t *testing.T) { } func TestRecordExpandedRel(t *testing.T) { + t.Parallel() + collection := &models.Collection{} main := models.NewRecord(collection) @@ -574,6 +596,8 @@ func TestRecordExpandedRel(t *testing.T) { } func TestRecordExpandedAll(t *testing.T) { + t.Parallel() + collection := &models.Collection{} main := models.NewRecord(collection) @@ -606,6 +630,8 @@ func TestRecordExpandedAll(t *testing.T) { } func TestRecordSchemaData(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Type: models.CollectionTypeAuth, Schema: schema.NewSchema( @@ -639,6 +665,8 @@ func TestRecordSchemaData(t *testing.T) { } func TestRecordUnknownData(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -719,6 +747,8 @@ func TestRecordUnknownData(t *testing.T) { } func TestRecordSetAndGet(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -799,6 +829,8 @@ func TestRecordSetAndGet(t *testing.T) { } func TestRecordGetBool(t *testing.T) { + t.Parallel() + scenarios := []struct { value any expected bool @@ -830,6 +862,8 @@ func TestRecordGetBool(t *testing.T) { } func TestRecordGetString(t *testing.T) { + t.Parallel() + scenarios := []struct { value any expected string @@ -860,6 +894,8 @@ func TestRecordGetString(t *testing.T) { } func TestRecordGetInt(t *testing.T) { + t.Parallel() + scenarios := []struct { value any expected int @@ -892,6 +928,8 @@ func TestRecordGetInt(t *testing.T) { } func TestRecordGetFloat(t *testing.T) { + t.Parallel() + scenarios := []struct { value any expected float64 @@ -924,6 +962,8 @@ func TestRecordGetFloat(t *testing.T) { } func TestRecordGetTime(t *testing.T) { + t.Parallel() + nowTime := time.Now() testTime, _ := time.Parse(types.DefaultDateLayout, "2022-01-01 08:00:40.000Z") @@ -957,6 +997,8 @@ func TestRecordGetTime(t *testing.T) { } func TestRecordGetDateTime(t *testing.T) { + t.Parallel() + nowTime := time.Now() testTime, _ := time.Parse(types.DefaultDateLayout, "2022-01-01 08:00:40.000Z") @@ -990,6 +1032,8 @@ func TestRecordGetDateTime(t *testing.T) { } func TestRecordGetStringSlice(t *testing.T) { + t.Parallel() + nowTime := time.Now() scenarios := []struct { @@ -1031,6 +1075,8 @@ func TestRecordGetStringSlice(t *testing.T) { } func TestRecordUnmarshalJSONField(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema(&schema.SchemaField{ Name: "field", @@ -1086,6 +1132,8 @@ func TestRecordUnmarshalJSONField(t *testing.T) { } func TestRecordBaseFilesPath(t *testing.T) { + t.Parallel() + collection := &models.Collection{} collection.RefreshId() collection.Name = "test" @@ -1102,6 +1150,8 @@ func TestRecordBaseFilesPath(t *testing.T) { } func TestRecordFindFileFieldByFile(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -1159,6 +1209,8 @@ func TestRecordFindFileFieldByFile(t *testing.T) { } func TestRecordLoadAndData(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -1232,6 +1284,8 @@ func TestRecordLoadAndData(t *testing.T) { } func TestRecordColumnValueMap(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -1319,6 +1373,8 @@ func TestRecordColumnValueMap(t *testing.T) { } func TestRecordPublicExportAndMarshalJSON(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Name: "c_name", Schema: schema.NewSchema( @@ -1463,6 +1519,8 @@ func TestRecordPublicExportAndMarshalJSON(t *testing.T) { } func TestRecordUnmarshalJSON(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -1551,6 +1609,8 @@ func TestRecordUnmarshalJSON(t *testing.T) { } func TestRecordReplaceModifers(t *testing.T) { + t.Parallel() + collection := &models.Collection{ Schema: schema.NewSchema( &schema.SchemaField{ @@ -1658,6 +1718,8 @@ func TestRecordReplaceModifers(t *testing.T) { // ------------------------------------------------------------------- func TestRecordUsername(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1699,6 +1761,8 @@ func TestRecordUsername(t *testing.T) { } func TestRecordEmail(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1740,6 +1804,8 @@ func TestRecordEmail(t *testing.T) { } func TestRecordEmailVisibility(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string value bool @@ -1782,6 +1848,8 @@ func TestRecordEmailVisibility(t *testing.T) { } func TestRecordEmailVerified(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string value bool @@ -1824,6 +1892,8 @@ func TestRecordEmailVerified(t *testing.T) { } func TestRecordTokenKey(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1865,6 +1935,8 @@ func TestRecordTokenKey(t *testing.T) { } func TestRecordRefreshTokenKey(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1904,6 +1976,8 @@ func TestRecordRefreshTokenKey(t *testing.T) { } func TestRecordLastResetSentAt(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1948,6 +2022,8 @@ func TestRecordLastResetSentAt(t *testing.T) { } func TestRecordLastVerificationSentAt(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string expectError bool @@ -1992,6 +2068,8 @@ func TestRecordLastVerificationSentAt(t *testing.T) { } func TestRecordPasswordHash(t *testing.T) { + t.Parallel() + m := models.NewRecord(&models.Collection{}) if v := m.PasswordHash(); v != "" { @@ -2006,6 +2084,8 @@ func TestRecordPasswordHash(t *testing.T) { } func TestRecordValidatePassword(t *testing.T) { + t.Parallel() + // 123456 hash := "$2a$10$YKU8mPP8sTE3xZrpuM.xQuq27KJ7aIJB2oUeKPsDDqZshbl5g5cDK" @@ -2034,6 +2114,8 @@ func TestRecordValidatePassword(t *testing.T) { } func TestRecordSetPassword(t *testing.T) { + t.Parallel() + scenarios := []struct { collectionType string password string diff --git a/models/request.go b/models/request.go index 483eb7d8..0b1784c0 100644 --- a/models/request.go +++ b/models/request.go @@ -11,6 +11,7 @@ const ( RequestAuthRecord = "authRecord" ) +// Deprecated: Replaced by the Log model and will be removed in a future version. type Request struct { BaseModel diff --git a/models/request_info_test.go b/models/request_info_test.go index bc5be1e5..157ddac1 100644 --- a/models/request_info_test.go +++ b/models/request_info_test.go @@ -7,6 +7,8 @@ import ( ) func TestRequestInfoHasModifierDataKeys(t *testing.T) { + t.Parallel() + scenarios := []struct { name string requestInfo *models.RequestInfo diff --git a/tokens/admin_test.go b/tokens/admin_test.go index a6f571e5..8826e682 100644 --- a/tokens/admin_test.go +++ b/tokens/admin_test.go @@ -8,6 +8,8 @@ import ( ) func TestNewAdminAuthToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -31,6 +33,8 @@ func TestNewAdminAuthToken(t *testing.T) { } func TestNewAdminResetPasswordToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -54,6 +58,8 @@ func TestNewAdminResetPasswordToken(t *testing.T) { } func TestNewAdminFileToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() diff --git a/tokens/record_test.go b/tokens/record_test.go index 04358a6e..82e94fb6 100644 --- a/tokens/record_test.go +++ b/tokens/record_test.go @@ -8,6 +8,8 @@ import ( ) func TestNewRecordAuthToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -31,6 +33,8 @@ func TestNewRecordAuthToken(t *testing.T) { } func TestNewRecordVerifyToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -54,6 +58,8 @@ func TestNewRecordVerifyToken(t *testing.T) { } func TestNewRecordResetPasswordToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -77,6 +83,8 @@ func TestNewRecordResetPasswordToken(t *testing.T) { } func TestNewRecordChangeEmailToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() @@ -100,6 +108,8 @@ func TestNewRecordChangeEmailToken(t *testing.T) { } func TestNewRecordFileToken(t *testing.T) { + t.Parallel() + app, _ := tests.NewTestApp() defer app.Cleanup() From 982f876a93823471b7758455742cc4f4bd95459a Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Wed, 3 Jan 2024 11:08:30 +0200 Subject: [PATCH 5/5] updated jsvm types --- .../jsvm/internal/types/generated/types.d.ts | 9444 ++++++++--------- tests/data/logs.db | Bin 118784 -> 36864 bytes tools/cron/cron_test.go | 16 + tools/cron/schedule_test.go | 6 + 4 files changed, 4744 insertions(+), 4722 deletions(-) diff --git a/plugins/jsvm/internal/types/generated/types.d.ts b/plugins/jsvm/internal/types/generated/types.d.ts index fb853c1d..68e0ae2a 100644 --- a/plugins/jsvm/internal/types/generated/types.d.ts +++ b/plugins/jsvm/internal/types/generated/types.d.ts @@ -1,4 +1,4 @@ -// 1703881970 +// 1704272575 // GENERATED CODE - DO NOT MODIFY BY HAND // ------------------------------------------------------------------- @@ -202,7 +202,7 @@ declare function readerToString(reader: any, maxBytes?: number): string; * Example: * * ```js - * slee(250) // sleeps for 250ms + * sleep(250) // sleeps for 250ms * ``` * * @group PocketBase @@ -1642,8 +1642,8 @@ namespace os { * than ReadFrom. This is used to permit ReadFrom to call io.Copy * without leading to a recursive call to ReadFrom. */ - type _subftmwE = File - interface fileWithoutReadFrom extends _subftmwE { + type _subgUszO = File + interface fileWithoutReadFrom extends _subgUszO { } interface fileWithoutReadFrom { /** @@ -2300,8 +2300,8 @@ namespace os { /** * File represents an open file descriptor. */ - type _subZIwYK = file - interface File extends _subZIwYK { + type _subGXkEd = file + interface File extends _subGXkEd { } /** * A FileInfo describes a file and is returned by Stat and Lstat. @@ -2702,132 +2702,6 @@ namespace filepath { } } -/** - * 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 exec.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) - } -} - namespace security { interface s256Challenge { /** @@ -2960,224 +2834,6 @@ namespace security { } } -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, multipipart/formdata header, etc. - */ - interface File { - reader: FileReader - name: string - originalName: string - size: number - } - 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 _subbzHdQ = bytes.Reader - interface bytesReadSeekCloser extends _subbzHdQ { - } - interface bytesReadSeekCloser { - /** - * Close implements the [io.ReadSeekCloser] interface. - */ - close(): void - } - 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. - */ - attributes(fileKey: string): (blob.Attributes) - } - interface System { - /** - * GetFile returns a file content reader for the given fileKey. - * - * NB! Make sure to call `Close()` after you are done working with it. - */ - getFile(fileKey: string): (blob.Reader) - } - interface System { - /** - * Copy copies the file stored at srcKey to dstKey. - * - * If dstKey file already exists, it is overwritten. - */ - copy(srcKey: 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 multipart 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. - */ - delete(fileKey: string): void - } - interface System { - /** - * DeletePrefix deletes everything starting with the specified prefix. - */ - deletePrefix(prefix: string): Array - } - 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"). - */ - 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): void - } -} - /** * Package validation provides configurable and extensible rules for validating data of various types. */ @@ -3532,14 +3188,14 @@ namespace dbx { /** * MssqlBuilder is the builder for SQL Server databases. */ - type _suboXhpm = BaseBuilder - interface MssqlBuilder extends _suboXhpm { + type _subeOzgU = BaseBuilder + interface MssqlBuilder extends _subeOzgU { } /** * MssqlQueryBuilder is the query builder for SQL Server databases. */ - type _subXYEAj = BaseQueryBuilder - interface MssqlQueryBuilder extends _subXYEAj { + type _subPYpyy = BaseQueryBuilder + interface MssqlQueryBuilder extends _subPYpyy { } interface newMssqlBuilder { /** @@ -3610,8 +3266,8 @@ namespace dbx { /** * MysqlBuilder is the builder for MySQL databases. */ - type _subZDHOn = BaseBuilder - interface MysqlBuilder extends _subZDHOn { + type _subshvgw = BaseBuilder + interface MysqlBuilder extends _subshvgw { } interface newMysqlBuilder { /** @@ -3686,14 +3342,14 @@ namespace dbx { /** * OciBuilder is the builder for Oracle databases. */ - type _subDGmTA = BaseBuilder - interface OciBuilder extends _subDGmTA { + type _subTukdT = BaseBuilder + interface OciBuilder extends _subTukdT { } /** * OciQueryBuilder is the query builder for Oracle databases. */ - type _subLNZwv = BaseQueryBuilder - interface OciQueryBuilder extends _subLNZwv { + type _suboNUbJ = BaseQueryBuilder + interface OciQueryBuilder extends _suboNUbJ { } interface newOciBuilder { /** @@ -3756,8 +3412,8 @@ namespace dbx { /** * PgsqlBuilder is the builder for PostgreSQL databases. */ - type _subgWSCj = BaseBuilder - interface PgsqlBuilder extends _subgWSCj { + type _subKWcqA = BaseBuilder + interface PgsqlBuilder extends _subKWcqA { } interface newPgsqlBuilder { /** @@ -3824,8 +3480,8 @@ namespace dbx { /** * SqliteBuilder is the builder for SQLite databases. */ - type _subgNHNo = BaseBuilder - interface SqliteBuilder extends _subgNHNo { + type _subsoHkv = BaseBuilder + interface SqliteBuilder extends _subsoHkv { } interface newSqliteBuilder { /** @@ -3924,8 +3580,8 @@ namespace dbx { /** * StandardBuilder is the builder that is used by DB for an unknown driver. */ - type _subHGGHS = BaseBuilder - interface StandardBuilder extends _subHGGHS { + type _subZtxuI = BaseBuilder + interface StandardBuilder extends _subZtxuI { } interface newStandardBuilder { /** @@ -3991,8 +3647,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 _subvOQmF = Builder - interface DB extends _subvOQmF { + type _subwSDJJ = Builder + interface DB extends _subwSDJJ { /** * FieldMapper maps struct fields to DB columns. Defaults to DefaultFieldMapFunc. */ @@ -4794,8 +4450,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 _subkNIiH = sql.Rows - interface Rows extends _subkNIiH { + type _subkUEGQ = sql.Rows + interface Rows extends _subkUEGQ { } interface Rows { /** @@ -5152,8 +4808,8 @@ namespace dbx { }): string } interface structInfo { } - type _subTgBSn = structInfo - interface structValue extends _subTgBSn { + type _subtaShB = structInfo + interface structValue extends _subtaShB { } interface fieldInfo { } @@ -5192,8 +4848,8 @@ namespace dbx { /** * Tx enhances sql.Tx with additional querying methods. */ - type _subrMIrj = Builder - interface Tx extends _subrMIrj { + type _subgTasg = Builder + interface Tx extends _subgTasg { } interface Tx { /** @@ -5209,6 +4865,350 @@ namespace dbx { } } +/** + * 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 exec.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) + } +} + +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, multipipart/formdata header, etc. + */ + interface File { + reader: FileReader + name: string + originalName: string + size: number + } + 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 _subHVtTs = bytes.Reader + interface bytesReadSeekCloser extends _subHVtTs { + } + interface bytesReadSeekCloser { + /** + * Close implements the [io.ReadSeekCloser] interface. + */ + close(): void + } + 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. + */ + attributes(fileKey: string): (blob.Attributes) + } + interface System { + /** + * GetFile returns a file content reader for the given fileKey. + * + * NB! Make sure to call `Close()` after you are done working with it. + */ + getFile(fileKey: string): (blob.Reader) + } + interface System { + /** + * Copy copies the file stored at srcKey to dstKey. + * + * If dstKey file already exists, it is overwritten. + */ + copy(srcKey: 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 multipart 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. + */ + delete(fileKey: string): void + } + interface System { + /** + * DeletePrefix deletes everything starting with the specified prefix. + */ + deletePrefix(prefix: string): Array + } + 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"). + */ + 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): void + } +} + /** * Package tokens implements various user and admin tokens generation methods. */ @@ -6211,8 +6211,8 @@ namespace forms { /** * SettingsUpsert is a [settings.Settings] upsert (create/update) form. */ - type _subYTHUI = settings.Settings - interface SettingsUpsert extends _subYTHUI { + type _subxSkzb = settings.Settings + interface SettingsUpsert extends _subxSkzb { } interface newSettingsUpsert { /** @@ -6638,8 +6638,8 @@ namespace pocketbase { /** * appWrapper serves as a private CoreApp instance wrapper. */ - type _subnSLpU = CoreApp - interface appWrapper extends _subnSLpU { + type _subDghba = CoreApp + interface appWrapper extends _subDghba { } /** * PocketBase defines a PocketBase app launcher. @@ -6647,8 +6647,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 _subOfIgH = appWrapper - interface PocketBase extends _subOfIgH { + type _subQSfhg = appWrapper + interface PocketBase extends _subQSfhg { /** * RootCmd is the main console command */ @@ -8041,1080 +8041,6 @@ namespace fs { interface WalkDirFunc {(path: string, d: DirEntry, err: Error): void } } -/** - * 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 - } - /** - * 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 Commit or - * 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 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 - * 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 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 Close method - * when the statement is no longer needed. - * - * Prepare uses context.Background internally; to specify the context, use - * 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 - * 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 - * 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's Scan will return ErrNoRows. - * Otherwise, the *Row's 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's Scan will return ErrNoRows. - * Otherwise, the *Row's Scan scans the first selected row and discards - * the rest. - * - * QueryRow uses context.Background internally; to specify the context, use - * 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 - * 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 Commit or Rollback. - * - * After a call to Commit or Rollback, all operations on the - * transaction fail with ErrTxDone. - * - * The statements prepared for a transaction by calling - * the transaction's Prepare or Stmt methods are closed - * by the call to Commit or 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 - * 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 - * 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 - * 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 - * 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's Scan will return ErrNoRows. - * Otherwise, the *Row's 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's Scan will return ErrNoRows. - * Otherwise, the *Row's Scan scans the first selected row and discards - * the rest. - * - * QueryRow uses context.Background internally; to specify the context, use - * 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 - * 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 - * 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's Scan will return ErrNoRows. - * Otherwise, the *Row's 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's Scan will return ErrNoRows. - * Otherwise, the *Row's 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 - * 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 Next to advance from row to row. - */ - interface Rows { - } - interface Rows { - /** - * Next prepares the next result row for reading with the Scan method. It - * returns true on success, or false if there is no next result row or an error - * happened while preparing it. Err should be consulted to distinguish between - * the two cases. - * - * Every call to Scan, even the first one, must be preceded by a call to 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 Err method should be consulted - * to distinguish between the two cases. - * - * After calling NextResultSet, the 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 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 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 Err. Close is idempotent and does not affect the result of 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 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 exec.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 { - /** - * Cmd represents an external command being prepared or run. - * - * A Cmd cannot be reused after calling its Run, Output or 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 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 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 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. - * - * 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 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. - * - * 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 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 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 { - /** - * VerifyAudience Compares the aud claim against cmp. - * If required is false, this method will return true if the value matches or is unset - */ - verifyAudience(cmp: string, req: boolean): boolean - } - interface MapClaims { - /** - * VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). - * If req is false, it will return true, if exp is unset. - */ - verifyExpiresAt(cmp: number, req: boolean): boolean - } - interface MapClaims { - /** - * VerifyIssuedAt compares the exp claim against cmp (cmp >= iat). - * If req is false, it will return true, if iat is unset. - */ - verifyIssuedAt(cmp: number, req: boolean): boolean - } - interface MapClaims { - /** - * VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). - * If req is false, it will return true, if nbf is unset. - */ - verifyNotBefore(cmp: number, req: boolean): boolean - } - interface MapClaims { - /** - * VerifyIssuer compares the iss claim against cmp. - * If required is false, this method will return true if the value matches or is unset - */ - verifyIssuer(cmp: string, req: boolean): boolean - } - interface MapClaims { - /** - * Valid validates time based claims "exp, iat, nbf". - * There is no accounting for clock skew. - * As well, if any of the above claims are not in the token, it will still - * be considered a valid claim. - */ - valid(): void - } -} - /** * Package multipart implements MIME multipart parsing, as defined in RFC * 2046. @@ -10071,6 +8997,493 @@ namespace http { } } +/** + * Package blob provides an easy and portable way to interact with blobs + * within a storage location. Subpackages contain driver implementations of + * blob for supported services. + * + * See https://gocloud.dev/howto/blob/ for a detailed how-to guide. + * + * *blob.Bucket implements io/fs.FS and io/fs.SubFS, so it can be used with + * functions in that package. + * + * # Errors + * + * The errors returned from this package can be inspected in several ways: + * + * The Code function from gocloud.dev/gcerrors will return an error code, also + * defined in that package, when invoked on an error. + * + * The Bucket.ErrorAs method can retrieve the driver error underlying the returned + * error. + * + * # OpenCensus Integration + * + * OpenCensus supports tracing and metric collection for multiple languages and + * backend providers. See https://opencensus.io. + * + * This API collects OpenCensus traces and metrics for the following methods: + * ``` + * - Attributes + * - Copy + * - Delete + * - ListPage + * - NewRangeReader, from creation until the call to Close. (NewReader and ReadAll + * are included because they call NewRangeReader.) + * - NewWriter, from creation until the call to Close. + * ``` + * + * All trace and metric names begin with the package import path. + * The traces add the method name. + * For example, "gocloud.dev/blob/Attributes". + * The metrics are "completed_calls", a count of completed method calls by driver, + * method and status (error code); and "latency", a distribution of method latency + * by driver and method. + * For example, "gocloud.dev/blob/latency". + * + * It also collects the following metrics: + * ``` + * - gocloud.dev/blob/bytes_read: the total number of bytes read, by driver. + * - gocloud.dev/blob/bytes_written: the total number of bytes written, by driver. + * ``` + * + * To enable trace collection in your application, see "Configure Exporter" at + * https://opencensus.io/quickstart/go/tracing. + * To enable metric collection in your application, see "Exporting stats" at + * https://opencensus.io/quickstart/go/metrics. + */ +namespace blob { + /** + * 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 { + /** + * As converts i to driver-specific types. + * See https://gocloud.dev/concepts/as/ for background information, the "As" + * examples in this package for examples, and the driver package + * documentation for the specific types supported for that driver. + */ + as(i: { + }): boolean + } + 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 + } + /** + * 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 + } + interface Attributes { + /** + * As converts i to driver-specific types. + * See https://gocloud.dev/concepts/as/ for background information, the "As" + * examples in this package for examples, and the driver package + * documentation for the specific types supported for that driver. + */ + as(i: { + }): boolean + } + /** + * 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 + } + interface ListObject { + /** + * As converts i to driver-specific types. + * See https://gocloud.dev/concepts/as/ for background information, the "As" + * examples in this package for examples, and the driver package + * documentation for the specific types supported for that driver. + */ + as(i: { + }): boolean + } +} + +/** + * 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 { + /** + * VerifyAudience Compares the aud claim against cmp. + * If required is false, this method will return true if the value matches or is unset + */ + verifyAudience(cmp: string, req: boolean): boolean + } + interface MapClaims { + /** + * VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). + * If req is false, it will return true, if exp is unset. + */ + verifyExpiresAt(cmp: number, req: boolean): boolean + } + interface MapClaims { + /** + * VerifyIssuedAt compares the exp claim against cmp (cmp >= iat). + * If req is false, it will return true, if iat is unset. + */ + verifyIssuedAt(cmp: number, req: boolean): boolean + } + interface MapClaims { + /** + * VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). + * If req is false, it will return true, if nbf is unset. + */ + verifyNotBefore(cmp: number, req: boolean): boolean + } + interface MapClaims { + /** + * VerifyIssuer compares the iss claim against cmp. + * If required is false, this method will return true if the value matches or is unset + */ + verifyIssuer(cmp: string, req: boolean): boolean + } + interface MapClaims { + /** + * Valid validates time based claims "exp, iat, nbf". + * There is no accounting for clock skew. + * As well, if any of the above claims are not in the token, it will still + * be considered a valid claim. + */ + valid(): void + } +} + +/** + * Package types implements some commonly used db serializable types + * like datetime, json, etc. + */ +namespace types { + /** + * JsonArray defines a slice that is safe for json and db read/write. + */ + interface JsonArray extends Array{} + interface JsonArray { + /** + * MarshalJSON implements the [json.Marshaler] interface. + */ + marshalJSON(): string|Array + } + interface JsonArray { + /** + * Value implements the [driver.Valuer] interface. + */ + value(): any + } + interface JsonArray { + /** + * Scan implements [sql.Scanner] interface to scan the provided value + * into the current JsonArray[T] instance. + */ + scan(value: any): void + } + /** + * JsonMap defines a map that is safe for json and db read/write. + */ + interface JsonMap extends _TygojaDict{} + interface JsonMap { + /** + * MarshalJSON implements the [json.Marshaler] interface. + */ + marshalJSON(): string|Array + } + interface JsonMap { + /** + * Get retrieves a single value from the current JsonMap. + * + * This helper was added primarily to assist the goja integration since custom map types + * don't have direct access to the map keys (https://pkg.go.dev/github.com/dop251/goja#hdr-Maps_with_methods). + */ + get(key: string): any + } + interface JsonMap { + /** + * Set sets a single value in the current JsonMap. + * + * This helper was added primarily to assist the goja integration since custom map types + * don't have direct access to the map keys (https://pkg.go.dev/github.com/dop251/goja#hdr-Maps_with_methods). + */ + set(key: string, value: any): void + } + interface JsonMap { + /** + * Value implements the [driver.Valuer] interface. + */ + value(): any + } + interface JsonMap { + /** + * Scan implements [sql.Scanner] interface to scan the provided value + * into the current `JsonMap` instance. + */ + scan(value: any): void + } +} + +namespace auth { + /** + * AuthUser defines a standardized oauth2 user data structure. + */ + interface AuthUser { + id: string + name: string + username: string + email: string + avatarUrl: string + accessToken: string + refreshToken: string + expiry: types.DateTime + rawUser: _TygojaDict + } + /** + * Provider defines a common interface for an OAuth2 client. + */ + interface Provider { + [key:string]: any; + /** + * Scopes 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 + /** + * UserApiUrl returns the provider's user info api url. + */ + userApiUrl(): string + /** + * SetUserApiUrl sets the provider's UserApiUrl. + */ + setUserApiUrl(url: string): 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) + /** + * FetchRawUserData requests and marshalizes into `result` the + * the OAuth user api response. + */ + fetchRawUserData(token: oauth2.Token): string|Array + /** + * FetchAuthUser is similar to FetchRawUserData, but normalizes and + * marshalizes the user api response into a standardized AuthUser struct. + */ + fetchAuthUser(token: oauth2.Token): (AuthUser) + } +} + /** * Package echo implements high performance, minimalist Go web framework. * @@ -10648,304 +10061,2196 @@ namespace echo { } /** - * Package blob provides an easy and portable way to interact with blobs - * within a storage location. Subpackages contain driver implementations of - * blob for supported services. + * 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. * - * See https://gocloud.dev/howto/blob/ for a detailed how-to guide. + * 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. * - * *blob.Bucket implements io/fs.FS and io/fs.SubFS, so it can be used with - * functions in that package. + * 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. * - * # Errors + * # Executables in the current directory * - * The errors returned from this package can be inspected in several ways: + * 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. * - * The Code function from gocloud.dev/gcerrors will return an error code, also - * defined in that package, when invoked on an error. + * 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 exec.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). * - * The Bucket.ErrorAs method can retrieve the driver error underlying the returned - * error. + * For example, consider these two program snippets: * - * # OpenCensus Integration - * - * OpenCensus supports tracing and metric collection for multiple languages and - * backend providers. See https://opencensus.io. - * - * This API collects OpenCensus traces and metrics for the following methods: * ``` - * - Attributes - * - Copy - * - Delete - * - ListPage - * - NewRangeReader, from creation until the call to Close. (NewReader and ReadAll - * are included because they call NewRangeReader.) - * - NewWriter, from creation until the call to Close. + * path, err := exec.LookPath("prog") + * if err != nil { + * log.Fatal(err) + * } + * use(path) * ``` * - * All trace and metric names begin with the package import path. - * The traces add the method name. - * For example, "gocloud.dev/blob/Attributes". - * The metrics are "completed_calls", a count of completed method calls by driver, - * method and status (error code); and "latency", a distribution of method latency - * by driver and method. - * For example, "gocloud.dev/blob/latency". + * and * - * It also collects the following metrics: * ``` - * - gocloud.dev/blob/bytes_read: the total number of bytes read, by driver. - * - gocloud.dev/blob/bytes_written: the total number of bytes written, by driver. + * cmd := exec.Command("prog") + * if err := cmd.Run(); err != nil { + * log.Fatal(err) + * } * ``` * - * To enable trace collection in your application, see "Configure Exporter" at - * https://opencensus.io/quickstart/go/tracing. - * To enable metric collection in your application, see "Exporting stats" at - * https://opencensus.io/quickstart/go/metrics. + * 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 blob { +namespace exec { /** - * Reader reads bytes from a blob. - * It implements io.ReadSeekCloser, and must be closed after - * reads are finished. + * Cmd represents an external command being prepared or run. + * + * A Cmd cannot be reused after calling its Run, Output or CombinedOutput + * methods. */ - interface Reader { - } - interface Reader { + interface Cmd { /** - * 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 { - /** - * As converts i to driver-specific types. - * See https://gocloud.dev/concepts/as/ for background information, the "As" - * examples in this package for examples, and the driver package - * documentation for the specific types supported for that driver. - */ - as(i: { - }): boolean - } - 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. + * Path is the path of the command to run. * - * It implements the io.WriterTo interface. + * This is the only field that must be set to a non-zero + * value. If Path is relative, it is evaluated relative + * to Dir. */ - writeTo(w: io.Writer): number + 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 } - /** - * Attributes contains attributes about a blob. - */ - interface Attributes { + interface Cmd { /** - * CacheControl specifies caching attributes that services may use - * when serving the blob. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control + * 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. */ - 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 + string(): string } - interface Attributes { + interface Cmd { /** - * As converts i to driver-specific types. - * See https://gocloud.dev/concepts/as/ for background information, the "As" - * examples in this package for examples, and the driver package - * documentation for the specific types supported for that driver. + * 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. */ - as(i: { - }): boolean + run(): void } - /** - * ListObject represents a single blob returned from List. - */ - interface ListObject { + interface Cmd { /** - * Key is the key for this blob. + * 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 Wait method must be called in + * order to release associated system resources. */ - 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 + start(): void } - interface ListObject { + interface Cmd { /** - * As converts i to driver-specific types. - * See https://gocloud.dev/concepts/as/ for background information, the "As" - * examples in this package for examples, and the driver package - * documentation for the specific types supported for that driver. + * 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 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. */ - as(i: { - }): boolean + 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 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. + * + * 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 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. + * + * 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 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 types implements some commonly used db serializable types - * like datetime, json, etc. + * 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 types { +namespace sql { /** - * JsonArray defines a slice that is safe for json and db read/write. + * TxOptions holds the transaction options to be used in DB.BeginTx. */ - interface JsonArray extends Array{} - interface JsonArray { + interface TxOptions { /** - * MarshalJSON implements the [json.Marshaler] interface. + * Isolation is the transaction isolation level. + * If zero, the driver or database's default level is used. */ - marshalJSON(): string|Array - } - interface JsonArray { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - interface JsonArray { - /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current JsonArray[T] instance. - */ - scan(value: any): void + isolation: IsolationLevel + readOnly: boolean } /** - * JsonMap defines a map that is safe for json and db read/write. + * 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 Commit or + * 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 SetMaxIdleConns. */ - interface JsonMap extends _TygojaDict{} - interface JsonMap { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array + interface DB { } - interface JsonMap { + interface DB { /** - * Get retrieves a single value from the current JsonMap. + * 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. * - * This helper was added primarily to assist the goja integration since custom map types - * don't have direct access to the map keys (https://pkg.go.dev/github.com/dop251/goja#hdr-Maps_with_methods). + * Ping uses context.Background internally; to specify the context, use + * PingContext. */ - get(key: string): any + ping(): void } - interface JsonMap { + interface DB { /** - * Set sets a single value in the current JsonMap. + * 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. * - * This helper was added primarily to assist the goja integration since custom map types - * don't have direct access to the map keys (https://pkg.go.dev/github.com/dop251/goja#hdr-Maps_with_methods). + * It is rare to Close a DB, as the DB handle is meant to be + * long-lived and shared between many goroutines. */ - set(key: string, value: any): void + close(): void } - interface JsonMap { + interface DB { /** - * Value implements the [driver.Valuer] interface. + * 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. */ - value(): any + setMaxIdleConns(n: number): void } - interface JsonMap { + interface DB { /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current `JsonMap` instance. + * 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). */ - scan(value: any): void + 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 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 Close method + * when the statement is no longer needed. + * + * Prepare uses context.Background internally; to specify the context, use + * 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 + * 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 + * 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's Scan will return ErrNoRows. + * Otherwise, the *Row's 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's Scan will return ErrNoRows. + * Otherwise, the *Row's Scan scans the first selected row and discards + * the rest. + * + * QueryRow uses context.Background internally; to specify the context, use + * 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 + * 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 Commit or Rollback. + * + * After a call to Commit or Rollback, all operations on the + * transaction fail with ErrTxDone. + * + * The statements prepared for a transaction by calling + * the transaction's Prepare or Stmt methods are closed + * by the call to Commit or 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 + * 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 + * 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 + * 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 + * 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's Scan will return ErrNoRows. + * Otherwise, the *Row's 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's Scan will return ErrNoRows. + * Otherwise, the *Row's Scan scans the first selected row and discards + * the rest. + * + * QueryRow uses context.Background internally; to specify the context, use + * 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 + * 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 + * 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's Scan will return ErrNoRows. + * Otherwise, the *Row's 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's Scan will return ErrNoRows. + * Otherwise, the *Row's 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 + * 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 Next to advance from row to row. + */ + interface Rows { + } + interface Rows { + /** + * Next prepares the next result row for reading with the Scan method. It + * returns true on success, or false if there is no next result row or an error + * happened while preparing it. Err should be consulted to distinguish between + * the two cases. + * + * Every call to Scan, even the first one, must be preceded by a call to 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 Err method should be consulted + * to distinguish between the two cases. + * + * After calling NextResultSet, the 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 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 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 Err. Close is idempotent and does not affect the result of 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 + } +} + +namespace migrate { + /** + * 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 { + /** + * 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: (db: dbx.Builder) => void, down: (db: dbx.Builder) => void, ...optFilename: string[]): void + } +} + +namespace settings { + // @ts-ignore + import validation = ozzo_validation + /** + * Settings defines common app configuration options. + */ + interface Settings { + meta: MetaConfig + logs: LogsConfig + smtp: SmtpConfig + s3: S3Config + backups: BackupsConfig + adminAuthToken: TokenConfig + adminPasswordResetToken: TokenConfig + adminFileToken: TokenConfig + recordAuthToken: TokenConfig + recordPasswordResetToken: TokenConfig + recordEmailChangeToken: TokenConfig + recordVerificationToken: TokenConfig + recordFileToken: TokenConfig + /** + * Deprecated: Will be removed in v0.9+ + */ + emailAuth: EmailAuthConfig + googleAuth: AuthProviderConfig + facebookAuth: AuthProviderConfig + githubAuth: AuthProviderConfig + gitlabAuth: AuthProviderConfig + discordAuth: AuthProviderConfig + twitterAuth: AuthProviderConfig + microsoftAuth: AuthProviderConfig + spotifyAuth: AuthProviderConfig + kakaoAuth: AuthProviderConfig + twitchAuth: AuthProviderConfig + stravaAuth: AuthProviderConfig + giteeAuth: AuthProviderConfig + livechatAuth: AuthProviderConfig + giteaAuth: AuthProviderConfig + oidcAuth: AuthProviderConfig + oidc2Auth: AuthProviderConfig + oidc3Auth: AuthProviderConfig + appleAuth: AuthProviderConfig + instagramAuth: AuthProviderConfig + vkAuth: AuthProviderConfig + yandexAuth: AuthProviderConfig + patreonAuth: AuthProviderConfig + mailcowAuth: AuthProviderConfig + } + interface Settings { + /** + * Validate makes Settings validatable by implementing [validation.Validatable] interface. + */ + validate(): void + } + interface Settings { + /** + * Merge merges `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 { + /** + * RedactClone creates a new deep copy of the current settings, + * while replacing the secret values with `******`. + */ + redactClone(): (Settings) + } + interface Settings { + /** + * NamedAuthProviderConfigs returns a map with all registered OAuth2 + * provider configurations (indexed by their name identifier). + */ + namedAuthProviderConfigs(): _TygojaDict + } +} + +/** + * 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: (cmd: Command, args: Array, toComplete: string) => [Array, ShellCompDirective] + /** + * 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. + */ + usageTemplate(): string + } + interface Command { + /** + * HelpTemplate return help template for the command. + */ + helpTemplate(): string + } + interface Command { + /** + * VersionTemplate return version template for the command. + */ + 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 { + /** + * 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. + * nolint:goconst + */ + 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. + */ + localNonPersistentFlags(): (any) + } + interface Command { + /** + * LocalFlags returns the local FlagSet specifically set in the current command. + */ + localFlags(): (any) + } + interface Command { + /** + * InheritedFlags returns all flags which were inherited from parent commands. + */ + inheritedFlags(): (any) + } + interface Command { + /** + * NonInheritedFlags returns all flags which were not inherited from parent commands. + */ + 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. + */ + registerFlagCompletionFunc(flagName: string, f: (cmd: Command, args: Array, toComplete: string) => [Array, ShellCompDirective]): void + } + interface Command { + /** + * GetFlagCompletionFunc returns the completion function for the given flag of the command, if available. + */ + getFlagCompletionFunc(flagName: string): [(_arg0: Command, _arg1: Array, _arg2: string) => [Array, ShellCompDirective], 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(): 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 } } @@ -11059,8 +12364,8 @@ namespace schema { * Package models implements all PocketBase DB models and DTOs. */ namespace models { - type _subAByxr = BaseModel - interface Admin extends _subAByxr { + type _subGeaoE = BaseModel + interface Admin extends _subGeaoE { avatar: number email: string tokenKey: string @@ -11095,8 +12400,8 @@ namespace models { } // @ts-ignore import validation = ozzo_validation - type _subKOTAT = BaseModel - interface Collection extends _subKOTAT { + type _subvYPhz = BaseModel + interface Collection extends _subvYPhz { name: string type: string system: boolean @@ -11189,8 +12494,8 @@ namespace models { */ setOptions(typedOptions: any): void } - type _subaVRDb = BaseModel - interface ExternalAuth extends _subaVRDb { + type _subZrUNb = BaseModel + interface ExternalAuth extends _subZrUNb { collectionId: string recordId: string provider: string @@ -11199,8 +12504,8 @@ namespace models { interface ExternalAuth { tableName(): string } - type _subXuITe = BaseModel - interface Record extends _subXuITe { + type _subdDjDh = BaseModel + interface Record extends _subdDjDh { } interface Record { /** @@ -11598,216 +12903,6 @@ namespace models { } } -namespace auth { - /** - * AuthUser defines a standardized oauth2 user data structure. - */ - interface AuthUser { - id: string - name: string - username: string - email: string - avatarUrl: string - accessToken: string - refreshToken: string - expiry: types.DateTime - rawUser: _TygojaDict - } - /** - * Provider defines a common interface for an OAuth2 client. - */ - interface Provider { - [key:string]: any; - /** - * Scopes 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 - /** - * UserApiUrl returns the provider's user info api url. - */ - userApiUrl(): string - /** - * SetUserApiUrl sets the provider's UserApiUrl. - */ - setUserApiUrl(url: string): 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) - /** - * FetchRawUserData requests and marshalizes into `result` the - * the OAuth user api response. - */ - fetchRawUserData(token: oauth2.Token): string|Array - /** - * FetchAuthUser is similar to FetchRawUserData, but normalizes and - * marshalizes the user api response into a standardized AuthUser struct. - */ - fetchAuthUser(token: oauth2.Token): (AuthUser) - } -} - -namespace settings { - // @ts-ignore - import validation = ozzo_validation - /** - * Settings defines common app configuration options. - */ - interface Settings { - meta: MetaConfig - logs: LogsConfig - smtp: SmtpConfig - s3: S3Config - backups: BackupsConfig - adminAuthToken: TokenConfig - adminPasswordResetToken: TokenConfig - adminFileToken: TokenConfig - recordAuthToken: TokenConfig - recordPasswordResetToken: TokenConfig - recordEmailChangeToken: TokenConfig - recordVerificationToken: TokenConfig - recordFileToken: TokenConfig - /** - * Deprecated: Will be removed in v0.9+ - */ - emailAuth: EmailAuthConfig - googleAuth: AuthProviderConfig - facebookAuth: AuthProviderConfig - githubAuth: AuthProviderConfig - gitlabAuth: AuthProviderConfig - discordAuth: AuthProviderConfig - twitterAuth: AuthProviderConfig - microsoftAuth: AuthProviderConfig - spotifyAuth: AuthProviderConfig - kakaoAuth: AuthProviderConfig - twitchAuth: AuthProviderConfig - stravaAuth: AuthProviderConfig - giteeAuth: AuthProviderConfig - livechatAuth: AuthProviderConfig - giteaAuth: AuthProviderConfig - oidcAuth: AuthProviderConfig - oidc2Auth: AuthProviderConfig - oidc3Auth: AuthProviderConfig - appleAuth: AuthProviderConfig - instagramAuth: AuthProviderConfig - vkAuth: AuthProviderConfig - yandexAuth: AuthProviderConfig - patreonAuth: AuthProviderConfig - mailcowAuth: AuthProviderConfig - } - interface Settings { - /** - * Validate makes Settings validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface Settings { - /** - * Merge merges `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 { - /** - * RedactClone creates a new deep copy of the current settings, - * while replacing the secret values with `******`. - */ - redactClone(): (Settings) - } - interface Settings { - /** - * NamedAuthProviderConfigs returns a map with all registered OAuth2 - * provider configurations (indexed by their name identifier). - */ - namedAuthProviderConfigs(): _TygojaDict - } -} - /** * Package daos handles common PocketBase DB model manipulations. * @@ -13338,1101 +14433,6 @@ namespace core { } } -namespace migrate { - /** - * 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 { - /** - * 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: (db: dbx.Builder) => void, down: (db: dbx.Builder) => void, ...optFilename: string[]): void - } -} - -/** - * 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: (cmd: Command, args: Array, toComplete: string) => [Array, ShellCompDirective] - /** - * 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. - */ - usageTemplate(): string - } - interface Command { - /** - * HelpTemplate return help template for the command. - */ - helpTemplate(): string - } - interface Command { - /** - * VersionTemplate return version template for the command. - */ - 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 { - /** - * 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. - * nolint:goconst - */ - 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. - */ - localNonPersistentFlags(): (any) - } - interface Command { - /** - * LocalFlags returns the local FlagSet specifically set in the current command. - */ - localFlags(): (any) - } - interface Command { - /** - * InheritedFlags returns all flags which were inherited from parent commands. - */ - inheritedFlags(): (any) - } - interface Command { - /** - * NonInheritedFlags returns all flags which were not inherited from parent commands. - */ - 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. - */ - registerFlagCompletionFunc(flagName: string, f: (cmd: Command, args: Array, toComplete: string) => [Array, ShellCompDirective]): void - } - interface Command { - /** - * GetFlagCompletionFunc returns the completion function for the given flag of the command, if available. - */ - getFlagCompletionFunc(flagName: string): [(_arg0: Command, _arg1: Array, _arg2: string) => [Array, ShellCompDirective], 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(): 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 io provides basic interfaces to I/O primitives. * Its primary job is to wrap existing implementations of such primitives, @@ -14655,6 +14655,62 @@ namespace time { namespace fs { } +/** + * 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 { +} + /** * Package url parses URLs and implements query escaping. */ @@ -14886,286 +14942,6 @@ namespace url { } } -/** - * 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 { -} - -/** - * 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 { - /** - * 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 Close to return the connection to the database pool - * and may do so concurrently with a running query. - * - * After a call to 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 - * Row's Scan method is called. - * If the query selects no rows, the *Row's Scan will return ErrNoRows. - * Otherwise, the *Row's 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 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, 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 - } - 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. 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 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 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 Scan. - */ - err(): void - } -} - -namespace migrate { - interface Migration { - file: string - up: (db: dbx.Builder) => void - down: (db: dbx.Builder) => void - } -} - /** * Package net provides a portable interface for network I/O, including * TCP/IP, UDP, domain name resolution, and Unix domain sockets. @@ -15345,6 +15121,65 @@ namespace net { } } +/** + * 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 { + /** + * 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 + } +} + /** * Package textproto implements generic support for text-based request/response * protocols in the style of HTTP, NNTP, and SMTP. @@ -15939,6 +15774,101 @@ 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. + */ +/** + * Copyright 2023 The Go Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ +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 + } + 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: { + }): (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): { + } + } + interface Token { + /** + * Valid reports whether t is non-nil, has an AccessToken, and is not expired. + */ + valid(): boolean + } +} + namespace store { /** * Store defines a concurrent safe in memory key-value data store. @@ -16010,62 +15940,838 @@ namespace store { } } -/** - * Package types implements some commonly used db serializable types - * like datetime, json, etc. - */ -namespace types { +namespace mailer { /** - * DateTime represents a [time.Time] instance in UTC that is wrapped - * and serialized using the app default date layout. + * Mailer defines a base mail client interface. */ - interface DateTime { - } - interface DateTime { + interface Mailer { + [key:string]: any; /** - * Time returns the internal [time.Time] instance. + * Send sends an email with the provided Message. */ - time(): time.Time + send(message: Message): void } - interface DateTime { +} + +/** + * Package echo implements high performance, minimalist Go web framework. + * + * Example: + * + * ``` + * package main + * + * import ( + * "github.com/labstack/echo/v5" + * "github.com/labstack/echo/v5/middleware" + * "log" + * "net/http" + * ) + * + * // Handler + * func hello(c echo.Context) error { + * return c.String(http.StatusOK, "Hello, World!") + * } + * + * func main() { + * // Echo instance + * e := echo.New() + * + * // Middleware + * e.Use(middleware.Logger()) + * e.Use(middleware.Recover()) + * + * // Routes + * e.GET("/", hello) + * + * // Start server + * if err := e.Start(":8080"); err != http.ErrServerClosed { + * log.Fatal(err) + * } + * } + * ``` + * + * Learn more at https://echo.labstack.com + */ +namespace echo { + /** + * Binder is the interface that wraps the Bind method. + */ + interface Binder { + [key:string]: any; + bind(c: Context, i: { + }): void + } + /** + * ServableContext is interface that Echo context implementation must implement to be usable in middleware/handlers and + * be able to be routed by Router. + */ + interface ServableContext { + [key:string]: any; /** - * IsZero checks whether the current DateTime instance has zero time value. + * Reset resets the context after request completes. It must be called along + * with `Echo#AcquireContext()` and `Echo#ReleaseContext()`. + * See `Echo#ServeHTTP()` */ - isZero(): boolean + reset(r: http.Request, w: http.ResponseWriter): void } - interface DateTime { + // @ts-ignore + import stdContext = context + /** + * JSONSerializer is the interface that encodes and decodes JSON to and from interfaces. + */ + interface JSONSerializer { + [key:string]: any; + serialize(c: Context, i: { + }, indent: string): void + deserialize(c: Context, i: { + }): void + } + /** + * HTTPErrorHandler is a centralized HTTP error handler. + */ + interface HTTPErrorHandler {(c: Context, err: Error): void } + /** + * Validator is the interface that wraps the Validate function. + */ + interface Validator { + [key:string]: any; + validate(i: { + }): void + } + /** + * Renderer is the interface that wraps the Render function. + */ + interface Renderer { + [key:string]: any; + render(_arg0: io.Writer, _arg1: string, _arg2: { + }, _arg3: Context): void + } + /** + * Group is a set of sub-routes for a specified route. It can be used for inner + * routes that share a common middleware or functionality that should be separate + * from the parent echo instance while still inheriting from it. + */ + interface Group { + } + interface Group { /** - * String serializes the current DateTime instance into a formatted - * UTC date string. + * Use implements `Echo#Use()` for sub-routes within the Group. + * Group middlewares are not executed on request when there is no matching route found. + */ + use(...middleware: MiddlewareFunc[]): void + } + interface Group { + /** + * CONNECT implements `Echo#CONNECT()` for sub-routes within the Group. Panics on error. + */ + connect(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * DELETE implements `Echo#DELETE()` for sub-routes within the Group. Panics on error. + */ + delete(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * GET implements `Echo#GET()` for sub-routes within the Group. Panics on error. + */ + get(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * HEAD implements `Echo#HEAD()` for sub-routes within the Group. Panics on error. + */ + head(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * OPTIONS implements `Echo#OPTIONS()` for sub-routes within the Group. Panics on error. + */ + options(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * PATCH implements `Echo#PATCH()` for sub-routes within the Group. Panics on error. + */ + patch(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * POST implements `Echo#POST()` for sub-routes within the Group. Panics on error. + */ + post(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * PUT implements `Echo#PUT()` for sub-routes within the Group. Panics on error. + */ + put(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * TRACE implements `Echo#TRACE()` for sub-routes within the Group. Panics on error. + */ + trace(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * Any implements `Echo#Any()` for sub-routes within the Group. Panics on error. + */ + any(path: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): Routes + } + interface Group { + /** + * Match implements `Echo#Match()` for sub-routes within the Group. Panics on error. + */ + match(methods: Array, path: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): Routes + } + interface Group { + /** + * Group creates a new sub-group with prefix and optional sub-group-level middleware. + * Important! Group middlewares are only executed in case there was exact route match and not + * for 404 (not found) or 405 (method not allowed) cases. If this kind of behaviour is needed then add + * a catch-all route `/*` for the group which handler returns always 404 + */ + group(prefix: string, ...middleware: MiddlewareFunc[]): (Group) + } + interface Group { + /** + * Static implements `Echo#Static()` for sub-routes within the Group. + */ + static(pathPrefix: string): RouteInfo + } + interface Group { + /** + * StaticFS implements `Echo#StaticFS()` for sub-routes within the Group. * - * The zero value is serialized to an empty string. + * When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary + * prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths + * including `assets/images` as their prefix. + */ + staticFS(pathPrefix: string, filesystem: fs.FS): RouteInfo + } + interface Group { + /** + * FileFS implements `Echo#FileFS()` for sub-routes within the Group. + */ + fileFS(path: string, filesystem: fs.FS, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * File implements `Echo#File()` for sub-routes within the Group. Panics on error. + */ + file(path: string, ...middleware: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * RouteNotFound implements `Echo#RouteNotFound()` for sub-routes within the Group. + * + * Example: `g.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })` + */ + routeNotFound(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * Add implements `Echo#Add()` for sub-routes within the Group. Panics on error. + */ + add(method: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): RouteInfo + } + interface Group { + /** + * AddRoute registers a new Routable with Router + */ + addRoute(route: Routable): RouteInfo + } + /** + * IPExtractor is a function to extract IP addr from http.Request. + * Set appropriate one to Echo#IPExtractor. + * See https://echo.labstack.com/guide/ip-address for more details. + */ + interface IPExtractor {(_arg0: http.Request): string } + /** + * Logger defines the logging interface that Echo uses internally in few places. + * For logging in handlers use your own logger instance (dependency injected or package/public variable) from logging framework of your choice. + */ + interface Logger { + [key:string]: any; + /** + * Write provides writer interface for http.Server `ErrorLog` and for logging startup messages. + * `http.Server.ErrorLog` logs errors from accepting connections, unexpected behavior from handlers, + * and underlying FileSystem errors. + * `logger` middleware will use this method to write its JSON payload. + */ + write(p: string|Array): number + /** + * Error logs the error + */ + error(err: Error): void + } + /** + * Response wraps an http.ResponseWriter and implements its interface to be used + * by an HTTP handler to construct an HTTP response. + * See: https://golang.org/pkg/net/http/#ResponseWriter + */ + interface Response { + writer: http.ResponseWriter + status: number + size: number + committed: boolean + } + interface Response { + /** + * Header returns the header map for the writer that will be sent by + * WriteHeader. Changing the header after a call to WriteHeader (or Write) has + * no effect unless the modified headers were declared as trailers by setting + * the "Trailer" header before the call to WriteHeader (see example) + * To suppress implicit response headers, set their value to nil. + * Example: https://golang.org/pkg/net/http/#example_ResponseWriter_trailers + */ + header(): http.Header + } + interface Response { + /** + * Before registers a function which is called just before the response is written. + */ + before(fn: () => void): void + } + interface Response { + /** + * After registers a function which is called just after the response is written. + * If the `Content-Length` is unknown, none of the after function is executed. + */ + after(fn: () => void): void + } + interface Response { + /** + * WriteHeader sends an HTTP response header with 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. + */ + writeHeader(code: number): void + } + interface Response { + /** + * Write writes the data to the connection as part of an HTTP reply. + */ + write(b: string|Array): number + } + interface Response { + /** + * Flush implements the http.Flusher interface to allow an HTTP handler to flush + * buffered data to the client. + * See [http.Flusher](https://golang.org/pkg/net/http/#Flusher) + */ + flush(): void + } + interface Response { + /** + * Hijack implements the http.Hijacker interface to allow an HTTP handler to + * take over the connection. + * See [http.Hijacker](https://golang.org/pkg/net/http/#Hijacker) + */ + hijack(): [net.Conn, (bufio.ReadWriter)] + } + interface Response { + /** + * Unwrap returns the original http.ResponseWriter. + * ResponseController can be used to access the original http.ResponseWriter. + * See [https://go.dev/blog/go1.20] + */ + unwrap(): http.ResponseWriter + } + interface Routes { + /** + * Reverse reverses route to URL string by replacing path parameters with given params values. + */ + reverse(name: string, ...params: { + }[]): string + } + interface Routes { + /** + * FindByMethodPath searched for matching route info by method and path + */ + findByMethodPath(method: string, path: string): RouteInfo + } + interface Routes { + /** + * FilterByMethod searched for matching route info by method + */ + filterByMethod(method: string): Routes + } + interface Routes { + /** + * FilterByPath searched for matching route info by path + */ + filterByPath(path: string): Routes + } + interface Routes { + /** + * FilterByName searched for matching route info by name + */ + filterByName(name: string): Routes + } + /** + * Router is interface for routing request contexts to registered routes. + * + * Contract between Echo/Context instance and the router: + * ``` + * - all routes must be added through methods on echo.Echo instance. + * Reason: Echo instance uses RouteInfo.Params() length to allocate slice for paths parameters (see `Echo.contextPathParamAllocSize`). + * - Router must populate Context during Router.Route call with: + * - RoutableContext.SetPath + * - RoutableContext.SetRawPathParams (IMPORTANT! with same slice pointer that c.RawPathParams() returns) + * - RoutableContext.SetRouteInfo + * And optionally can set additional information to Context with RoutableContext.Set + * ``` + */ + interface Router { + [key:string]: any; + /** + * Add registers Routable with the Router and returns registered RouteInfo + */ + add(routable: Routable): RouteInfo + /** + * Remove removes route from the Router + */ + remove(method: string, path: string): void + /** + * Routes returns information about all registered routes + */ + routes(): Routes + /** + * Route searches Router for matching route and applies it to the given context. In case when no matching method + * was not found (405) or no matching route exists for path (404), router will return its implementation of 405/404 + * handler function. + */ + route(c: RoutableContext): HandlerFunc + } + /** + * Routable is interface for registering Route with Router. During route registration process the Router will + * convert Routable to RouteInfo with ToRouteInfo method. By creating custom implementation of Routable additional + * information about registered route can be stored in Routes (i.e. privileges used with route etc.) + */ + interface Routable { + [key:string]: any; + /** + * ToRouteInfo converts Routable to RouteInfo + * + * This method is meant to be used by Router after it parses url for path parameters, to store information about + * route just added. + */ + toRouteInfo(params: Array): RouteInfo + /** + * ToRoute converts Routable to Route which Router uses to register the method handler for path. + * + * This method is meant to be used by Router to get fields (including handler and middleware functions) needed to + * add Route to Router. + */ + toRoute(): Route + /** + * ForGroup recreates routable with added group prefix and group middlewares it is grouped to. + * + * Is necessary for Echo.Group to be able to add/register Routable with Router and having group prefix and group + * middlewares included in actually registered Route. + */ + forGroup(pathPrefix: string, middlewares: Array): Routable + } + /** + * Routes is collection of RouteInfo instances with various helper methods. + */ + interface Routes extends Array{} + /** + * RouteInfo describes registered route base fields. + * Method+Path pair uniquely identifies the Route. Name can have duplicates. + */ + interface RouteInfo { + [key:string]: any; + method(): string + path(): string + name(): string + params(): Array + /** + * Reverse reverses route to URL string by replacing path parameters with given params values. + */ + reverse(...params: { + }[]): string + } + /** + * PathParams is collections of PathParam instances with various helper methods + */ + interface PathParams extends Array{} + interface PathParams { + /** + * Get returns path parameter value for given name or default value. + */ + get(name: string, defaultValue: string): 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 { + /** + * 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 } - interface DateTime { + /** + * DBStats contains database statistics. + */ + interface DBStats { + maxOpenConnections: number // Maximum number of open connections to the database. /** - * MarshalJSON implements the [json.Marshaler] interface. + * Pool Status */ - marshalJSON(): string|Array + 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. } - interface DateTime { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - */ - unmarshalJSON(b: string|Array): void + /** + * 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 Close to return the connection to the database pool + * and may do so concurrently with a running query. + * + * After a call to Close, all operations on the + * connection fail with ErrConnDone. + */ + interface Conn { } - interface DateTime { + interface Conn { /** - * Value implements the [driver.Valuer] interface. + * PingContext verifies the connection to the database is still alive. */ - value(): any + pingContext(ctx: context.Context): void } - interface DateTime { + interface Conn { /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current DateTime instance. + * ExecContext executes a query without returning any rows. + * The args are for any placeholder parameters in the query. */ - scan(value: any): void + 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 + * Row's Scan method is called. + * If the query selects no rows, the *Row's Scan will return ErrNoRows. + * Otherwise, the *Row's 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 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, 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 + } + 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. 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 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 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 Scan. + */ + err(): void + } +} + +namespace settings { + // @ts-ignore + import validation = ozzo_validation + interface TokenConfig { + secret: string + duration: number + } + interface TokenConfig { + /** + * Validate makes TokenConfig validatable by implementing [validation.Validatable] interface. + */ + validate(): void + } + interface SmtpConfig { + enabled: boolean + host: string + port: number + 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 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 + hideControls: boolean + senderName: string + senderAddress: string + verificationTemplate: EmailTemplate + resetPasswordTemplate: EmailTemplate + confirmEmailChangeTemplate: EmailTemplate + } + interface MetaConfig { + /** + * Validate makes MetaConfig validatable by implementing [validation.Validatable] interface. + */ + validate(): void + } + interface LogsConfig { + maxDays: number + minLevel: number + logIp: boolean + } + interface LogsConfig { + /** + * Validate makes LogsConfig validatable by implementing [validation.Validatable] interface. + */ + validate(): void + } + interface AuthProviderConfig { + enabled: boolean + clientId: string + clientSecret: string + authUrl: string + tokenUrl: string + userApiUrl: string + displayName: string + pkce?: boolean + } + interface AuthProviderConfig { + /** + * Validate makes `ProviderConfig` validatable by implementing [validation.Validatable] interface. + */ + validate(): void + } + interface AuthProviderConfig { + /** + * SetupProvider loads the current AuthProviderConfig into the specified provider. + */ + setupProvider(provider: auth.Provider): void + } + /** + * Deprecated: Will be removed in v0.9+ + */ + interface EmailAuthConfig { + enabled: boolean + exceptDomains: Array + onlyDomains: Array + minPasswordLength: number + } + interface EmailAuthConfig { + /** + * Deprecated: Will be removed in v0.9+ + */ + validate(): void } } @@ -16304,8 +17010,8 @@ namespace models { */ validate(): void } - type _subPYhho = BaseModel - interface Log extends _subPYhho { + type _subhrWXI = BaseModel + interface Log extends _subhrWXI { data: types.JsonMap message: string level: number @@ -16313,8 +17019,8 @@ namespace models { interface Log { tableName(): string } - type _subElbeo = BaseModel - interface Param extends _subElbeo { + type _subGSloU = BaseModel + interface Param extends _subGSloU { key: string value: types.JsonRaw } @@ -16335,6 +17041,105 @@ namespace models { } } +/** + * Package daos handles common PocketBase DB model manipulations. + * + * Think of daos as DB repository and service layer in one. + */ +namespace daos { + interface LogsStatsItem { + total: number + date: types.DateTime + } + /** + * ExpandFetchFunc defines the function that is used to fetch the expanded relation records. + */ + interface ExpandFetchFunc {(relCollection: models.Collection, relIds: Array): Array<(models.Record | undefined)> } + // @ts-ignore + import validation = ozzo_validation +} + +namespace hook { + /** + * Hook defines a concurrent safe structure for handling event hooks + * (aka. callbacks propagation). + */ + interface Hook { + } + interface Hook { + /** + * PreAdd registers a new handler to the hook by prepending it to the existing queue. + * + * Returns an autogenerated hook id that could be used later to remove the hook with Hook.Remove(id). + */ + preAdd(fn: Handler): string + } + interface Hook { + /** + * Add registers a new handler to the hook by appending it to the existing queue. + * + * Returns an autogenerated hook id that could be used later to remove the hook with Hook.Remove(id). + */ + add(fn: Handler): string + } + interface Hook { + /** + * Remove removes a single hook handler by its id. + */ + remove(id: string): void + } + interface Hook { + /** + * RemoveAll removes all registered handlers. + */ + removeAll(): void + } + interface Hook { + /** + * Trigger executes all registered hook handlers one by one + * with the specified `data` as an argument. + * + * Optionally, this method allows also to register additional one off + * handlers that will be temporary appended to the handlers queue. + * + * The execution stops when: + * - hook.StopPropagation is returned in one of the handlers + * - any non-nil error is returned in one of the handlers + */ + trigger(data: T, ...oneOffHandlers: Handler[]): 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 _subWIsLS = mainHook + interface TaggedHook extends _subWIsLS { + } + interface TaggedHook { + /** + * CanTriggerOn checks if the current TaggedHook can be triggered with + * the provided event data tags. + */ + canTriggerOn(tags: Array): boolean + } + interface TaggedHook { + /** + * PreAdd registers a new handler to the hook by prepending it to the existing queue. + * + * The fn handler will be called only if the event data tags satisfy h.CanTriggerOn. + */ + preAdd(fn: Handler): string + } + interface TaggedHook { + /** + * Add registers a new handler to the hook by appending it to the existing queue. + * + * The fn handler will be called only if the event data tags satisfy h.CanTriggerOn. + */ + add(fn: Handler): string + } +} + /** * Package slog provides structured logging, * in which log records include a message, @@ -16823,19 +17628,6 @@ namespace slog { } } -namespace mailer { - /** - * Mailer defines a base mail client interface. - */ - interface Mailer { - [key:string]: any; - /** - * Send sends an email with the provided Message. - */ - send(message: Message): void - } -} - namespace subscriptions { /** * Broker defines a struct for managing subscriptions clients. @@ -16873,855 +17665,6 @@ namespace subscriptions { } } -namespace hook { - /** - * Hook defines a concurrent safe structure for handling event hooks - * (aka. callbacks propagation). - */ - interface Hook { - } - interface Hook { - /** - * PreAdd registers a new handler to the hook by prepending it to the existing queue. - * - * Returns an autogenerated hook id that could be used later to remove the hook with Hook.Remove(id). - */ - preAdd(fn: Handler): string - } - interface Hook { - /** - * Add registers a new handler to the hook by appending it to the existing queue. - * - * Returns an autogenerated hook id that could be used later to remove the hook with Hook.Remove(id). - */ - add(fn: Handler): string - } - interface Hook { - /** - * Remove removes a single hook handler by its id. - */ - remove(id: string): void - } - interface Hook { - /** - * RemoveAll removes all registered handlers. - */ - removeAll(): void - } - interface Hook { - /** - * Trigger executes all registered hook handlers one by one - * with the specified `data` as an argument. - * - * Optionally, this method allows also to register additional one off - * handlers that will be temporary appended to the handlers queue. - * - * The execution stops when: - * - hook.StopPropagation is returned in one of the handlers - * - any non-nil error is returned in one of the handlers - */ - trigger(data: T, ...oneOffHandlers: Handler[]): 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 _subHkhjN = mainHook - interface TaggedHook extends _subHkhjN { - } - interface TaggedHook { - /** - * CanTriggerOn checks if the current TaggedHook can be triggered with - * the provided event data tags. - */ - canTriggerOn(tags: Array): boolean - } - interface TaggedHook { - /** - * PreAdd registers a new handler to the hook by prepending it to the existing queue. - * - * The fn handler will be called only if the event data tags satisfy h.CanTriggerOn. - */ - preAdd(fn: Handler): string - } - interface TaggedHook { - /** - * Add registers a new handler to the hook by appending it to the existing queue. - * - * The fn handler will be called only if the event data tags satisfy h.CanTriggerOn. - */ - add(fn: Handler): string - } -} - -/** - * 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 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 - } - /** - * 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{} - /** - * 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 - } -} - -/** - * Package echo implements high performance, minimalist Go web framework. - * - * Example: - * - * ``` - * package main - * - * import ( - * "github.com/labstack/echo/v5" - * "github.com/labstack/echo/v5/middleware" - * "log" - * "net/http" - * ) - * - * // Handler - * func hello(c echo.Context) error { - * return c.String(http.StatusOK, "Hello, World!") - * } - * - * func main() { - * // Echo instance - * e := echo.New() - * - * // Middleware - * e.Use(middleware.Logger()) - * e.Use(middleware.Recover()) - * - * // Routes - * e.GET("/", hello) - * - * // Start server - * if err := e.Start(":8080"); err != http.ErrServerClosed { - * log.Fatal(err) - * } - * } - * ``` - * - * Learn more at https://echo.labstack.com - */ -namespace echo { - /** - * Binder is the interface that wraps the Bind method. - */ - interface Binder { - [key:string]: any; - bind(c: Context, i: { - }): void - } - /** - * ServableContext is interface that Echo context implementation must implement to be usable in middleware/handlers and - * be able to be routed by Router. - */ - interface ServableContext { - [key:string]: any; - /** - * Reset resets the context after request completes. It must be called along - * with `Echo#AcquireContext()` and `Echo#ReleaseContext()`. - * See `Echo#ServeHTTP()` - */ - reset(r: http.Request, w: http.ResponseWriter): void - } - // @ts-ignore - import stdContext = context - /** - * JSONSerializer is the interface that encodes and decodes JSON to and from interfaces. - */ - interface JSONSerializer { - [key:string]: any; - serialize(c: Context, i: { - }, indent: string): void - deserialize(c: Context, i: { - }): void - } - /** - * HTTPErrorHandler is a centralized HTTP error handler. - */ - interface HTTPErrorHandler {(c: Context, err: Error): void } - /** - * Validator is the interface that wraps the Validate function. - */ - interface Validator { - [key:string]: any; - validate(i: { - }): void - } - /** - * Renderer is the interface that wraps the Render function. - */ - interface Renderer { - [key:string]: any; - render(_arg0: io.Writer, _arg1: string, _arg2: { - }, _arg3: Context): void - } - /** - * Group is a set of sub-routes for a specified route. It can be used for inner - * routes that share a common middleware or functionality that should be separate - * from the parent echo instance while still inheriting from it. - */ - interface Group { - } - interface Group { - /** - * Use implements `Echo#Use()` for sub-routes within the Group. - * Group middlewares are not executed on request when there is no matching route found. - */ - use(...middleware: MiddlewareFunc[]): void - } - interface Group { - /** - * CONNECT implements `Echo#CONNECT()` for sub-routes within the Group. Panics on error. - */ - connect(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * DELETE implements `Echo#DELETE()` for sub-routes within the Group. Panics on error. - */ - delete(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * GET implements `Echo#GET()` for sub-routes within the Group. Panics on error. - */ - get(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * HEAD implements `Echo#HEAD()` for sub-routes within the Group. Panics on error. - */ - head(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * OPTIONS implements `Echo#OPTIONS()` for sub-routes within the Group. Panics on error. - */ - options(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * PATCH implements `Echo#PATCH()` for sub-routes within the Group. Panics on error. - */ - patch(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * POST implements `Echo#POST()` for sub-routes within the Group. Panics on error. - */ - post(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * PUT implements `Echo#PUT()` for sub-routes within the Group. Panics on error. - */ - put(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * TRACE implements `Echo#TRACE()` for sub-routes within the Group. Panics on error. - */ - trace(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * Any implements `Echo#Any()` for sub-routes within the Group. Panics on error. - */ - any(path: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): Routes - } - interface Group { - /** - * Match implements `Echo#Match()` for sub-routes within the Group. Panics on error. - */ - match(methods: Array, path: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): Routes - } - interface Group { - /** - * Group creates a new sub-group with prefix and optional sub-group-level middleware. - * Important! Group middlewares are only executed in case there was exact route match and not - * for 404 (not found) or 405 (method not allowed) cases. If this kind of behaviour is needed then add - * a catch-all route `/*` for the group which handler returns always 404 - */ - group(prefix: string, ...middleware: MiddlewareFunc[]): (Group) - } - interface Group { - /** - * Static implements `Echo#Static()` for sub-routes within the Group. - */ - static(pathPrefix: string): RouteInfo - } - interface Group { - /** - * StaticFS implements `Echo#StaticFS()` for sub-routes within the Group. - * - * When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary - * prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths - * including `assets/images` as their prefix. - */ - staticFS(pathPrefix: string, filesystem: fs.FS): RouteInfo - } - interface Group { - /** - * FileFS implements `Echo#FileFS()` for sub-routes within the Group. - */ - fileFS(path: string, filesystem: fs.FS, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * File implements `Echo#File()` for sub-routes within the Group. Panics on error. - */ - file(path: string, ...middleware: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * RouteNotFound implements `Echo#RouteNotFound()` for sub-routes within the Group. - * - * Example: `g.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })` - */ - routeNotFound(path: string, h: HandlerFunc, ...m: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * Add implements `Echo#Add()` for sub-routes within the Group. Panics on error. - */ - add(method: string, handler: HandlerFunc, ...middleware: MiddlewareFunc[]): RouteInfo - } - interface Group { - /** - * AddRoute registers a new Routable with Router - */ - addRoute(route: Routable): RouteInfo - } - /** - * IPExtractor is a function to extract IP addr from http.Request. - * Set appropriate one to Echo#IPExtractor. - * See https://echo.labstack.com/guide/ip-address for more details. - */ - interface IPExtractor {(_arg0: http.Request): string } - /** - * Logger defines the logging interface that Echo uses internally in few places. - * For logging in handlers use your own logger instance (dependency injected or package/public variable) from logging framework of your choice. - */ - interface Logger { - [key:string]: any; - /** - * Write provides writer interface for http.Server `ErrorLog` and for logging startup messages. - * `http.Server.ErrorLog` logs errors from accepting connections, unexpected behavior from handlers, - * and underlying FileSystem errors. - * `logger` middleware will use this method to write its JSON payload. - */ - write(p: string|Array): number - /** - * Error logs the error - */ - error(err: Error): void - } - /** - * Response wraps an http.ResponseWriter and implements its interface to be used - * by an HTTP handler to construct an HTTP response. - * See: https://golang.org/pkg/net/http/#ResponseWriter - */ - interface Response { - writer: http.ResponseWriter - status: number - size: number - committed: boolean - } - interface Response { - /** - * Header returns the header map for the writer that will be sent by - * WriteHeader. Changing the header after a call to WriteHeader (or Write) has - * no effect unless the modified headers were declared as trailers by setting - * the "Trailer" header before the call to WriteHeader (see example) - * To suppress implicit response headers, set their value to nil. - * Example: https://golang.org/pkg/net/http/#example_ResponseWriter_trailers - */ - header(): http.Header - } - interface Response { - /** - * Before registers a function which is called just before the response is written. - */ - before(fn: () => void): void - } - interface Response { - /** - * After registers a function which is called just after the response is written. - * If the `Content-Length` is unknown, none of the after function is executed. - */ - after(fn: () => void): void - } - interface Response { - /** - * WriteHeader sends an HTTP response header with 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. - */ - writeHeader(code: number): void - } - interface Response { - /** - * Write writes the data to the connection as part of an HTTP reply. - */ - write(b: string|Array): number - } - interface Response { - /** - * Flush implements the http.Flusher interface to allow an HTTP handler to flush - * buffered data to the client. - * See [http.Flusher](https://golang.org/pkg/net/http/#Flusher) - */ - flush(): void - } - interface Response { - /** - * Hijack implements the http.Hijacker interface to allow an HTTP handler to - * take over the connection. - * See [http.Hijacker](https://golang.org/pkg/net/http/#Hijacker) - */ - hijack(): [net.Conn, (bufio.ReadWriter)] - } - interface Response { - /** - * Unwrap returns the original http.ResponseWriter. - * ResponseController can be used to access the original http.ResponseWriter. - * See [https://go.dev/blog/go1.20] - */ - unwrap(): http.ResponseWriter - } - interface Routes { - /** - * Reverse reverses route to URL string by replacing path parameters with given params values. - */ - reverse(name: string, ...params: { - }[]): string - } - interface Routes { - /** - * FindByMethodPath searched for matching route info by method and path - */ - findByMethodPath(method: string, path: string): RouteInfo - } - interface Routes { - /** - * FilterByMethod searched for matching route info by method - */ - filterByMethod(method: string): Routes - } - interface Routes { - /** - * FilterByPath searched for matching route info by path - */ - filterByPath(path: string): Routes - } - interface Routes { - /** - * FilterByName searched for matching route info by name - */ - filterByName(name: string): Routes - } - /** - * Router is interface for routing request contexts to registered routes. - * - * Contract between Echo/Context instance and the router: - * ``` - * - all routes must be added through methods on echo.Echo instance. - * Reason: Echo instance uses RouteInfo.Params() length to allocate slice for paths parameters (see `Echo.contextPathParamAllocSize`). - * - Router must populate Context during Router.Route call with: - * - RoutableContext.SetPath - * - RoutableContext.SetRawPathParams (IMPORTANT! with same slice pointer that c.RawPathParams() returns) - * - RoutableContext.SetRouteInfo - * And optionally can set additional information to Context with RoutableContext.Set - * ``` - */ - interface Router { - [key:string]: any; - /** - * Add registers Routable with the Router and returns registered RouteInfo - */ - add(routable: Routable): RouteInfo - /** - * Remove removes route from the Router - */ - remove(method: string, path: string): void - /** - * Routes returns information about all registered routes - */ - routes(): Routes - /** - * Route searches Router for matching route and applies it to the given context. In case when no matching method - * was not found (405) or no matching route exists for path (404), router will return its implementation of 405/404 - * handler function. - */ - route(c: RoutableContext): HandlerFunc - } - /** - * Routable is interface for registering Route with Router. During route registration process the Router will - * convert Routable to RouteInfo with ToRouteInfo method. By creating custom implementation of Routable additional - * information about registered route can be stored in Routes (i.e. privileges used with route etc.) - */ - interface Routable { - [key:string]: any; - /** - * ToRouteInfo converts Routable to RouteInfo - * - * This method is meant to be used by Router after it parses url for path parameters, to store information about - * route just added. - */ - toRouteInfo(params: Array): RouteInfo - /** - * ToRoute converts Routable to Route which Router uses to register the method handler for path. - * - * This method is meant to be used by Router to get fields (including handler and middleware functions) needed to - * add Route to Router. - */ - toRoute(): Route - /** - * ForGroup recreates routable with added group prefix and group middlewares it is grouped to. - * - * Is necessary for Echo.Group to be able to add/register Routable with Router and having group prefix and group - * middlewares included in actually registered Route. - */ - forGroup(pathPrefix: string, middlewares: Array): Routable - } - /** - * Routes is collection of RouteInfo instances with various helper methods. - */ - interface Routes extends Array{} - /** - * RouteInfo describes registered route base fields. - * Method+Path pair uniquely identifies the Route. Name can have duplicates. - */ - interface RouteInfo { - [key:string]: any; - method(): string - path(): string - name(): string - params(): Array - /** - * Reverse reverses route to URL string by replacing path parameters with given params values. - */ - reverse(...params: { - }[]): string - } - /** - * PathParams is collections of PathParam instances with various helper methods - */ - interface PathParams extends Array{} - interface PathParams { - /** - * Get returns path parameter value for given name or default value. - */ - get(name: string, defaultValue: string): string - } -} - -/** - * 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. - */ -/** - * Copyright 2023 The Go Authors. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. - */ -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 - } - 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: { - }): (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): { - } - } - interface Token { - /** - * Valid reports whether t is non-nil, has an AccessToken, and is not expired. - */ - valid(): boolean - } -} - -namespace settings { - // @ts-ignore - import validation = ozzo_validation - interface TokenConfig { - secret: string - duration: number - } - interface TokenConfig { - /** - * Validate makes TokenConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface SmtpConfig { - enabled: boolean - host: string - port: number - 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 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 - hideControls: boolean - senderName: string - senderAddress: string - verificationTemplate: EmailTemplate - resetPasswordTemplate: EmailTemplate - confirmEmailChangeTemplate: EmailTemplate - } - interface MetaConfig { - /** - * Validate makes MetaConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface LogsConfig { - maxDays: number - minLevel: number - logIp: boolean - } - interface LogsConfig { - /** - * Validate makes LogsConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface AuthProviderConfig { - enabled: boolean - clientId: string - clientSecret: string - authUrl: string - tokenUrl: string - userApiUrl: string - displayName: string - pkce?: boolean - } - interface AuthProviderConfig { - /** - * Validate makes `ProviderConfig` validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface AuthProviderConfig { - /** - * SetupProvider loads the current AuthProviderConfig into the specified provider. - */ - setupProvider(provider: auth.Provider): void - } - /** - * Deprecated: Will be removed in v0.9+ - */ - interface EmailAuthConfig { - enabled: boolean - exceptDomains: Array - onlyDomains: Array - minPasswordLength: number - } - interface EmailAuthConfig { - /** - * Deprecated: Will be removed in v0.9+ - */ - validate(): void - } -} - -/** - * Package daos handles common PocketBase DB model manipulations. - * - * Think of daos as DB repository and service layer in one. - */ -namespace daos { - interface LogsStatsItem { - total: number - date: types.DateTime - } - /** - * ExpandFetchFunc defines the function that is used to fetch the expanded relation records. - */ - interface ExpandFetchFunc {(relCollection: models.Collection, relIds: Array): Array<(models.Record | undefined)> } - // @ts-ignore - import validation = ozzo_validation -} - /** * Package core is the backbone of PocketBase. * @@ -17745,12 +17688,12 @@ namespace core { httpContext: echo.Context error: Error } - type _subvMjns = BaseModelEvent - interface ModelEvent extends _subvMjns { + type _subNQtmT = BaseModelEvent + interface ModelEvent extends _subNQtmT { dao?: daos.Dao } - type _subdcujI = BaseCollectionEvent - interface MailerRecordEvent extends _subdcujI { + type _subPreQB = BaseCollectionEvent + interface MailerRecordEvent extends _subPreQB { mailClient: mailer.Mailer message?: mailer.Message record?: models.Record @@ -17790,50 +17733,50 @@ namespace core { oldSettings?: settings.Settings newSettings?: settings.Settings } - type _subGrKbX = BaseCollectionEvent - interface RecordsListEvent extends _subGrKbX { + type _subWhnvy = BaseCollectionEvent + interface RecordsListEvent extends _subWhnvy { httpContext: echo.Context records: Array<(models.Record | undefined)> result?: search.Result } - type _subIwMHT = BaseCollectionEvent - interface RecordViewEvent extends _subIwMHT { + type _subRsnOH = BaseCollectionEvent + interface RecordViewEvent extends _subRsnOH { httpContext: echo.Context record?: models.Record } - type _subOqahU = BaseCollectionEvent - interface RecordCreateEvent extends _subOqahU { + type _subMxLdO = BaseCollectionEvent + interface RecordCreateEvent extends _subMxLdO { httpContext: echo.Context record?: models.Record uploadedFiles: _TygojaDict } - type _submpknU = BaseCollectionEvent - interface RecordUpdateEvent extends _submpknU { + type _subYqTMc = BaseCollectionEvent + interface RecordUpdateEvent extends _subYqTMc { httpContext: echo.Context record?: models.Record uploadedFiles: _TygojaDict } - type _subAqoUP = BaseCollectionEvent - interface RecordDeleteEvent extends _subAqoUP { + type _subHEvOB = BaseCollectionEvent + interface RecordDeleteEvent extends _subHEvOB { httpContext: echo.Context record?: models.Record } - type _subIkmaE = BaseCollectionEvent - interface RecordAuthEvent extends _subIkmaE { + type _subNJbGa = BaseCollectionEvent + interface RecordAuthEvent extends _subNJbGa { httpContext: echo.Context record?: models.Record token: string meta: any } - type _subnwRBC = BaseCollectionEvent - interface RecordAuthWithPasswordEvent extends _subnwRBC { + type _subYIAsl = BaseCollectionEvent + interface RecordAuthWithPasswordEvent extends _subYIAsl { httpContext: echo.Context record?: models.Record identity: string password: string } - type _subZZZvX = BaseCollectionEvent - interface RecordAuthWithOAuth2Event extends _subZZZvX { + type _subqPBfc = BaseCollectionEvent + interface RecordAuthWithOAuth2Event extends _subqPBfc { httpContext: echo.Context providerName: string providerClient: auth.Provider @@ -17841,49 +17784,49 @@ namespace core { oAuth2User?: auth.AuthUser isNewRecord: boolean } - type _subsemLM = BaseCollectionEvent - interface RecordAuthRefreshEvent extends _subsemLM { + type _subfHqNn = BaseCollectionEvent + interface RecordAuthRefreshEvent extends _subfHqNn { httpContext: echo.Context record?: models.Record } - type _subJOkzx = BaseCollectionEvent - interface RecordRequestPasswordResetEvent extends _subJOkzx { + type _subEEQvo = BaseCollectionEvent + interface RecordRequestPasswordResetEvent extends _subEEQvo { httpContext: echo.Context record?: models.Record } - type _subgZQlY = BaseCollectionEvent - interface RecordConfirmPasswordResetEvent extends _subgZQlY { + type _subOnHAd = BaseCollectionEvent + interface RecordConfirmPasswordResetEvent extends _subOnHAd { httpContext: echo.Context record?: models.Record } - type _suboowBk = BaseCollectionEvent - interface RecordRequestVerificationEvent extends _suboowBk { + type _subyQkZe = BaseCollectionEvent + interface RecordRequestVerificationEvent extends _subyQkZe { httpContext: echo.Context record?: models.Record } - type _subsZTCt = BaseCollectionEvent - interface RecordConfirmVerificationEvent extends _subsZTCt { + type _subEYLJV = BaseCollectionEvent + interface RecordConfirmVerificationEvent extends _subEYLJV { httpContext: echo.Context record?: models.Record } - type _subSwLoG = BaseCollectionEvent - interface RecordRequestEmailChangeEvent extends _subSwLoG { + type _subUiZui = BaseCollectionEvent + interface RecordRequestEmailChangeEvent extends _subUiZui { httpContext: echo.Context record?: models.Record } - type _subHibFa = BaseCollectionEvent - interface RecordConfirmEmailChangeEvent extends _subHibFa { + type _subORfFa = BaseCollectionEvent + interface RecordConfirmEmailChangeEvent extends _subORfFa { httpContext: echo.Context record?: models.Record } - type _subQcIIX = BaseCollectionEvent - interface RecordListExternalAuthsEvent extends _subQcIIX { + type _subyksbK = BaseCollectionEvent + interface RecordListExternalAuthsEvent extends _subyksbK { httpContext: echo.Context record?: models.Record externalAuths: Array<(models.ExternalAuth | undefined)> } - type _subWGgXE = BaseCollectionEvent - interface RecordUnlinkExternalAuthEvent extends _subWGgXE { + type _subgmReu = BaseCollectionEvent + interface RecordUnlinkExternalAuthEvent extends _subgmReu { httpContext: echo.Context record?: models.Record externalAuth?: models.ExternalAuth @@ -17937,33 +17880,33 @@ namespace core { collections: Array<(models.Collection | undefined)> result?: search.Result } - type _subUooyD = BaseCollectionEvent - interface CollectionViewEvent extends _subUooyD { + type _subNKoJU = BaseCollectionEvent + interface CollectionViewEvent extends _subNKoJU { httpContext: echo.Context } - type _subgibfO = BaseCollectionEvent - interface CollectionCreateEvent extends _subgibfO { + type _subIJGdN = BaseCollectionEvent + interface CollectionCreateEvent extends _subIJGdN { httpContext: echo.Context } - type _subbdqYt = BaseCollectionEvent - interface CollectionUpdateEvent extends _subbdqYt { + type _subvMBZb = BaseCollectionEvent + interface CollectionUpdateEvent extends _subvMBZb { httpContext: echo.Context } - type _subzrNCI = BaseCollectionEvent - interface CollectionDeleteEvent extends _subzrNCI { + type _subYEbNP = BaseCollectionEvent + interface CollectionDeleteEvent extends _subYEbNP { httpContext: echo.Context } interface CollectionsImportEvent { httpContext: echo.Context collections: Array<(models.Collection | undefined)> } - type _subBqelU = BaseModelEvent - interface FileTokenEvent extends _subBqelU { + type _subFqOIc = BaseModelEvent + interface FileTokenEvent extends _subFqOIc { httpContext: echo.Context token: string } - type _subNnhQf = BaseCollectionEvent - interface FileDownloadEvent extends _subNnhQf { + type _subUxgNn = BaseCollectionEvent + interface FileDownloadEvent extends _subUxgNn { httpContext: echo.Context record?: models.Record fileField?: schema.SchemaField @@ -17972,6 +17915,78 @@ namespace core { } } +/** + * 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 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 + } + /** + * 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{} + /** + * 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 + } +} + +namespace migrate { + interface Migration { + file: string + up: (db: dbx.Builder) => void + down: (db: dbx.Builder) => 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 _subnROWM = Reader&Writer + interface ReadWriter extends _subnROWM { + } +} + /** * Package net provides a portable interface for network I/O, including * TCP/IP, UDP, domain name resolution, and Unix domain sockets. @@ -18072,17 +18087,35 @@ namespace net { } /** - * 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. + * Package url parses URLs and implements query escaping. */ -namespace bufio { +namespace url { /** - * ReadWriter stores pointers to a Reader and a Writer. - * It implements io.ReadWriter. + * 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. */ - type _subuTbZS = Reader&Writer - interface ReadWriter extends _subuTbZS { + 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 } } @@ -18152,97 +18185,6 @@ namespace multipart { } } -namespace store { -} - -/** - * Package url parses URLs and implements query escaping. - */ -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 - } -} - -/** - * Package types implements some commonly used db serializable types - * like datetime, json, etc. - */ -namespace types { - /** - * 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 - } -} - -namespace search { - /** - * Result defines the returned search result structure. - */ - interface Result { - page: number - perPage: number - totalItems: number - totalPages: number - items: any - } -} - /** * Package http provides HTTP client and server implementations. * @@ -18378,6 +18320,51 @@ namespace http { import urlpkg = url } +/** + * Package types implements some commonly used db serializable types + * like datetime, json, etc. + */ +namespace types { + /** + * 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 + } +} + +namespace store { +} + namespace mailer { /** * Message defines a generic email message struct. @@ -18395,19 +18382,6 @@ namespace mailer { } } -namespace hook { - /** - * Handler defines a hook handler function. - */ - interface Handler {(e: T): void } - /** - * wrapped local Hook embedded struct to limit the public API surface. - */ - type _subPTIdR = Hook - interface mainHook extends _subPTIdR { - } -} - /** * Package echo implements high performance, minimalist Go web framework. * @@ -18523,6 +18497,19 @@ namespace echo { } } +namespace search { + /** + * Result defines the returned search result structure. + */ + interface Result { + page: number + perPage: number + totalItems: number + totalPages: number + items: any + } +} + namespace settings { // @ts-ignore import validation = ozzo_validation @@ -18546,6 +18533,86 @@ namespace settings { } } +namespace subscriptions { + /** + * Message defines a client's channel data. + */ + interface Message { + name: string + data: string|Array + } + /** + * 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. + */ + channel(): undefined + /** + * Subscriptions returns a shallow copy of the 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", 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 + } +} + /** * Package slog provides structured logging, * in which log records include a message, @@ -19083,83 +19150,16 @@ namespace slog { import loginternal = internal } -namespace subscriptions { +namespace hook { /** - * Message defines a client's channel data. + * Handler defines a hook handler function. */ - interface Message { - name: string - data: string|Array - } + interface Handler {(e: T): void } /** - * Client is an interface for a generic subscription client. + * wrapped local Hook embedded struct to limit the public API surface. */ - interface Client { - [key:string]: any; - /** - * Id Returns the unique id of the client. - */ - id(): string - /** - * Channel returns the client's communication channel. - */ - channel(): undefined - /** - * Subscriptions returns a shallow copy of the 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", 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 + type _subTlzch = Hook + interface mainHook extends _subTlzch { } } @@ -19183,305 +19183,7 @@ namespace core { } } -/** - * 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 { - /** - * 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 UnreadByte or 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, Peek, Discard, and 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 ReadRune, UnreadRune returns an error. (In this - * regard it is stricter than 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 - * 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 - * ReadBytes('\n') or 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 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 Read method of the underlying Reader. - * If the underlying reader supports the WriteTo method, - * this calls the underlying 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 Flush, will return the error. - * After all data has been written, the client should call the - * 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 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 - } -} - -/** - * Package mail implements parsing of mail messages. - * - * For the most part, this package follows the syntax as specified by RFC 5322 and - * extended by RFC 6532. - * Notable divergences: - * ``` - * - Obsolete address formats are not parsed, including addresses with - * embedded route information. - * - The full range of spacing (the CFWS syntax element) is not supported, - * such as breaking addresses across lines. - * - No unicode normalization is performed. - * - The special characters ()[]:;@\, are allowed to appear unquoted in names. - * - A leading From line is permitted, as in mbox format (RFC 4155). - * ``` - */ -namespace mail { - /** - * Address represents a single mail address. - * An address such as "Barry Gibbs " is represented - * as Address{Name: "Barry Gibbs", Address: "bg@example.com"}. - */ - interface Address { - name: string // Proper name; may be empty. - address: string // user@domain - } - interface Address { - /** - * String formats the address as a valid RFC 5322 address. - * If the address's name contains non-ASCII characters - * the name will be rendered according to RFC 2047. - */ - string(): string - } +namespace subscriptions { } /** @@ -20027,7 +19729,269 @@ namespace slog { } } -namespace subscriptions { +/** + * 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 { + /** + * 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 UnreadByte or 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, Peek, Discard, and 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 ReadRune, UnreadRune returns an error. (In this + * regard it is stricter than 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 + * 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 + * ReadBytes('\n') or 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 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 Read method of the underlying Reader. + * If the underlying reader supports the WriteTo method, + * this calls the underlying 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 Flush, will return the error. + * After all data has been written, the client should call the + * 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 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 + } } /** @@ -20037,6 +20001,42 @@ namespace subscriptions { namespace types { } +/** + * Package mail implements parsing of mail messages. + * + * For the most part, this package follows the syntax as specified by RFC 5322 and + * extended by RFC 6532. + * Notable divergences: + * ``` + * - Obsolete address formats are not parsed, including addresses with + * embedded route information. + * - The full range of spacing (the CFWS syntax element) is not supported, + * such as breaking addresses across lines. + * - No unicode normalization is performed. + * - The special characters ()[]:;@\, are allowed to appear unquoted in names. + * - A leading From line is permitted, as in mbox format (RFC 4155). + * ``` + */ +namespace mail { + /** + * Address represents a single mail address. + * An address such as "Barry Gibbs " is represented + * as Address{Name: "Barry Gibbs", Address: "bg@example.com"}. + */ + interface Address { + name: string // Proper name; may be empty. + address: string // user@domain + } + interface Address { + /** + * String formats the address as a valid RFC 5322 address. + * If the address's name contains non-ASCII characters + * the name will be rendered according to RFC 2047. + */ + string(): string + } +} + namespace search { } diff --git a/tests/data/logs.db b/tests/data/logs.db index 686078760ae224104fb68630f3a252f41b4b65c3..0e530721b71821da513782a52405d7e618a47035 100644 GIT binary patch delta 339 zcmZozz}~QcX@ayMKLY~;ClJGc&_o?$M*fKjGMfbj(zrK2;+9k4;sr`F@|7^~l>h~^ z_~e^889B5$j9ap8ZH+CAGE?)5a?CQzvPyGJ0vtn}Jtn`j(ULIIGqyB0GBMUs%1tfF z$WKwSQi4b(&dZoQ!FIl$rImr9m8q$onXy5Xk%5tku7RPhfw6)CvN#vWV*a-b{BJi4 zDrE6boKPt%#H`JUW+_C~9|rzEP*oj#%*-5|5aE{${4b%xrHW$A#++bRDCj2^Wa<~E qmXu`Xr58g~erMqS4prGK%)uVgdEVaL0=T_>3@M5}zOgvqfIA$pH}A)ROW^Pz-VXvt5&%gZW_M?IXWx(6 z$1O$MCmdjr7L1UJV$mffR$O*Ur8to*VL4Kwaug@A6(x@4SQW8cvK|p-OC^<~ilvxk z=g~d0+dH#2v%A3IaCbl-iJtCndV6~Q`Mdk?zyJRG!gHroO$o;HrL3$48P@}@!9mx7 zV9@1q`N6*@!N1nugCOE=CBSvS6nBdHU7`37{lwq6hP~f)5zi1`_Fp3&^3%R|eR1!1 z1B}zpFpepJDS#<}DS#<}DR3`P!22tMe}8oA)`8cHnjFa}^ChKNQOa5wMcjwZADNvy z5}cboc9l1CcJa_*1>Dlv_f+vq$3Z6MT7d-R)sZ)E5 ztd&xxl~>Pt_{g)f&!3tLj*WHZ%qm(kZxn3JnNYN4nai52RmytF$Ir|iIeO%LuvIcm zlAT4%6)oAUMMu%_#XAchD=FE$rW`MfHQzC4{SieAArkyYb^h>5Nr@{Zr34>k{mHVN zm9kQrO(;3-O0S%NEON8%CoY^lgI;s&)z_Al8Z9ZZrsy=ZJb$9BmExM3RVH?gU)npK z-8&u&jvt#DKRq)Zzr1U5vXfqwLTqK_z;C}Ncm=-Y@j~Y-+R$&3@D2&1`?n4(o>p@) zrQTw>`Q{tVC-arkyc$C{%AO{V9zS#V$i<*z{$M_5WnguiEXbwEeb*}X06+*;J=)sg6*1r!+UzZ@Usrg)az8xKG z@INjX^nW3+~DTX~RmB-AwV4M2P~&lZM^^XkV3*oKYLPmLQbKyEc!!{Tu)F*WcScG;|W=76gGO zX+fH=6be9(8I{Y*yrH9pc{ly<-0oj~`QX&x&}opDCqG+#pa>ba~`MwqxnoF zn?spjntXC#hys~eQW8ayB20P0-lPSVFhF+cOpe=51=G zJT{Z7WHNiklu{{Q0=MUqO0a2{s9)8RQVv#uwk8&oV_7v9gvI1bP328c%cqqb2!jzN zSXQ*q7$~W(MCX9X+t>`S)uTj_qxXy%>KjlzcnOfDX|4y-Nlh!vOiyR>Q8|;$m$ey@ zl*sA%X+2ZZ7;t8+ZMe2)%rHP4n_)?6&zQDQ0M7yC>4ucxN5JY4q#elga)l&m-b5<{ zFcGW?K&p+?2O-^HnJtq+Q1a<~L(OF5X)Z(tCoWRdzThb}SE&cyk?qM_%C=tj>{#r`IF`| zfgPmz)nB7Yn%zrMdr2lp3Nth_!-*l0V=p`5S6_K#cxqt!`orO{mgkc~C7Y^?bt*;0 z+Pnn5nWp9v<+WlDo@UpEJ6bQk-oGzP*?(VvgYIg_)bQfewOa}n#HflKRb)$oM3$22T*fkD zn7VsvCorAUlu{U6l}xN0R%2bhA`@bHN?4ut*7GCw|8~}1nlh5j_iQDaFT1Wef)3I2 zvc?NI!oZj0Cm}~&(AxthGDkwh0voymCYtAyw*D*fky(0AK{RhR` ze{+ambwA!3@DrtSDw&kBb*9QjH5PsH)_B^r-BSW7NNe;FTNPaAO^+h&yLX6R-TfH& z3>U8X!91=iHd3*ino7ir6u)rp?1kn$PH#NrX*i+UTT?+$kjv#7m>HrE)0(TbB{4yu zLX1e#7O@!?321dEW>r1MamPyE?T-bd-zUz1;PI0ncjC^cyJF0e3Kw}U>pSAts?=>C3zQI{;v_A_x{BHUf`elelze%|0VyT z@A<&L^}Z7*_-6f|^;7=$126kj-zMLifxjdkAU+lN)4<;amVEz(*bz7eGz6OW2JsEQ z$NNp+PrYC9z2-mS{S0x%x7YurfS>r0|H;5M;-lUL-=n_o__Mw*5TgGR#3|oTM`V9C z@Jisf{h#$c?|o$PbCv^HBJ>v*;n*@R3Zy@_QuI# zjuR`=%MgP)U)%kpwPQNN^@ z2UMOyS!0AuW1$pJU4&SS&nCEZsz}LkO{^DQgjhYvm+L|{B}cQ8#wag9jIJ_CRiJn# zlg%V+`R5^)D=0uoE9O$UN+q6)&Ot1xCeoU!r0cONUo56CK#VJ7vSK4%NhPXUR+i60 zES^@BBqK%DTs0c4Ri1;Gq!rb;M#U11SRqPE=OC7DRB~xajMllF%*CX$5G#t2IG3yB z3al)Zvbi%5%ZRmNBcG^8)jG{b(x)M&MN8FWya?1iv|MNFry!P$3AuD3$0nn>ax@-4 z2{E2+Xp&SAsdxocJaPhJ3?s>fN|dFlWK}Ijk3*~&sR+qJr9gsptX!dVOfRpJVr#%3 z0$*LoS2*P;#Hu;9L}_x2;#gp-Bu92iN`g?$HpNLm0X)V3L#YJ9!52{ot2^ycO z<;pZyRrL3eN}5oQ#Ipr89%(3){vOo^OKUMX8Bv8Ao2%*XQOqQ>5sBm?xk52Qm-Y7$ zDvX>@RMYiJBOQxXo`vtm@zr7)Ff+@hq*N_&1Y%N_Ei6Z(N4@au8y4B0`g?6q~8XH9lLKg;<@Tl&r*RY_ZJb7SabG z7FW1Lv78|VF;O5hiTx0(2|_f^QrUb&VYo`^8HlB5HbJIS3t5G1@bO3(V#z|Bl?6sF zREx!8PJJ3;nwrk$;vD#T`GU;G_d!f7C8>BhRchpTB}=AeAeJksDMiZEY8<0R)ddM+ zOj;1qBrB4oY?i60BE)K?5-pS))p#u~Hn^eyF}4WS73*a|1RRt|7kP*^v{YVRNXhv) zXg73{gP54EXCpa{1)YIP2^kh*#d>xjk&k3+88Thr8w|uqEz4&FGFFp|LL*hDAx6`c z2AyPUBwveYnJT51R~IvUAxCjygCV6F39*i)*GD1Nv4r*r=y4zFSapHf;uR@hi75$f zVS%qOv1y1&iE2Y)k`=X(A&Vjzf|yWD=h#9?NUBV(!I$?!OessTT7s@sgfb^((|aJs zDA8O|tf@*emX^xm6vSw$rZEg1p{p@TC{%VsjLRhyk(H4$sh4NfaXz7ARwdZu5bMy$ zJO=ImrNFlby085cpC>*?{1(_B@G0U~iMNQ45w8+eqDW+j1Q8)#AubXZh%>}-;xMtF zm?1cVB&LX+#5UpyVwCs*;U|WPp}_wQydU`Mz+VM^7;B2ytw}GW#jUa zak*?GcIS1%NgTx+PIv8mw}I;G%hC$ z@VId~W?YUMmuHR35qKH+_+cY;$haIdF0;nH1IA^)0X}0~!p7xkTnhhcCC1_xm<3xfkN*bjqe zU=W7E(=gZvgBch|Fc4uNz<`GV2Ll!c3=C)(P@9GZ28JKi!$%-Mx?ngBgAfe%!T`7u z7#^5{!EP8#!e9ahyI`;r2IDZ;0fX%@7=yt!7zAOk6$Vei;7J%f0fWb3@Yo<=&!ORq zkVzl)Cr7?Dd~x#=Lmzd0H1ID1$9%s}4Ez7Y|H$yG#LxSG#q-Ya?-Bnl@M+Kc#5e9F zPa9=j8*;zl89;VAX7jghTL?@Bq5YWum6c2!xNXhMXXV^NC{@nq=JSyh*sBndLy=%O zIHp0@ygQq=a4=&&r_AT_^S}{9RE{ZomP5K1Sg=zdhVGg3!sm4Uz5}xspx zu?Hn!mX^`$?mb3bL(3}`+C8Jxqe`iuO#sW5N#~5H0zH1wtW}p>9dFiu&VH(3ri??$ zh(v&1y|TdKI`V`X?#0@Qcn}#SqnhZCabz@Py1e(=2i$M$TG6vt#Q%Wz9jlC+gKY!a zNX^0J+VTe$Mi10U^y*>3sQ$rg1MW9AtzDni9Mj<* zKiq|F_%7_WM)XsF4GG-w;f@c;=MFtuYc_DFI=&#%szxo3oU+$H(H2DK|&-#z~2A=1pZgx2Z3(|z8?5$;LCyE4g7ZCHv(@5ZU(LeUJVoj31HEGA#gmf zKfnd10^7hkzCSSJf8YOC{`dTU=Kq@i5By&u9wfF9KlA;8?+d=q`9AHt>09)beTwfz z-*MkQ-(KHV--Es(?@zsd;eFTpRqvO)|J?f-@5jB@yfv@teaX-k;1E*)Qvg!{Qvg!{ zQvg!{Qvg$7-BG|lv~>V^Z;~ykE0)x}CG{ao>J>}sWlQQMOX{*Eb;**tXi2?jNxfi6 zJ#R_PSyC4)sq>c9bC%ROOX{p8b;go9ZAqQ7q)u8=CoHMsmeesz>Zm34tR;2Ck~(Zj z9kQejT2ix?)B#Isza{mIB^9=$p0=d+SyD5Wlw?VXmXy#+d4@&@^iApKQ0y#BM^NlAiXB3+gD5tOVh2!cKZ-qrVqp|}8pZaZ*bItE zC?=wqfMPs~aVW;37=vOoicu&=!kF%H;87HVyBs_^by2oy6bqr)UKHDdVpAx#8^tD3 zYy!o0q1a9o8%MDnD7GEN#!zeFcf4zwCfta=allVI;HMn$lMeU^2mH7Le#`+s+QgB!U(w*h*86tit@rK3TkqS6x8AoCZ@q6P z-g@6oy!F1Fc9f6Nc~WXS!GUH;E{PlHPUBnj{j!ViLfzUDueZryvJdCv{@=BL4G z|JlH7fC0PtM*|+Pm;c9LAOF|DZvA)s|HS{c|Cjx*`SUGAc$ciuJ_-;QP1jqL}4EJV#0FI&d1_eb=1TGx%*djYoEe`UWSxX^hk4IP>f{ za~MWw8g8Ydz}4bje)%@Far)455E+P??l$?ViRh-0?TvZ%XlF5IdrI&N^bTM%gEprYn8yPY}&CQ8x_$AxIddg_oFU%EuWLkAMqpAUyS{H?8IsB+j}ppc3qZ%``y3m8g{+m8vO6BHv$)Y z|9Rva!`kME`_H{hu*oobQOw|C?U_p9-Dx*Krgl z!twckW}&zH>4x2eUdxPBjjdCe19Z;%IbHbtzpj0B&$Fg(muGH6m18g#KL1ZKIgHC!!oJ)6 zpv&_QhetQ>01^C$DS#<(|59M-fk~)mp1Sr6;c&;nDtAQB-11!6^|*E}B#08va%+B& z^7O4Nqgod!HpYAnEHMC6IVr^P)^nB3_|?J$WC_nTV1dzbu8ti`+>x`i`4A;CoW!m< z2i$u{X`@d|^A@qdj9+!{Y8|EBacUC!;w{xwmlYu@B#;!xt-;O>3n zCW}UFxpfjS@L3KbQySAM%lDW&zYSH==VtKkIEmg-l6whqjKERw&y> zGFj5+`M}_ZXRNZF8Q1OqU4qO14>o@jT>AaHv3(j2OtqVr!r_i%A6I)|vVID~2&!$U zf?fC9Ir~TL!0||cWo@$GoTm2J{U_b)fWB%k$I|wGEW3*9fv4AeCUHx1$=g`R zK_u+3inFy{a%?B2;j3+4i$1dHE*{+Q;C7Ls_61L=xk^1)7x{Ufoea(v3K``^C2~^L zra5Ny7KFg`3E1NTBevy=3xwa`LtvD8!*eqm4tE?xe0N7F#{)ndn;|+)#-V;)$|^y=lA*$^2mgJYNBiUCR!i6=?w zJ{zw(nuxxc#58i@jU=FDnog2JZMnxZ2>uF5UXIfnIGtT40p3dPeygKDq<4L+&C9VO zD4Ws5I`XY&y&uDdc$QhNer@7QiM>$cUb_x7?m{u0V+$oAsWQ0+UtY<;<*<>Yqv^HJ zK|==aUHU7E4UxRaOB<}evaZ!w8L5LFj$IKV&wA%HJ4HX_G=Pt|{#2^`C{H5xDE{biTm5GZ*O|Z9RnWtH;ueC%xwD8sHWy~WjLW( zyCc&M3>|Qd_dGJN=3XqW=m?^|+YCiBEm=v89ba%SR_@Mo$H0Tf+D|^Vc3Mw26Jsr9$)DCV#2SlQlKkIT0?7-*tfuk{z1h9N^@v3`qVb$3JoZs2nnr~_iXVgML~y)72n1qBf!i{bYn_bOS`k9Rtz)ibf_A?-Q4@2R zaUvZ ztM|zE;uPwl*}MKka_t7fXV&h~`_}H!Gi&!~aqS+>uic~fE_&P_d3ZINu}L4$^_*jZLmbq2nW9#ecKwdxM*PQa)I=(-rm*s<6hakxQKA({u?)z-*agUO4*z2|YG_0361vh7wNz9ermx|R8GxG2fl z7^76m@wA#Puy)^kx_i4q1I-=oR+tbe(G0x~9P@O4f9p_mKlLl5WIuF4eCdIpA7E&<2s&vgvNqLb-`_SVY^SoyF)s zYL|nm46K?#0VoNxS>^@!FfTxnKK6tn3hHL!9eXPQg^dn0gt8f?;vMRaILs)~Tv4p4N-~y~%Hm2!G$brp31@1BU571XW7wr56GE&& zv((zpR)dWmME?ctN6L)^Qy+^DPQ=V!g^V{I-S(o6dV zQML^ygK84*w>PSc-v#hfxqfK;=r*IkAQc}Ngzee01vn%*Es^V@ulZkFm8c^mCu5MmDBZX zB&V@rv8Yml?P6<>IW1avbC~CM`m06L)GmTI#Q?>mC@>pLGudrI-#)Y3mqO6N;hEqxdzp?2)@~!((YMF|;IeIb1{NG)5`G0lux4;Ge zVG3XhU<#}<1(xC>oO9K#17k-fEeL6n70FUI%T&~r$i@zHE=PqRnr3vFde ziYs9>tdzED$Q%|LyGY4Bet`rx+ci!k-?hc>F6DK|-AKaj^^@*(KoX%YINDYdWif$h9N)3S2Z>~DA3Yy`{;o3>f4_J=sxaedRaMcqnnQ>*Iz zv)=VVP3NARmNmyGmb2^zLE{#{m*PAUkl3P@%-73;SXGOO^oqu<)ew-_5X+Ggvkta| z+{zl-{UjifeCPbXx%vTc!~frVF2nO5@B;YWP|COD3wS^29UJ-ckzX5mVdMjzzw>nrhu6OOYwb3y{)O~Y%b1KQf$5;v+cH1s?^BwN|sEmH%0>%3ycUh z*scRNk9Z+v>@~A*z7|K39Bs2=M}h4n^yM3@WLTQ0;c%{`rW7ett8t7PRToymY1q;P zTbd}DIMAZ&2a-D2tRPMLty!8#AzA!i-g8XUCPAvx?RMImgQ~RHU` z|Ht!xRbMy98%>nb@xs^)IMy5NQU(7}_G;^H3na$+f6e7N2G;*;<~cu(V+vpjU<#}X z1(uXqs8Fmx2LN;;LX)W!o2kb&KD+7)MbjblXoq{3-MBzX;z^O;XsaZBD-^-<|F&_) z;Kcx z{{MTf>7KIw4f-$~<~H2~R&G+3Ei6#A-=)wGc{O_0g#G))G6gFOf(qb>0GBRL+?8kAfY_*nDl%-L_0)!$?>*LVWKilGu>V)UbR1toIYFt;?}Qlx^e5Mqq(Nw3+|I1rmTm z|9=k+e$X}e!7V@M{x$zqf5`XlJ?H=jjXl-v$0{A$p&s^#P|`s? zn`5pHX{47BVl$HU`bqaXpf2iT6g5C`-1lv%zF#19;Q7- z1E0Q~!1Fb5T$F7qSz*67y=&;gz`3&*=7Q65L7kRkSv6OlmMdCvZ%qY3K`xhT`BLn$ zhli%yy<=I?G&Pqf@3KX=+MCzLRSHr0Vs^mdlh zYGE#~$r*r`^Cc}jm6Nl|#2qMO><*Oi#2qN((TaO9YfF#ms>o4Awj@YoDVfe?rb|i` ze3)f)>c@to<&(Fi0@=PMPu;dAPknOEy*RZZ3L{Nyi+pNq$7&QBT#Z7XT6)#}`hxxY zuiExjL(pjn+0(rEK*k&%Wb%t#!3P$xvt!CrbhCt6MX#?%QYL=WA3 zB^;(om6D+Gsamc~b5&)nb&UAf#Fm#`v-k=H1vJE3)NMp(Cqb&IX3!3LI`xsb$CHYy(jUwZjC6o-n}p95QAOPWxR#Ipr8 z9%(4lN=B=`#UVH(^`lq>4zWpatjK*J4Wa%Ak!3v#LkwUe#!jPX;7hS%ki9C`fiP5U zu(TGFlMz*@vANn^VJ~A<6;ZN_xD9rZFtkW*Fg4O`YOVo~Aq5d4&bnqZCd83;y_kU; z>;EB_=j`V1yF&I8zczYrBnds;Oi9rRvU%iYpfx0TTSs+BEMUPpDY&180&(zvTmyx;2Rb8FPH9P49k zUA?nyEG;)p&TzDT2%GiLwl=;LKMjQ`-41|TP-7WMtV=mIUyQJKN0{p04uA)407**1 z=hv)5H-JrsVmqbwHhv>?3JOS@Zi4eBvpnC3)Z)o_HP=W|nUyeFKPKd;jq8nfxh;yW zK6lj2AX8qOE)m^pb~JV-y>=Mt#M(DoC7{ZJ{uG<}uDY3Tm)RQwrf*=a1bYD_4J&~5 zl8R$nY3|&IqJT|nG2Lx)dlTu5bbe9rQHobG*-627(=lMTeTjOo!|4kgu{|7gJ z-Q|A^1o#hA08;={08;={U?WrD#>_c53-jJAgSC^KTB0;LMsjtTrq=j0w$_GAyj=}% zR|EU{f!wInmFS$BRmNsmHbjvu$K2Q6*qYWP&ti-0F4MPur$BHX*Lwzpb=7zCBoU}8 z1PxsxJM2o@_)_{T)KxEBPlUsXoEVK3N|^)~NzqkiB`U-|?Mm7s6k6TxqCBF>5KDr! awR_yS#GyMv6k50Q|0Y-QojWAk`2PpKPT61p diff --git a/tools/cron/cron_test.go b/tools/cron/cron_test.go index b802067f..13566184 100644 --- a/tools/cron/cron_test.go +++ b/tools/cron/cron_test.go @@ -7,6 +7,8 @@ import ( ) func TestCronNew(t *testing.T) { + t.Parallel() + c := New() expectedInterval := 1 * time.Minute @@ -29,6 +31,8 @@ func TestCronNew(t *testing.T) { } func TestCronSetInterval(t *testing.T) { + t.Parallel() + c := New() interval := 2 * time.Minute @@ -41,6 +45,8 @@ func TestCronSetInterval(t *testing.T) { } func TestCronSetTimezone(t *testing.T) { + t.Parallel() + c := New() timezone, _ := time.LoadLocation("Asia/Tokyo") @@ -53,6 +59,8 @@ func TestCronSetTimezone(t *testing.T) { } func TestCronAddAndRemove(t *testing.T) { + t.Parallel() + c := New() if err := c.Add("test0", "* * * * *", nil); err == nil { @@ -126,6 +134,8 @@ func TestCronAddAndRemove(t *testing.T) { } func TestCronMustAdd(t *testing.T) { + t.Parallel() + c := New() defer func() { @@ -144,6 +154,8 @@ func TestCronMustAdd(t *testing.T) { } func TestCronRemoveAll(t *testing.T) { + t.Parallel() + c := New() if err := c.Add("test1", "* * * * *", func() {}); err != nil { @@ -170,6 +182,8 @@ func TestCronRemoveAll(t *testing.T) { } func TestCronTotal(t *testing.T) { + t.Parallel() + c := New() if v := c.Total(); v != 0 { @@ -195,6 +209,8 @@ func TestCronTotal(t *testing.T) { } func TestCronStartStop(t *testing.T) { + t.Parallel() + c := New() c.SetInterval(1 * time.Second) diff --git a/tools/cron/schedule_test.go b/tools/cron/schedule_test.go index a3a47086..1901968e 100644 --- a/tools/cron/schedule_test.go +++ b/tools/cron/schedule_test.go @@ -9,6 +9,8 @@ import ( ) func TestNewMoment(t *testing.T) { + t.Parallel() + date, err := time.Parse("2006-01-02 15:04", "2023-05-09 15:20") if err != nil { t.Fatal(err) @@ -38,6 +40,8 @@ func TestNewMoment(t *testing.T) { } func TestNewSchedule(t *testing.T) { + t.Parallel() + scenarios := []struct { cronExpr string expectError bool @@ -272,6 +276,8 @@ func TestNewSchedule(t *testing.T) { } func TestScheduleIsDue(t *testing.T) { + t.Parallel() + scenarios := []struct { cronExpr string moment *cron.Moment