@budibase/client 3.12.14 → 3.12.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -438,7 +438,7 @@ Please report this to https://github.com/markedjs/marked.`,p){const w="<p>An err
438
438
  </g>
439
439
  </g>
440
440
  </svg>
441
- `;var HTTPMethod=(v=>(v.POST="POST",v.PATCH="PATCH",v.GET="GET",v.PUT="PUT",v.DELETE="DELETE",v))(HTTPMethod||{});const BannedSearchTypes=[FieldType.LINK,FieldType.ATTACHMENT_SINGLE,FieldType.ATTACHMENTS,FieldType.FORMULA,FieldType.JSON,FieldType.ATTACHMENT_SINGLE,FieldType.SIGNATURE_SINGLE,"jsonarray","queryarray"],Cookies={Auth:"budibase:auth",CurrentApp:"budibase:currentapp",ReturnUrl:"budibase:returnurl",AccountReturnUrl:"budibase:account:returnurl",OnboardingProcessCorrelationKey:BpmCorrelationKey.ONBOARDING};var TableNames=(v=>(v.USERS="ta_users",v))(TableNames||{});const BudibaseRoles={AppUser:"appUser",Developer:"developer",Creator:"creator",Admin:"admin",Owner:"owner"},BudibaseRoleOptionsOld=[{label:"Developer",value:BudibaseRoles.Developer,sortOrder:2}],BudibaseRoleOptions=[{label:"Tenant admin",value:BudibaseRoles.Admin,subtitle:"Has full access to all workspaces in your tenant",sortOrder:1},{label:"Creator",value:BudibaseRoles.Creator,subtitle:"Can create and edit apps they have access to",sortOrder:2},{label:"App user",value:BudibaseRoles.AppUser,subtitle:"Can only use published apps they have access to",sortOrder:3}],ExtendedBudibaseRoleOptions=[{label:"Account holder",value:BudibaseRoles.Owner,sortOrder:0},...BudibaseRoleOptions,...BudibaseRoleOptionsOld],PlanType={FREE:"free",TEAM:"team",PRO:"pro",BUSINESS:"business",PREMIUM:"premium",PREMIUM_PLUS:"premium_plus",ENTERPRISE:"enterprise",ENTERPRISE_BASIC_TRIAL:"enterprise_basic_trial"},ApiVersion="1",Roles={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC",BUILDER:"BUILDER",CREATOR:"CREATOR",GROUP:"GROUP"},EventPublishType={ENV_VAR_UPGRADE_PANEL_OPENED:"environment_variable_upgrade_panel_opened"},TypeIconMap={[FieldType.STRING]:"Text",[FieldType.OPTIONS]:"Dropdown",[FieldType.DATETIME]:"Calendar",[FieldType.BARCODEQR]:"Camera",[FieldType.SIGNATURE_SINGLE]:"AnnotatePen",[FieldType.LONGFORM]:"TextAlignLeft",[FieldType.ARRAY]:"Duplicate",[FieldType.NUMBER]:"123",[FieldType.BOOLEAN]:"Boolean",[FieldType.ATTACHMENTS]:"DocumentFragmentGroup",[FieldType.ATTACHMENT_SINGLE]:"DocumentFragment",[FieldType.LINK]:"DataCorrelated",[FieldType.FORMULA]:"Calculator",[FieldType.AI]:"MagicWand",[FieldType.JSON]:"Brackets",[FieldType.BIGINT]:"TagBold",[FieldType.AUTO]:"Shapes",[FieldType.BB_REFERENCE]:{[BBReferenceFieldSubType.USER]:"UserGroup",[BBReferenceFieldSubType.USERS]:"UserGroup"},[FieldType.BB_REFERENCE_SINGLE]:{[BBReferenceFieldSubType.USER]:"User"}},OptionColours=[...new Array(12).keys()].map(v=>`hsla(${(v+1)*222%360}, 90%, 75%, 0.3)`),FilterOperator={ANY:"any",ALL:"all"},OnEmptyFilter={RETURN_ALL:"all",RETURN_NONE:"none"},FilterValueType={BINDING:"Binding",VALUE:"Value"},FieldPermissions={WRITABLE:"writable",READONLY:"readonly",HIDDEN:"hidden"},APP_NAME_REGEX=/^[\w\s]+$/,APP_URL_REGEX=/^[0-9a-zA-Z-_]+$/,Constants$2=Object.freeze(Object.defineProperty({__proto__:null,APP_NAME_REGEX,APP_URL_REGEX,ApiVersion,BannedSearchTypes,BudibaseRoleOptions,BudibaseRoleOptionsOld,BudibaseRoles,ContextScopes:ComponentContextScopes,Cookies,DEFAULT_BB_DATASOURCE_ID,EventPublishType,ExtendedBudibaseRoleOptions,Features:Feature,FieldPermissions,FilterOperator,FilterValueType,OnEmptyFilter,OperatorOptions,OptionColours,PlanType,Roles,SqlNumberTypeRangeMap,TableNames,TypeIconMap},Symbol.toStringTag,{value:"Module"})),buildAnalyticsEndpoints=v=>({getAnalyticsStatus:async()=>await v.get({url:"/api/bbtel"}),analyticsPing:async p=>await v.post({url:"/api/bbtel/ping",body:{...p,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}})}),buildAIEndpoints=v=>({generateCronExpression:async p=>await v.post({url:"/api/ai/cron",body:{prompt:p}}),generateJs:async p=>await v.post({url:"/api/ai/js",body:p}),generateTables:async p=>await v.post({url:"/api/ai/tables",body:p})}),buildAppEndpoints=v=>({fetchAppPackage:async p=>await v.get({url:`/api/applications/${p}/appPackage`}),saveAppMetadata:async(p,m)=>await v.put({url:`/api/applications/${p}`,body:m}),publishAppChanges:async(p,m)=>await v.post({url:`/api/applications/${p}/publish`,body:m}),revertAppChanges:async p=>await v.post({url:`/api/dev/${p}/revert`}),updateAppClientVersion:async p=>await v.post({url:`/api/applications/${p}/client/update`}),revertAppClientVersion:async p=>await v.post({url:`/api/applications/${p}/client/revert`}),getAppDeployments:async()=>await v.get({url:"/api/deployments"}),createApp:async p=>p instanceof FormData?await v.post({url:"/api/applications",body:p,json:!1}):await v.post({url:"/api/applications",body:p}),duplicateApp:async(p,m)=>await v.post({url:`/api/applications/${p}/duplicate`,body:m}),updateAppFromExport:async(p,m)=>{const y=getDevAppID(p);return await v.post({url:`/api/applications/${y}/import`,body:m,json:!1})},importApps:async p=>await v.post({url:"/api/cloud/import",body:p,json:!1}),unpublishApp:async p=>await v.post({url:`/api/applications/${p}/unpublish`}),deleteApp:async p=>await v.delete({url:`/api/applications/${p}`}),releaseAppLock:async p=>await v.delete({url:`/api/dev/${p}/lock`}),fetchSystemDebugInfo:async()=>await v.get({url:"/api/debug/diagnostics"}),syncApp:async p=>await v.post({url:`/api/applications/${p}/sync`}),getApps:async()=>await v.get({url:"/api/applications?status=all"}),fetchComponentLibDefinitions:async p=>await v.get({url:`/api/${p}/components/definitions`}),addSampleData:async p=>await v.post({url:`/api/applications/${p}/sample`})}),buildAttachmentEndpoints=v=>{const p={getSignedDatasourceURL:async(m,y,w)=>await v.post({url:`/api/attachments/${m}/url`,body:{bucket:y,key:w}})};return{...p,uploadAttachment:async(m,y)=>await v.post({url:`/api/attachments/${m}/upload`,body:y,json:!1}),uploadBuilderAttachment:async m=>await v.post({url:"/api/attachments/process",body:m,json:!1}),uploadPWAZip:async m=>await v.post({url:"/api/pwa/process-zip",body:m,json:!1}),externalUpload:async(m,y,w,S)=>{const{signedUrl:k,publicUrl:M}=await p.getSignedDatasourceURL(m,y,w);return k?(await v.put({url:k,body:S,json:!1,external:!0,parseResponse:O=>O}),{publicUrl:M}):{publicUrl:void 0}},downloadAttachment:async(m,y,w)=>await v.get({url:`/api/${m}/rows/${y}/attachment/${w}`,parseResponse:S=>S,suppressErrors:!0})}},buildAuthEndpoints=v=>({logIn:async(p,m,y)=>await v.post({url:`/api/global/auth/${p}/login`,body:{username:m,password:y},parseResponse:async w=>{const S=await w.json(),k=w.headers.get("X-Session-Invalidated-Count");return{...S,invalidatedSessionCount:k?parseInt(k):0}}}),logOut:async()=>await v.post({url:"/api/global/auth/logout"}),setInitInfo:async p=>await v.post({url:"/api/global/auth/init",body:p}),getInitInfo:async()=>await v.get({url:"/api/global/auth/init"}),requestForgotPassword:async(p,m)=>await v.post({url:`/api/global/auth/${p}/reset`,body:{email:m}}),resetPassword:async(p,m,y)=>await v.post({url:`/api/global/auth/${p}/reset/update`,body:{password:m,resetCode:y}})}),buildAutomationEndpoints=v=>({triggerAutomation:async(p,m,y)=>await v.post({url:`/api/automations/${p}/trigger`,body:{fields:m,timeout:y}}),testAutomation:async(p,m)=>await v.post({url:`/api/automations/${p}/test`,body:m}),getAutomations:async()=>await v.get({url:"/api/automations"}),getAutomationDefinitions:async()=>await v.get({url:"/api/automations/definitions/list"}),createAutomation:async p=>await v.post({url:"/api/automations",body:p}),updateAutomation:async p=>await v.put({url:"/api/automations",body:p}),deleteAutomation:async(p,m)=>await v.delete({url:`/api/automations/${p}/${m}`}),getAutomationLogs:async p=>await v.post({url:"/api/automations/logs/search",body:p}),clearAutomationLogErrors:async(p,m)=>await v.delete({url:"/api/automations/logs",body:{appId:m,automationId:p}})}),buildConfigEndpoints=v=>({saveConfig:async p=>await v.post({url:"/api/global/configs",body:p}),getConfig:async p=>await v.get({url:`/api/global/configs/${p}`}),deleteConfig:async(p,m)=>await v.delete({url:`/api/global/configs/${p}/${m}`}),getTenantConfig:async p=>await v.get({url:`/api/global/configs/public?tenantId=${p}`}),getOIDCConfigs:async p=>await v.get({url:`/api/global/configs/public/oidc?tenantId=${p}`}),getChecklist:async p=>await v.get({url:`/api/global/configs/checklist?tenantId=${p}`}),uploadLogo:async p=>await v.post({url:"/api/global/configs/upload/settings/logoUrl",body:p,json:!1}),uploadFavicon:async p=>await v.post({url:"/api/global/configs/upload/settings/faviconUrl",body:p,json:!1}),uploadOIDCLogo:async(p,m)=>await v.post({url:`/api/global/configs/upload/logos_oidc/${p}`,body:m,json:!1}),getOIDCLogos:async()=>await v.get({url:"/api/global/configs/logos_oidc"})}),buildDatasourceEndpoints=v=>({getDatasources:async()=>await v.get({url:"/api/datasources"}),buildDatasourceSchema:async(p,m)=>await v.post({url:`/api/datasources/${p}/schema`,body:{tablesFilter:m}}),createDatasource:async p=>await v.post({url:"/api/datasources",body:p}),updateDatasource:async p=>await v.put({url:`/api/datasources/${p._id}`,body:p}),deleteDatasource:async(p,m)=>await v.delete({url:`/api/datasources/${p}/${m}`}),validateDatasource:async p=>await v.post({url:"/api/datasources/verify",body:{datasource:p}}),fetchInfoForDatasource:async p=>await v.post({url:"/api/datasources/info",body:{datasource:p}}),fetchExternalSchema:async p=>await v.get({url:`/api/datasources/${p}/schema/external`})}),buildFlagEndpoints=v=>({getFlags:async()=>await v.get({url:"/api/users/flags"}),updateFlag:async(p,m)=>await v.post({url:"/api/users/flags",body:{flag:p,value:m}}),toggleUiFeature:async p=>await v.post({url:`/api/beta/${p}`})}),buildLayoutEndpoints=v=>({saveLayout:async p=>await v.post({url:"/api/layouts",body:p}),deleteLayout:async(p,m)=>await v.delete({url:`/api/layouts/${p}/${m}`})}),buildOtherEndpoints=v=>({getEnvironment:async()=>await v.get({url:"/api/system/environment"}),getSystemStatus:async()=>await v.get({url:"/api/system/status"}),getIntegrations:async()=>await v.get({url:"/api/integrations"}),getBudibaseVersion:async()=>(await v.get({url:"/api/dev/version"})).version,getBasePermissions:async()=>await v.get({url:"/api/permission/builtin"})}),buildPermissionsEndpoints=v=>({getPermissionForResource:async p=>await v.get({url:`/api/permission/${p}`}),updatePermissionForResource:async(p,m,y)=>await v.post({url:`/api/permission/${m}/${p}/${y}`}),removePermissionFromResource:async(p,m,y)=>await v.delete({url:`/api/permission/${m}/${p}/${y}`}),getDependants:async p=>await v.get({url:`/api/permission/${p}/dependants`})}),buildQueryEndpoints=v=>({executeQuery:async(p,{pagination:m,parameters:y}={})=>await v.post({url:`/api/v2/queries/${p}`,body:{parameters:y,pagination:m}}),fetchQueryDefinition:async p=>await v.get({url:`/api/queries/${p}`,cache:!0}),getQueries:async()=>await v.get({url:"/api/queries"}),saveQuery:async p=>await v.post({url:"/api/queries",body:p}),deleteQuery:async(p,m)=>await v.delete({url:`/api/queries/${p}/${m}`}),importQueries:async p=>await v.post({url:"/api/queries/import",body:p}),previewQuery:async p=>await v.post({url:"/api/queries/preview",body:p})}),buildRelationshipEndpoints=v=>({fetchRelationshipData:async(p,m,y)=>{const w=await v.get({url:`/api/${p}/${m}/enrich?field=${y}`});return y?w[y]||[]:[w]}}),buildRoleEndpoints=v=>({deleteRole:async(p,m)=>await v.delete({url:`/api/roles/${p}/${m}`}),saveRole:async p=>await v.post({url:"/api/roles",body:p}),getRoles:async()=>await v.get({url:"/api/roles"}),getRolesForApp:async p=>await v.get({url:`/api/global/roles/${p}`}),getAccessibleRoles:async()=>await v.get({url:"/api/roles/accessible"})}),buildRouteEndpoints=v=>({fetchClientAppRoutes:async()=>await v.get({url:"/api/routing/client"}),fetchAppRoutes:async()=>await v.get({url:"/api/routing"})}),buildRowEndpoints=v=>({fetchRow:async(p,m)=>await v.get({url:`/api/${p}/rows/${m}`}),saveRow:async(p,m=!1)=>{const y=p._viewId||p.tableId;return await v.post({url:`/api/${y}/rows`,body:p,suppressErrors:m})},patchRow:async(p,m=!1)=>{const y=p._viewId||p.tableId;return await v.patch({url:`/api/${y}/rows`,body:p,suppressErrors:m})},deleteRow:async(p,m)=>await v.delete({url:`/api/${p}/rows`,body:{_id:m}}),deleteRows:async(p,m)=>(m.forEach(y=>{typeof y=="object"&&(y==null||delete y._viewId)}),await v.delete({url:`/api/${p}/rows`,body:{rows:m}})),exportRows:async(p,m,y)=>await v.post({url:`/api/${p}/rows/exportRows?format=${m}`,body:y,parseResponse:async w=>await w.text()})}),buildScreenEndpoints=v=>({saveScreen:async p=>await v.post({url:"/api/screens",body:p}),deleteScreen:async(p,m)=>await v.delete({url:`/api/screens/${p}/${m}`}),usageInScreens:async p=>await v.post({url:`/api/screens/usage/${p}`})}),buildTableEndpoints=v=>({fetchTableDefinition:async p=>await v.get({url:`/api/tables/${p}`,cache:!0}),fetchTableData:async p=>await v.get({url:`/api/${p}/rows`}),searchTable:async(p,m)=>await v.post({url:`/api/${p}/search`,body:m}),importTableData:async(p,m,y)=>await v.post({url:`/api/tables/${p}/import`,body:{rows:m,identifierFields:y}}),csvToJson:async p=>await v.post({url:"/api/convert/csvToJson",body:{csvString:p}}),getTables:async()=>await v.get({url:"/api/tables"}),getTable:async p=>await v.get({url:`/api/tables/${p}`}),saveTable:async p=>await v.post({url:"/api/tables",body:p}),deleteTable:async(p,m)=>await v.delete({url:`/api/tables/${p}/${m}`}),validateNewTableImport:async(p,m)=>await v.post({url:"/api/tables/validateNewTableImport",body:{rows:p,schema:m}}),validateExistingTableImport:async(p,m)=>await v.post({url:"/api/tables/validateExistingTableImport",body:{rows:p,tableId:m}}),migrateColumn:async(p,m,y)=>await v.post({url:`/api/tables/${p}/migrate`,body:{oldColumn:m,newColumn:y}})}),buildTemplateEndpoints=v=>({getEmailTemplateDefinitions:async()=>await v.get({url:"/api/global/template/definitions"}),getEmailTemplates:async()=>await v.get({url:"/api/global/template/email"}),saveEmailTemplate:async p=>await v.post({url:"/api/global/template",body:p}),getAppTemplates:async()=>await v.get({url:"/api/templates"})}),buildUserEndpoints=v=>({getUsers:async()=>await v.get({url:"/api/global/users"}),searchUsers:async p=>await v.post({url:"/api/global/users/search",body:p}),getUser:async p=>await v.get({url:`/api/global/users/${p}`}),updateOwnMetadata:async p=>await v.post({url:"/api/users/metadata/self",body:p}),createAdminUser:async p=>await v.post({url:"/api/global/users/init",body:p}),saveUser:async p=>await v.post({url:"/api/global/users",body:p}),createUsers:async(p,m)=>(await v.post({url:"/api/global/users/bulk",body:{create:{users:p,groups:m}}})).created,deleteUser:async p=>await v.delete({url:`/api/global/users/${p}`}),deleteUsers:async p=>(await v.post({url:"/api/global/users/bulk",body:{delete:{users:p}}})).deleted,onboardUsers:async p=>await v.post({url:"/api/global/users/onboard",body:p}),updateUserInvite:async(p,m)=>await v.post({url:`/api/global/users/invite/update/${p}`,body:m}),getUserInvite:async p=>await v.get({url:`/api/global/users/invite/${p}`}),getUserInvites:async()=>await v.get({url:"/api/global/users/invites"}),inviteUsers:async p=>await v.post({url:"/api/global/users/multi/invite",body:p}),removeUserInvites:async p=>await v.post({url:"/api/global/users/multi/invite/delete",body:p}),acceptInvite:async p=>await v.post({url:"/api/global/users/invite/accept",body:p}),getUserCountByApp:async p=>(await v.get({url:`/api/global/users/count/${p}`})).userCount,addAppBuilder:async(p,m)=>await v.post({url:`/api/global/users/${p}/app/${m}/builder`}),removeAppBuilder:async(p,m)=>await v.delete({url:`/api/global/users/${p}/app/${m}/builder`}),getAccountHolder:async()=>await v.get({url:"/api/global/users/accountholder"})}),buildSelfEndpoints=v=>({generateAPIKey:async()=>{const p=await v.post({url:"/api/global/self/api_key"});return p==null?void 0:p.apiKey},fetchDeveloperInfo:async()=>v.get({url:"/api/global/self/api_key"}),fetchSelf:async()=>await v.get({url:"/api/self"}),fetchBuilderSelf:async()=>await v.get({url:"/api/global/self"}),updateSelf:async p=>await v.post({url:"/api/global/self",body:p})}),buildViewEndpoints=v=>({fetchViewData:async(p,{field:m,groupBy:y,calculation:w})=>{const S=new URLSearchParams;w&&(m&&S.set("field",m),S.set("calculation",w)),y&&S.set("group",y);const k=m?`/api/views/${encodeURIComponent(p)}?${S}`:`/api/views/${encodeURIComponent(p)}`;return await v.get({url:k})},exportView:async(p,m)=>{const y=encodeURIComponent(p);return await v.get({url:`/api/views/export?view=${y}&format=${m}`,parseResponse:async w=>await w.text()})},saveView:async p=>await v.post({url:"/api/views",body:p}),deleteView:async p=>await v.delete({url:`/api/views/${encodeURIComponent(p)}`})}),buildViewV2Endpoints=v=>({fetchDefinition:async p=>await v.get({url:`/api/v2/views/${encodeURIComponent(p)}`,cache:!0}),create:async p=>await v.post({url:"/api/v2/views",body:p}),update:async p=>await v.put({url:`/api/v2/views/${encodeURIComponent(p.id)}`,body:p}),fetch:async(p,m)=>await v.post({url:`/api/v2/views/${encodeURIComponent(p)}/search`,body:m}),delete:async p=>await v.delete({url:`/api/v2/views/${encodeURIComponent(p)}`})}),buildLicensingEndpoints=v=>({activateLicenseKey:async p=>v.post({url:"/api/global/license/key",body:{licenseKey:p}}),deleteLicenseKey:async()=>v.delete({url:"/api/global/license/key"}),getLicenseKey:async()=>{try{return await v.get({url:"/api/global/license/key"})}catch(p){if(p.status!==404)throw p}},activateOfflineLicense:async p=>v.post({url:"/api/global/license/offline",body:{offlineLicenseToken:p}}),deleteOfflineLicense:async()=>v.delete({url:"/api/global/license/offline"}),getOfflineLicense:async()=>{try{return await v.get({url:"/api/global/license/offline"})}catch(p){if(p.status!==404)throw p}},getOfflineLicenseIdentifier:async()=>await v.get({url:"/api/global/license/offline/identifier"}),refreshLicense:async()=>v.post({url:"/api/global/license/refresh"}),getQuotaUsage:async()=>v.get({url:"/api/global/license/usage"})}),buildGroupsEndpoints=v=>{async function p(m,y,w,S){return await v.post({url:`/api/global/groups/${m}/${y}`,body:{[w]:S}})}return{saveGroup:async m=>await v.post({url:"/api/global/groups",body:m}),getGroups:async()=>(await v.get({url:"/api/global/groups"})).data,getGroup:async m=>await v.get({url:`/api/global/groups/${m}`}),deleteGroup:async(m,y)=>await v.delete({url:`/api/global/groups/${m}/${y}`}),getGroupUsers:async({id:m,bookmark:y,emailSearch:w})=>{let S=`/api/global/groups/${m}/users?`;return y&&(S+=`bookmark=${y}&`),w&&(S+=`emailSearch=${w}`),await v.get({url:S})},addUsersToGroup:async(m,y)=>p(m,"users","add",y),removeUsersFromGroup:async(m,y)=>p(m,"users","remove",y),addAppsToGroup:async(m,y)=>p(m,"apps","add",y),removeAppsFromGroup:async(m,y)=>p(m,"apps","remove",y),addGroupAppBuilder:async(m,y)=>await v.post({url:`/api/global/groups/${m}/app/${y}/builder`}),removeGroupAppBuilder:async(m,y)=>await v.delete({url:`/api/global/groups/${m}/app/${y}/builder`})}},buildPluginEndpoints=v=>({uploadPlugin:async p=>await v.post({url:"/api/plugin/upload",body:p,json:!1}),createPlugin:async p=>await v.post({url:"/api/plugin",body:p}),getPlugins:async()=>await v.get({url:"/api/plugin"}),deletePlugin:async p=>await v.delete({url:`/api/plugin/${p}`})}),buildBackupEndpoints=v=>({createManualBackup:async p=>await v.post({url:`/api/apps/${p}/backups`}),searchBackups:async(p,m)=>await v.post({url:`/api/apps/${p}/backups/search`,body:m}),deleteBackup:async(p,m)=>await v.delete({url:`/api/apps/${p}/backups/${m}`}),restoreBackup:async(p,m,y)=>await v.post({url:`/api/apps/${p}/backups/${m}/import`,body:{name:y}})}),buildEnvironmentVariableEndpoints=v=>({checkEnvironmentVariableStatus:async()=>await v.get({url:"/api/env/variables/status"}),fetchEnvironmentVariables:async()=>await v.get({url:"/api/env/variables",json:!1}),createEnvironmentVariable:async p=>await v.post({url:"/api/env/variables",body:p}),deleteEnvironmentVariable:async p=>await v.delete({url:`/api/env/variables/${p}`}),updateEnvironmentVariable:async(p,m)=>await v.patch({url:`/api/env/variables/${p}`,body:m})}),buildEventEndpoints=v=>({publishEvent:async p=>await v.post({url:"/api/global/event/publish",body:{type:p}})}),buildAuditLogEndpoints=v=>({searchAuditLogs:async p=>await v.post({url:"/api/global/auditlogs/search",body:p}),getEventDefinitions:async()=>await v.get({url:"/api/global/auditlogs/definitions"}),getDownloadUrl:p=>`/api/global/auditlogs/download?query=${encodeURIComponent(JSON.stringify(p))}`}),buildLogsEndpoints=v=>({getSystemLogs:async()=>await v.get({url:"/api/system/logs",json:!1,parseResponse:async p=>p})}),buildMigrationEndpoints=v=>({getMigrationStatus:async()=>await v.get({url:"/api/migrations/status"})}),buildRowActionEndpoints=v=>({fetch:async p=>(await v.get({url:`/api/tables/${p}/actions`})).actions,create:async(p,m)=>await v.post({url:`/api/tables/${p}/actions`,body:{name:m}}),delete:async(p,m)=>await v.delete({url:`/api/tables/${p}/actions/${m}`}),enableView:async(p,m,y)=>await v.post({url:`/api/tables/${p}/actions/${m}/permissions/${y}`}),disableView:async(p,m,y)=>await v.delete({url:`/api/tables/${p}/actions/${m}/permissions/${y}`}),trigger:async(p,m,y)=>await v.post({url:`/api/tables/${p}/actions/${m}/trigger`,body:{rowId:y}})}),buildOAuth2Endpoints=v=>({fetch:async()=>(await v.get({url:"/api/oauth2"})).configs,create:async p=>await v.post({url:"/api/oauth2",body:{...p}}),update:async p=>await v.put({url:`/api/oauth2/${p._id}`,body:{...p}}),delete:async(p,m)=>await v.delete({url:`/api/oauth2/${p}/${m}`}),validate:async function(p){return await v.post({url:"/api/oauth2/validate",body:{...p}})}}),buildAgentEndpoints=v=>({agentChat:async p=>{const m=p;return await v.post({url:"/api/agent/chat",body:m})},agentChatStream:async(p,m,y)=>{var S;const w=p;try{const k=await fetch("/api/agent/chat/stream",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(w),credentials:"same-origin"});if(!k.ok)throw new Error(`HTTP error! status: ${k.status}`);const M=(S=k.body)==null?void 0:S.getReader();if(!M)throw new Error("Failed to get response reader");const O=new TextDecoder;let R="";for(;;){const{done:D,value:H}=await M.read();if(D)break;R+=O.decode(H,{stream:!0});const N=R.split(`
441
+ `;var HTTPMethod=(v=>(v.POST="POST",v.PATCH="PATCH",v.GET="GET",v.PUT="PUT",v.DELETE="DELETE",v))(HTTPMethod||{});const BannedSearchTypes=[FieldType.LINK,FieldType.ATTACHMENT_SINGLE,FieldType.ATTACHMENTS,FieldType.FORMULA,FieldType.JSON,FieldType.ATTACHMENT_SINGLE,FieldType.SIGNATURE_SINGLE,"jsonarray","queryarray"],Cookies={Auth:"budibase:auth",CurrentApp:"budibase:currentapp",ReturnUrl:"budibase:returnurl",AccountReturnUrl:"budibase:account:returnurl",OnboardingProcessCorrelationKey:BpmCorrelationKey.ONBOARDING};var TableNames=(v=>(v.USERS="ta_users",v))(TableNames||{});const BudibaseRoles={AppUser:"appUser",Developer:"developer",Creator:"creator",Admin:"admin",Owner:"owner"},BudibaseRoleOptionsOld=[{label:"Developer",value:BudibaseRoles.Developer,sortOrder:2}],BudibaseRoleOptions=[{label:"Tenant admin",value:BudibaseRoles.Admin,subtitle:"Has full access to all workspaces in your tenant",sortOrder:1},{label:"Creator",value:BudibaseRoles.Creator,subtitle:"Can create and edit apps they have access to",sortOrder:2},{label:"App user",value:BudibaseRoles.AppUser,subtitle:"Can only use published apps they have access to",sortOrder:3}],ExtendedBudibaseRoleOptions=[{label:"Account holder",value:BudibaseRoles.Owner,sortOrder:0},...BudibaseRoleOptions,...BudibaseRoleOptionsOld],PlanType={FREE:"free",TEAM:"team",PRO:"pro",BUSINESS:"business",PREMIUM:"premium",PREMIUM_PLUS:"premium_plus",ENTERPRISE:"enterprise",ENTERPRISE_BASIC_TRIAL:"enterprise_basic_trial"},ApiVersion="1",Roles={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC",BUILDER:"BUILDER",CREATOR:"CREATOR",GROUP:"GROUP"},EventPublishType={ENV_VAR_UPGRADE_PANEL_OPENED:"environment_variable_upgrade_panel_opened"},TypeIconMap={[FieldType.STRING]:"Text",[FieldType.OPTIONS]:"Dropdown",[FieldType.DATETIME]:"Calendar",[FieldType.BARCODEQR]:"Camera",[FieldType.SIGNATURE_SINGLE]:"AnnotatePen",[FieldType.LONGFORM]:"TextAlignLeft",[FieldType.ARRAY]:"Duplicate",[FieldType.NUMBER]:"123",[FieldType.BOOLEAN]:"Boolean",[FieldType.ATTACHMENTS]:"DocumentFragmentGroup",[FieldType.ATTACHMENT_SINGLE]:"DocumentFragment",[FieldType.LINK]:"DataCorrelated",[FieldType.FORMULA]:"Calculator",[FieldType.AI]:"MagicWand",[FieldType.JSON]:"Brackets",[FieldType.BIGINT]:"TagBold",[FieldType.AUTO]:"Shapes",[FieldType.BB_REFERENCE]:{[BBReferenceFieldSubType.USER]:"UserGroup",[BBReferenceFieldSubType.USERS]:"UserGroup"},[FieldType.BB_REFERENCE_SINGLE]:{[BBReferenceFieldSubType.USER]:"User"}},OptionColours=[...new Array(12).keys()].map(v=>`hsla(${(v+1)*222%360}, 90%, 75%, 0.3)`),FilterOperator={ANY:"any",ALL:"all"},OnEmptyFilter={RETURN_ALL:"all",RETURN_NONE:"none"},FilterValueType={BINDING:"Binding",VALUE:"Value"},FieldPermissions={WRITABLE:"writable",READONLY:"readonly",HIDDEN:"hidden"},APP_NAME_REGEX=/^[\w\s]+$/,APP_URL_REGEX=/^[0-9a-zA-Z-_]+$/,Constants$2=Object.freeze(Object.defineProperty({__proto__:null,APP_NAME_REGEX,APP_URL_REGEX,ApiVersion,BannedSearchTypes,BudibaseRoleOptions,BudibaseRoleOptionsOld,BudibaseRoles,ContextScopes:ComponentContextScopes,Cookies,DEFAULT_BB_DATASOURCE_ID,EventPublishType,ExtendedBudibaseRoleOptions,Features:Feature,FieldPermissions,FilterOperator,FilterValueType,OnEmptyFilter,OperatorOptions,OptionColours,PlanType,Roles,SqlNumberTypeRangeMap,TableNames,TypeIconMap},Symbol.toStringTag,{value:"Module"})),buildAnalyticsEndpoints=v=>({getAnalyticsStatus:async()=>await v.get({url:"/api/bbtel"}),analyticsPing:async p=>await v.post({url:"/api/bbtel/ping",body:{...p,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}})}),buildAIEndpoints=v=>({generateCronExpression:async p=>await v.post({url:"/api/ai/cron",body:{prompt:p}}),generateJs:async p=>await v.post({url:"/api/ai/js",body:p}),generateTables:async p=>await v.post({url:"/api/ai/tables",body:p})}),buildAppEndpoints=v=>({fetchAppPackage:async p=>await v.get({url:`/api/applications/${p}/appPackage`}),saveAppMetadata:async(p,m)=>await v.put({url:`/api/applications/${p}`,body:m}),publishAppChanges:async(p,m)=>await v.post({url:`/api/applications/${p}/publish`,body:m}),revertAppChanges:async p=>await v.post({url:`/api/dev/${p}/revert`}),updateAppClientVersion:async p=>await v.post({url:`/api/applications/${p}/client/update`}),revertAppClientVersion:async p=>await v.post({url:`/api/applications/${p}/client/revert`}),getAppDeployments:async()=>await v.get({url:"/api/deployments"}),createApp:async p=>p instanceof FormData?await v.post({url:"/api/applications",body:p,json:!1}):await v.post({url:"/api/applications",body:p}),duplicateApp:async(p,m)=>await v.post({url:`/api/applications/${p}/duplicate`,body:m}),updateAppFromExport:async(p,m)=>{const y=getDevAppID(p);return await v.post({url:`/api/applications/${y}/import`,body:m,json:!1})},importApps:async p=>await v.post({url:"/api/cloud/import",body:p,json:!1}),unpublishApp:async p=>await v.post({url:`/api/applications/${p}/unpublish`}),deleteApp:async p=>await v.delete({url:`/api/applications/${p}`}),releaseAppLock:async p=>await v.delete({url:`/api/dev/${p}/lock`}),fetchSystemDebugInfo:async()=>await v.get({url:"/api/debug/diagnostics"}),syncApp:async p=>await v.post({url:`/api/applications/${p}/sync`}),getApps:async()=>await v.get({url:"/api/applications?status=all"}),fetchComponentLibDefinitions:async p=>await v.get({url:`/api/${p}/components/definitions`}),addSampleData:async p=>await v.post({url:`/api/applications/${p}/sample`}),getPublishedApps:async()=>(await v.get({url:"/api/client/applications"})).apps}),buildAttachmentEndpoints=v=>{const p={getSignedDatasourceURL:async(m,y,w)=>await v.post({url:`/api/attachments/${m}/url`,body:{bucket:y,key:w}})};return{...p,uploadAttachment:async(m,y)=>await v.post({url:`/api/attachments/${m}/upload`,body:y,json:!1}),uploadBuilderAttachment:async m=>await v.post({url:"/api/attachments/process",body:m,json:!1}),uploadPWAZip:async m=>await v.post({url:"/api/pwa/process-zip",body:m,json:!1}),externalUpload:async(m,y,w,S)=>{const{signedUrl:k,publicUrl:M}=await p.getSignedDatasourceURL(m,y,w);return k?(await v.put({url:k,body:S,json:!1,external:!0,parseResponse:O=>O}),{publicUrl:M}):{publicUrl:void 0}},downloadAttachment:async(m,y,w)=>await v.get({url:`/api/${m}/rows/${y}/attachment/${w}`,parseResponse:S=>S,suppressErrors:!0})}},buildAuthEndpoints=v=>({logIn:async(p,m,y)=>await v.post({url:`/api/global/auth/${p}/login`,body:{username:m,password:y},parseResponse:async w=>{const S=await w.json(),k=w.headers.get("X-Session-Invalidated-Count");return{...S,invalidatedSessionCount:k?parseInt(k):0}}}),logOut:async()=>await v.post({url:"/api/global/auth/logout"}),setInitInfo:async p=>await v.post({url:"/api/global/auth/init",body:p}),getInitInfo:async()=>await v.get({url:"/api/global/auth/init"}),requestForgotPassword:async(p,m)=>await v.post({url:`/api/global/auth/${p}/reset`,body:{email:m}}),resetPassword:async(p,m,y)=>await v.post({url:`/api/global/auth/${p}/reset/update`,body:{password:m,resetCode:y}})}),buildAutomationEndpoints=v=>({triggerAutomation:async(p,m,y)=>await v.post({url:`/api/automations/${p}/trigger`,body:{fields:m,timeout:y}}),testAutomation:async(p,m)=>await v.post({url:`/api/automations/${p}/test`,body:m}),getAutomations:async()=>await v.get({url:"/api/automations"}),getAutomationDefinitions:async()=>await v.get({url:"/api/automations/definitions/list"}),createAutomation:async p=>await v.post({url:"/api/automations",body:p}),updateAutomation:async p=>await v.put({url:"/api/automations",body:p}),deleteAutomation:async(p,m)=>await v.delete({url:`/api/automations/${p}/${m}`}),getAutomationLogs:async p=>await v.post({url:"/api/automations/logs/search",body:p}),clearAutomationLogErrors:async(p,m)=>await v.delete({url:"/api/automations/logs",body:{appId:m,automationId:p}})}),buildConfigEndpoints=v=>({saveConfig:async p=>await v.post({url:"/api/global/configs",body:p}),getConfig:async p=>await v.get({url:`/api/global/configs/${p}`}),deleteConfig:async(p,m)=>await v.delete({url:`/api/global/configs/${p}/${m}`}),getTenantConfig:async p=>await v.get({url:`/api/global/configs/public?tenantId=${p}`}),getOIDCConfigs:async p=>await v.get({url:`/api/global/configs/public/oidc?tenantId=${p}`}),getChecklist:async p=>await v.get({url:`/api/global/configs/checklist?tenantId=${p}`}),uploadLogo:async p=>await v.post({url:"/api/global/configs/upload/settings/logoUrl",body:p,json:!1}),uploadFavicon:async p=>await v.post({url:"/api/global/configs/upload/settings/faviconUrl",body:p,json:!1}),uploadOIDCLogo:async(p,m)=>await v.post({url:`/api/global/configs/upload/logos_oidc/${p}`,body:m,json:!1}),getOIDCLogos:async()=>await v.get({url:"/api/global/configs/logos_oidc"})}),buildDatasourceEndpoints=v=>({getDatasources:async()=>await v.get({url:"/api/datasources"}),buildDatasourceSchema:async(p,m)=>await v.post({url:`/api/datasources/${p}/schema`,body:{tablesFilter:m}}),createDatasource:async p=>await v.post({url:"/api/datasources",body:p}),updateDatasource:async p=>await v.put({url:`/api/datasources/${p._id}`,body:p}),deleteDatasource:async(p,m)=>await v.delete({url:`/api/datasources/${p}/${m}`}),validateDatasource:async p=>await v.post({url:"/api/datasources/verify",body:{datasource:p}}),fetchInfoForDatasource:async p=>await v.post({url:"/api/datasources/info",body:{datasource:p}}),fetchExternalSchema:async p=>await v.get({url:`/api/datasources/${p}/schema/external`})}),buildFlagEndpoints=v=>({getFlags:async()=>await v.get({url:"/api/users/flags"}),updateFlag:async(p,m)=>await v.post({url:"/api/users/flags",body:{flag:p,value:m}}),toggleUiFeature:async p=>await v.post({url:`/api/beta/${p}`})}),buildLayoutEndpoints=v=>({saveLayout:async p=>await v.post({url:"/api/layouts",body:p}),deleteLayout:async(p,m)=>await v.delete({url:`/api/layouts/${p}/${m}`})}),buildOtherEndpoints=v=>({getEnvironment:async()=>await v.get({url:"/api/system/environment"}),getSystemStatus:async()=>await v.get({url:"/api/system/status"}),getIntegrations:async()=>await v.get({url:"/api/integrations"}),getBudibaseVersion:async()=>(await v.get({url:"/api/dev/version"})).version,getBasePermissions:async()=>await v.get({url:"/api/permission/builtin"})}),buildPermissionsEndpoints=v=>({getPermissionForResource:async p=>await v.get({url:`/api/permission/${p}`}),updatePermissionForResource:async(p,m,y)=>await v.post({url:`/api/permission/${m}/${p}/${y}`}),removePermissionFromResource:async(p,m,y)=>await v.delete({url:`/api/permission/${m}/${p}/${y}`}),getDependants:async p=>await v.get({url:`/api/permission/${p}/dependants`})}),buildQueryEndpoints=v=>({executeQuery:async(p,{pagination:m,parameters:y}={})=>await v.post({url:`/api/v2/queries/${p}`,body:{parameters:y,pagination:m}}),fetchQueryDefinition:async p=>await v.get({url:`/api/queries/${p}`,cache:!0}),getQueries:async()=>await v.get({url:"/api/queries"}),saveQuery:async p=>await v.post({url:"/api/queries",body:p}),deleteQuery:async(p,m)=>await v.delete({url:`/api/queries/${p}/${m}`}),importQueries:async p=>await v.post({url:"/api/queries/import",body:p}),previewQuery:async p=>await v.post({url:"/api/queries/preview",body:p})}),buildRelationshipEndpoints=v=>({fetchRelationshipData:async(p,m,y)=>{const w=await v.get({url:`/api/${p}/${m}/enrich?field=${y}`});return y?w[y]||[]:[w]}}),buildRoleEndpoints=v=>({deleteRole:async(p,m)=>await v.delete({url:`/api/roles/${p}/${m}`}),saveRole:async p=>await v.post({url:"/api/roles",body:p}),getRoles:async()=>await v.get({url:"/api/roles"}),getRolesForApp:async p=>await v.get({url:`/api/global/roles/${p}`}),getAccessibleRoles:async()=>await v.get({url:"/api/roles/accessible"})}),buildRouteEndpoints=v=>({fetchClientAppRoutes:async()=>await v.get({url:"/api/routing/client"}),fetchAppRoutes:async()=>await v.get({url:"/api/routing"})}),buildRowEndpoints=v=>({fetchRow:async(p,m)=>await v.get({url:`/api/${p}/rows/${m}`}),saveRow:async(p,m=!1)=>{const y=p._viewId||p.tableId;return await v.post({url:`/api/${y}/rows`,body:p,suppressErrors:m})},patchRow:async(p,m=!1)=>{const y=p._viewId||p.tableId;return await v.patch({url:`/api/${y}/rows`,body:p,suppressErrors:m})},deleteRow:async(p,m)=>await v.delete({url:`/api/${p}/rows`,body:{_id:m}}),deleteRows:async(p,m)=>(m.forEach(y=>{typeof y=="object"&&(y==null||delete y._viewId)}),await v.delete({url:`/api/${p}/rows`,body:{rows:m}})),exportRows:async(p,m,y)=>await v.post({url:`/api/${p}/rows/exportRows?format=${m}`,body:y,parseResponse:async w=>await w.text()})}),buildScreenEndpoints=v=>({saveScreen:async p=>await v.post({url:"/api/screens",body:p}),deleteScreen:async(p,m)=>await v.delete({url:`/api/screens/${p}/${m}`}),usageInScreens:async p=>await v.post({url:`/api/screens/usage/${p}`})}),buildTableEndpoints=v=>({fetchTableDefinition:async p=>await v.get({url:`/api/tables/${p}`,cache:!0}),fetchTableData:async p=>await v.get({url:`/api/${p}/rows`}),searchTable:async(p,m)=>await v.post({url:`/api/${p}/search`,body:m}),importTableData:async(p,m,y)=>await v.post({url:`/api/tables/${p}/import`,body:{rows:m,identifierFields:y}}),csvToJson:async p=>await v.post({url:"/api/convert/csvToJson",body:{csvString:p}}),getTables:async()=>await v.get({url:"/api/tables"}),getTable:async p=>await v.get({url:`/api/tables/${p}`}),saveTable:async p=>await v.post({url:"/api/tables",body:p}),deleteTable:async(p,m)=>await v.delete({url:`/api/tables/${p}/${m}`}),validateNewTableImport:async(p,m)=>await v.post({url:"/api/tables/validateNewTableImport",body:{rows:p,schema:m}}),validateExistingTableImport:async(p,m)=>await v.post({url:"/api/tables/validateExistingTableImport",body:{rows:p,tableId:m}}),migrateColumn:async(p,m,y)=>await v.post({url:`/api/tables/${p}/migrate`,body:{oldColumn:m,newColumn:y}})}),buildTemplateEndpoints=v=>({getEmailTemplateDefinitions:async()=>await v.get({url:"/api/global/template/definitions"}),getEmailTemplates:async()=>await v.get({url:"/api/global/template/email"}),saveEmailTemplate:async p=>await v.post({url:"/api/global/template",body:p}),getAppTemplates:async()=>await v.get({url:"/api/templates"})}),buildUserEndpoints=v=>({getUsers:async()=>await v.get({url:"/api/global/users"}),searchUsers:async p=>await v.post({url:"/api/global/users/search",body:p}),getUser:async p=>await v.get({url:`/api/global/users/${p}`}),updateOwnMetadata:async p=>await v.post({url:"/api/users/metadata/self",body:p}),createAdminUser:async p=>await v.post({url:"/api/global/users/init",body:p}),saveUser:async p=>await v.post({url:"/api/global/users",body:p}),createUsers:async(p,m)=>(await v.post({url:"/api/global/users/bulk",body:{create:{users:p,groups:m}}})).created,deleteUser:async p=>await v.delete({url:`/api/global/users/${p}`}),deleteUsers:async p=>(await v.post({url:"/api/global/users/bulk",body:{delete:{users:p}}})).deleted,onboardUsers:async p=>await v.post({url:"/api/global/users/onboard",body:p}),updateUserInvite:async(p,m)=>await v.post({url:`/api/global/users/invite/update/${p}`,body:m}),getUserInvite:async p=>await v.get({url:`/api/global/users/invite/${p}`}),getUserInvites:async()=>await v.get({url:"/api/global/users/invites"}),inviteUsers:async p=>await v.post({url:"/api/global/users/multi/invite",body:p}),removeUserInvites:async p=>await v.post({url:"/api/global/users/multi/invite/delete",body:p}),acceptInvite:async p=>await v.post({url:"/api/global/users/invite/accept",body:p}),getUserCountByApp:async p=>(await v.get({url:`/api/global/users/count/${p}`})).userCount,addAppBuilder:async(p,m)=>await v.post({url:`/api/global/users/${p}/app/${m}/builder`}),removeAppBuilder:async(p,m)=>await v.delete({url:`/api/global/users/${p}/app/${m}/builder`}),getAccountHolder:async()=>await v.get({url:"/api/global/users/accountholder"})}),buildSelfEndpoints=v=>({generateAPIKey:async()=>{const p=await v.post({url:"/api/global/self/api_key"});return p==null?void 0:p.apiKey},fetchDeveloperInfo:async()=>v.get({url:"/api/global/self/api_key"}),fetchSelf:async()=>await v.get({url:"/api/self"}),fetchBuilderSelf:async()=>await v.get({url:"/api/global/self"}),updateSelf:async p=>await v.post({url:"/api/global/self",body:p})}),buildViewEndpoints=v=>({fetchViewData:async(p,{field:m,groupBy:y,calculation:w})=>{const S=new URLSearchParams;w&&(m&&S.set("field",m),S.set("calculation",w)),y&&S.set("group",y);const k=m?`/api/views/${encodeURIComponent(p)}?${S}`:`/api/views/${encodeURIComponent(p)}`;return await v.get({url:k})},exportView:async(p,m)=>{const y=encodeURIComponent(p);return await v.get({url:`/api/views/export?view=${y}&format=${m}`,parseResponse:async w=>await w.text()})},saveView:async p=>await v.post({url:"/api/views",body:p}),deleteView:async p=>await v.delete({url:`/api/views/${encodeURIComponent(p)}`})}),buildViewV2Endpoints=v=>({fetchDefinition:async p=>await v.get({url:`/api/v2/views/${encodeURIComponent(p)}`,cache:!0}),create:async p=>await v.post({url:"/api/v2/views",body:p}),update:async p=>await v.put({url:`/api/v2/views/${encodeURIComponent(p.id)}`,body:p}),fetch:async(p,m)=>await v.post({url:`/api/v2/views/${encodeURIComponent(p)}/search`,body:m}),delete:async p=>await v.delete({url:`/api/v2/views/${encodeURIComponent(p)}`})}),buildLicensingEndpoints=v=>({activateLicenseKey:async p=>v.post({url:"/api/global/license/key",body:{licenseKey:p}}),deleteLicenseKey:async()=>v.delete({url:"/api/global/license/key"}),getLicenseKey:async()=>{try{return await v.get({url:"/api/global/license/key"})}catch(p){if(p.status!==404)throw p}},activateOfflineLicense:async p=>v.post({url:"/api/global/license/offline",body:{offlineLicenseToken:p}}),deleteOfflineLicense:async()=>v.delete({url:"/api/global/license/offline"}),getOfflineLicense:async()=>{try{return await v.get({url:"/api/global/license/offline"})}catch(p){if(p.status!==404)throw p}},getOfflineLicenseIdentifier:async()=>await v.get({url:"/api/global/license/offline/identifier"}),refreshLicense:async()=>v.post({url:"/api/global/license/refresh"}),getQuotaUsage:async()=>v.get({url:"/api/global/license/usage"})}),buildGroupsEndpoints=v=>{async function p(m,y,w,S){return await v.post({url:`/api/global/groups/${m}/${y}`,body:{[w]:S}})}return{saveGroup:async m=>await v.post({url:"/api/global/groups",body:m}),getGroups:async()=>(await v.get({url:"/api/global/groups"})).data,getGroup:async m=>await v.get({url:`/api/global/groups/${m}`}),deleteGroup:async(m,y)=>await v.delete({url:`/api/global/groups/${m}/${y}`}),getGroupUsers:async({id:m,bookmark:y,emailSearch:w})=>{let S=`/api/global/groups/${m}/users?`;return y&&(S+=`bookmark=${y}&`),w&&(S+=`emailSearch=${w}`),await v.get({url:S})},addUsersToGroup:async(m,y)=>p(m,"users","add",y),removeUsersFromGroup:async(m,y)=>p(m,"users","remove",y),addAppsToGroup:async(m,y)=>p(m,"apps","add",y),removeAppsFromGroup:async(m,y)=>p(m,"apps","remove",y),addGroupAppBuilder:async(m,y)=>await v.post({url:`/api/global/groups/${m}/app/${y}/builder`}),removeGroupAppBuilder:async(m,y)=>await v.delete({url:`/api/global/groups/${m}/app/${y}/builder`})}},buildPluginEndpoints=v=>({uploadPlugin:async p=>await v.post({url:"/api/plugin/upload",body:p,json:!1}),createPlugin:async p=>await v.post({url:"/api/plugin",body:p}),getPlugins:async()=>await v.get({url:"/api/plugin"}),deletePlugin:async p=>await v.delete({url:`/api/plugin/${p}`})}),buildBackupEndpoints=v=>({createManualBackup:async p=>await v.post({url:`/api/apps/${p}/backups`}),searchBackups:async(p,m)=>await v.post({url:`/api/apps/${p}/backups/search`,body:m}),deleteBackup:async(p,m)=>await v.delete({url:`/api/apps/${p}/backups/${m}`}),restoreBackup:async(p,m,y)=>await v.post({url:`/api/apps/${p}/backups/${m}/import`,body:{name:y}})}),buildEnvironmentVariableEndpoints=v=>({checkEnvironmentVariableStatus:async()=>await v.get({url:"/api/env/variables/status"}),fetchEnvironmentVariables:async()=>await v.get({url:"/api/env/variables",json:!1}),createEnvironmentVariable:async p=>await v.post({url:"/api/env/variables",body:p}),deleteEnvironmentVariable:async p=>await v.delete({url:`/api/env/variables/${p}`}),updateEnvironmentVariable:async(p,m)=>await v.patch({url:`/api/env/variables/${p}`,body:m})}),buildEventEndpoints=v=>({publishEvent:async p=>await v.post({url:"/api/global/event/publish",body:{type:p}})}),buildAuditLogEndpoints=v=>({searchAuditLogs:async p=>await v.post({url:"/api/global/auditlogs/search",body:p}),getEventDefinitions:async()=>await v.get({url:"/api/global/auditlogs/definitions"}),getDownloadUrl:p=>`/api/global/auditlogs/download?query=${encodeURIComponent(JSON.stringify(p))}`}),buildLogsEndpoints=v=>({getSystemLogs:async()=>await v.get({url:"/api/system/logs",json:!1,parseResponse:async p=>p})}),buildMigrationEndpoints=v=>({getMigrationStatus:async()=>await v.get({url:"/api/migrations/status"})}),buildRowActionEndpoints=v=>({fetch:async p=>(await v.get({url:`/api/tables/${p}/actions`})).actions,create:async(p,m)=>await v.post({url:`/api/tables/${p}/actions`,body:{name:m}}),delete:async(p,m)=>await v.delete({url:`/api/tables/${p}/actions/${m}`}),enableView:async(p,m,y)=>await v.post({url:`/api/tables/${p}/actions/${m}/permissions/${y}`}),disableView:async(p,m,y)=>await v.delete({url:`/api/tables/${p}/actions/${m}/permissions/${y}`}),trigger:async(p,m,y)=>await v.post({url:`/api/tables/${p}/actions/${m}/trigger`,body:{rowId:y}})}),buildOAuth2Endpoints=v=>({fetch:async()=>(await v.get({url:"/api/oauth2"})).configs,create:async p=>await v.post({url:"/api/oauth2",body:{...p}}),update:async p=>await v.put({url:`/api/oauth2/${p._id}`,body:{...p}}),delete:async(p,m)=>await v.delete({url:`/api/oauth2/${p}/${m}`}),validate:async function(p){return await v.post({url:"/api/oauth2/validate",body:{...p}})}}),buildAgentEndpoints=v=>({agentChat:async p=>{const m=p;return await v.post({url:"/api/agent/chat",body:m})},agentChatStream:async(p,m,y)=>{var S;const w=p;try{const k=await fetch("/api/agent/chat/stream",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(w),credentials:"same-origin"});if(!k.ok)throw new Error(`HTTP error! status: ${k.status}`);const M=(S=k.body)==null?void 0:S.getReader();if(!M)throw new Error("Failed to get response reader");const O=new TextDecoder;let R="";for(;;){const{done:D,value:H}=await M.read();if(D)break;R+=O.decode(H,{stream:!0});const N=R.split(`
442
442
  `);R=N.pop()||"";for(const W of N)if(W.startsWith("data: "))try{const J=W.slice(6);if(J.trim()){const ee=JSON.parse(J);m(ee)}}catch(J){console.error("Failed to parse SSE data:",J)}}}catch(k){if(y)y(k);else throw k}},removeChat:async p=>await v.delete({url:`/api/agent/history/${p}`}),fetchChats:async()=>await v.get({url:"/api/agent/history"}),fetchToolSources:async()=>await v.get({url:"/api/agent/toolsource"}),createToolSource:async p=>await v.post({url:"/api/agent/toolsource",body:p}),updateToolSource:async p=>await v.put({url:"/api/agent/toolsource",body:p}),deleteToolSource:async p=>await v.delete({url:`/api/agent/toolsource/${p}`})}),buildFeatureFlagEndpoints=v=>({overrideFeatureFlags:async p=>{const m={flags:p};return await v.patch({url:"/api/features",body:m,parseResponse:()=>{}})}}),buildNavigationEndpoints=v=>({updateNavigation:async(p,m)=>await v.put({url:`/api/navigation/${p}`,body:{navigation:m}})}),buildWorkspaceAppEndpoints=v=>({fetch:async()=>await v.get({url:"/api/workspaceApp"}),create:async p=>await v.post({url:"/api/workspaceApp",body:p}),update:async p=>await v.put({url:`/api/workspaceApp/${p._id}`,body:p}),delete:async(p,m)=>await v.delete({url:`/api/workspaceApp/${p}/${m}`})}),buildResourceEndpoints=v=>({searchForUsage:async p=>await v.post({url:"/api/resources/usage",body:p})}),APISessionID=uuid(),createAPIClient=(v={})=>{let p={};const m=async(R,D,H=!1)=>{let N=R.statusText,W=null;try{W=await R.json(),W!=null&&W.message?N=W.message:W!=null&&W.error&&(N=JSON.stringify(W.error))}catch{}return{message:N,json:W,status:R.status,url:R.url,method:D,handled:!0,suppressErrors:H}},y=(R,D,H)=>({message:R,json:null,status:400,url:D,method:H,handled:!0,suppressErrors:!1}),w=async R=>{let{json:D,method:H,external:N,body:W,url:J,parseResponse:ee,suppressErrors:le}=R;D=D&&H!==HTTPMethod.GET;let ce={Accept:"application/json"};ce[Header.SESSION_ID]=APISessionID,N||(ce[Header.API_VER]=ApiVersion),D&&(ce["Content-Type"]="application/json"),v!=null&&v.attachHeaders&&v.attachHeaders(ce);let ue=W;if(D)try{ue=JSON.stringify(W)}catch{throw y("Invalid JSON body",J,H)}let pe;try{pe=await fetch(J,{method:H,headers:ce,body:ue,credentials:"same-origin"})}catch{throw delete p[J],y("Failed to send request",J,H)}if(pe.status>=200&&pe.status<400){S(pe);try{return pe.status===204?void 0:ee?await ee(pe):await pe.json()}catch(ge){throw delete p[J],`Failed to parse response: ${ge}`}}else throw delete p[J],await m(pe,H,le)},S=R=>{if(!v.onMigrationDetected)return;const D=R.headers.get(Header.MIGRATING_APP);D&&v.onMigrationDetected(D)},k=async R=>{const D=R.url;return p[D]||(p[D]=w(R),p[D]=await p[D]),await p[D]},M=R=>async D=>{try{let H={json:!0,external:!1,suppressErrors:!1,cache:!1,method:R,...D},{url:N,cache:W,external:J}=H;return J||(H.url=`/${N}`.replace("//","/")),await(W&&(v==null?void 0:v.enableCaching)?k:w)(H)}catch(H){throw v!=null&&v.onError&&v.onError(H),H}};let O={post:M(HTTPMethod.POST),get:M(HTTPMethod.GET),patch:M(HTTPMethod.PATCH),delete:M(HTTPMethod.DELETE),put:M(HTTPMethod.PUT),invalidateCache:()=>{p={}},getAppID:()=>{var D;let R={};return(D=v==null?void 0:v.attachHeaders)==null||D.call(v,R),R==null?void 0:R[Header.APP_ID]}};return{...O,...buildAIEndpoints(O),...buildAnalyticsEndpoints(O),...buildAppEndpoints(O),...buildAttachmentEndpoints(O),...buildAuthEndpoints(O),...buildAutomationEndpoints(O),...buildConfigEndpoints(O),...buildDatasourceEndpoints(O),...buildFlagEndpoints(O),...buildLayoutEndpoints(O),...buildOtherEndpoints(O),...buildPermissionsEndpoints(O),...buildQueryEndpoints(O),...buildRelationshipEndpoints(O),...buildRoleEndpoints(O),...buildRouteEndpoints(O),...buildRowEndpoints(O),...buildScreenEndpoints(O),...buildTableEndpoints(O),...buildTemplateEndpoints(O),...buildUserEndpoints(O),...buildViewEndpoints(O),...buildSelfEndpoints(O),...buildLicensingEndpoints(O),...buildGroupsEndpoints(O),...buildPluginEndpoints(O),...buildBackupEndpoints(O),...buildEnvironmentVariableEndpoints(O),...buildEventEndpoints(O),...buildAuditLogEndpoints(O),...buildLogsEndpoints(O),...buildMigrationEndpoints(O),...buildAgentEndpoints(O),...buildFeatureFlagEndpoints(O),viewV2:buildViewV2Endpoints(O),rowActions:buildRowActionEndpoints(O),oauth2:buildOAuth2Endpoints(O),navigation:buildNavigationEndpoints(O),workspaceApp:buildWorkspaceAppEndpoints(O),resource:buildResourceEndpoints(O)}},getJSONArrayDatasourceSchema=(v,p)=>{let m=v,y=[];p.prefixKeys&&(y=p.prefixKeys.concat(["schema"])),y=y.concat(p.label.split(".").slice(2));for(let w=0;w<y.length;w++)m=m==null?void 0:m[y[w]],m!=null&&m.schema&&(m=m.schema);return convertJSONSchemaToTableSchema(m,{squashObjects:!0,prefixKeys:y})},convertJSONSchemaToTableSchema=(v,p)=>{if(!v)return null;p={squashObjects:!1,prefixKeys:null,...p},v.schema?v=v.schema:v={value:v};const m=extractJSONSchemaKeys(v,p.squashObjects);let y={};return m.forEach(({key:w,type:S})=>{y[w]={type:S,name:w,prefixKeys:p.prefixKeys}}),y},extractJSONSchemaKeys=(v,p=!1)=>{if(!v||!Object.keys(v).length)return[];let m=[];return Object.keys(v).forEach(y=>{const w=v[y].type;if(w==="json"&&p){const S=extractJSONSchemaKeys(v[y].schema,p);m=m.concat(S.map(k=>({key:`${y}.${k.key}`,type:k.type})))}else m.push({key:y,type:w==="array"?"jsonarray":w})}),m},generateQueryArraySchemas=(v,p)=>{var m,y;for(let w in v)((m=v[w])==null?void 0:m.type)==="json"&&((y=v[w])==null?void 0:y.subtype)==="array"&&hasSchema(p[w])&&(v[w]={schema:{schema:Object.entries(p[w]||{}).reduce((S,[k,M])=>(S[k]={name:k,type:M.type,subtype:M.subtype},S),{}),type:"json"},type:"json",subtype:"array"});return v};function setCookie(v,p,m){getCookie(v)&&removeCookie(v);let y=`${v}=${p}; Path=/;`;m&&(y+=` Domain=${m};`),window.document.cookie=y}function getCookie(v){const m=`; ${document.cookie}`.split(`; ${v}=`);if(m.length===2)return m[1].split(";").shift()}function removeCookie(v){getCookie(v)&&(document.cookie=`${v}=; Max-Age=-99999999; Path=/;`)}const RolePriorities={[Roles.ADMIN]:5,[Roles.CREATOR]:4,[Roles.POWER]:3,[Roles.BASIC]:2,[Roles.PUBLIC]:1},getRolePriority=v=>RolePriorities[v]??0,sleep=v=>new Promise(p=>setTimeout(p,v)),debounce=(v,p=1e3)=>{let m;return async(...y)=>new Promise(w=>{m&&clearTimeout(m),m=setTimeout(async()=>{const S=await v(...y);w(S)},p)})},throttle=(v,p=1e3)=>{let m,y=!1,w=!1;const S=(...k)=>{if(m=k,y){w=!0;return}v(...m),y=!0,setTimeout(()=>{y=!1,w&&(w=!1,S(...m))},p)};return S},domDebounce=v=>{let p=!1,m;return(...y)=>{m=y,p||(p=!0,requestAnimationFrame(()=>{v(...m),p=!1}))}},buildFormBlockButtonConfig=v=>{const{_id:p,actionType:m,dataSource:y,notificationOverride:w,actionUrl:S,showDeleteButton:k,deleteButtonLabel:M,showSaveButton:O,saveButtonLabel:R}=v||{};if(!p)return;const D=`${p}-form`,H=`${p}-repeater`,N=y==null?void 0:y.resourceId,W=k===!1?"":M==null?void 0:M.trim(),J=O===!1?"":R==null?void 0:R.trim(),ee=[{"##eventHandlerType":"Validate Form",parameters:{componentId:D}},{"##eventHandlerType":"Save Row",parameters:{providerId:D,tableId:N,notificationOverride:w,confirm:null}},{"##eventHandlerType":"Close Screen Modal"},{"##eventHandlerType":"Close Side Panel"},{"##eventHandlerType":"Close Modal"},...m!=="Create"?[]:[{"##eventHandlerType":"Clear Form",parameters:{componentId:D}}],...S?[{"##eventHandlerType":"Navigate To",parameters:{url:S}}]:[]],le=[{"##eventHandlerType":"Delete Row",parameters:{confirm:!0,tableId:N,rowId:`{{ ${makePropSafe(H)}.${makePropSafe("_id")} }}`,revId:`{{ ${makePropSafe(H)}.${makePropSafe("_rev")} }}`,notificationOverride:w}},{"##eventHandlerType":"Close Screen Modal"},{"##eventHandlerType":"Close Side Panel"},{"##eventHandlerType":"Close Modal"},...S?[{"##eventHandlerType":"Navigate To",parameters:{url:S}}]:[]],ce=[];return m&&["Update","Create"].includes(m)&&O!==!1&&ce.push({text:J||"Save",_id:uuid(),_component:"@budibase/standard-components/button",onClick:ee,type:"cta"}),m==="Update"&&k!==!1&&ce.push({text:W||"Delete",_id:uuid(),_component:"@budibase/standard-components/button",onClick:le,quiet:!0,type:"warning"}),ce},buildMultiStepFormBlockDefaultProps=v=>{const{_id:p,stepCount:m,currentStep:y,actionType:w,dataSource:S}=v||{};if(!p||!m)return;const k=`Step {{ [${p}-form].[__currentStep] }}`,M=S==null?void 0:S.resourceId,O=`${p}-form`;let R=[];return y!==0&&R.push({_id:uuid(),_component:"@budibase/standard-components/button",_instanceName:uuid(),text:"Back",type:"secondary",size:"M",onClick:[{parameters:{type:"prev",componentId:O},"##eventHandlerType":"Change Form Step"}]}),y!==m-1&&R.push({_id:uuid(),_component:"@budibase/standard-components/button",_instanceName:uuid(),text:"Next",type:"cta",size:"M",onClick:[{"##eventHandlerType":"Validate Form",parameters:{componentId:O}},{parameters:{type:"next",componentId:O},"##eventHandlerType":"Change Form Step"}]}),w!=="View"&&y===m-1&&R.push({_id:uuid(),_component:"@budibase/standard-components/button",_instanceName:uuid(),text:"Save",type:"cta",size:"M",onClick:[{"##eventHandlerType":"Validate Form",parameters:{componentId:O}},{"##eventHandlerType":"Save Row",parameters:{tableId:M,providerId:O}},...w!=="Create"?[]:[{"##eventHandlerType":"Clear Form",parameters:{componentId:O}}]]}),{buttons:R,title:k}};function parseFilter(v){if(!(v!=null&&v.groups))return v;const p=lodashExports.cloneDeep(v);return p.groups&&(p.groups=p.groups.map(m=>{var y;return m.filters?(m.filters=m.filters.filter(w=>w.field&&w.operator),(y=m.filters)!=null&&y.length?m:null):m}).filter(m=>!!m)),p}const isBetterSample=(v,p)=>{if(p==null&&v!=null)return!0;if(p!=null&&v==null)return!1;const m=typeof p,y=typeof v;return m!==y?!1:y==="string"&&v.length>p.length||y==="object"&&Object.keys(v).length>Object.keys(p).length},generateGoldenSample=v=>{let p={};return v==null||v.slice(0,100).forEach(m=>{Object.keys(m).forEach(y=>{isBetterSample(m[y],p[y])&&(p[y]=m[y])})}),p},getColumnIcon=v=>{if(v.schema.icon&&!v.schema.icon.startsWith("ri-"))return v.schema.icon;if(v.calculationType)return"Calculator";if(v.schema.autocolumn)return"Shapes";if(isDeprecatedSingleUserColumn(v.schema))return"User";const{type:p,subtype:m}=v.schema;return(typeof TypeIconMap[p]=="object"&&m?TypeIconMap[p][m]:TypeIconMap[p])||"Text"},memo=v=>{const p=writable(v);let m=JSON.stringify(v);const y=w=>{const S=JSON.stringify(w);S!==m&&(p.set(w),m=S)};return{subscribe:p.subscribe,set:y,update:w=>{let S=JSON.parse(m);const k=w(S);y(k)}}},derivedMemo=(v,p)=>{const m=derived(v,p),y=memo(get_store_value(m));return m.subscribe(y.set),y},PACKET_TYPES=Object.create(null);PACKET_TYPES.open="0",PACKET_TYPES.close="1",PACKET_TYPES.ping="2",PACKET_TYPES.pong="3",PACKET_TYPES.message="4",PACKET_TYPES.upgrade="5",PACKET_TYPES.noop="6";const PACKET_TYPES_REVERSE=Object.create(null);Object.keys(PACKET_TYPES).forEach(v=>{PACKET_TYPES_REVERSE[PACKET_TYPES[v]]=v});const ERROR_PACKET={type:"error",data:"parser error"},withNativeBlob$1=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",withNativeArrayBuffer$2=typeof ArrayBuffer=="function",isView$1=v=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(v):v&&v.buffer instanceof ArrayBuffer,encodePacket=({type:v,data:p},m,y)=>withNativeBlob$1&&p instanceof Blob?m?y(p):encodeBlobAsBase64(p,y):withNativeArrayBuffer$2&&(p instanceof ArrayBuffer||isView$1(p))?m?y(p):encodeBlobAsBase64(new Blob([p]),y):y(PACKET_TYPES[v]+(p||"")),encodeBlobAsBase64=(v,p)=>{const m=new FileReader;return m.onload=function(){const y=m.result.split(",")[1];p("b"+(y||""))},m.readAsDataURL(v)};function toArray(v){return v instanceof Uint8Array?v:v instanceof ArrayBuffer?new Uint8Array(v):new Uint8Array(v.buffer,v.byteOffset,v.byteLength)}let TEXT_ENCODER;function encodePacketToBinary(v,p){if(withNativeBlob$1&&v.data instanceof Blob)return v.data.arrayBuffer().then(toArray).then(p);if(withNativeArrayBuffer$2&&(v.data instanceof ArrayBuffer||isView$1(v.data)))return p(toArray(v.data));encodePacket(v,!1,m=>{TEXT_ENCODER||(TEXT_ENCODER=new TextEncoder),p(TEXT_ENCODER.encode(m))})}const chars$4="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lookup$6=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let v=0;v<chars$4.length;v++)lookup$6[chars$4.charCodeAt(v)]=v;const decode$4=v=>{let p=v.length*.75,m=v.length,y,w=0,S,k,M,O;v[v.length-1]==="="&&(p--,v[v.length-2]==="="&&p--);const R=new ArrayBuffer(p),D=new Uint8Array(R);for(y=0;y<m;y+=4)S=lookup$6[v.charCodeAt(y)],k=lookup$6[v.charCodeAt(y+1)],M=lookup$6[v.charCodeAt(y+2)],O=lookup$6[v.charCodeAt(y+3)],D[w++]=S<<2|k>>4,D[w++]=(k&15)<<4|M>>2,D[w++]=(M&3)<<6|O&63;return R},withNativeArrayBuffer$1=typeof ArrayBuffer=="function",decodePacket=(v,p)=>{if(typeof v!="string")return{type:"message",data:mapBinary(v,p)};const m=v.charAt(0);return m==="b"?{type:"message",data:decodeBase64Packet(v.substring(1),p)}:PACKET_TYPES_REVERSE[m]?v.length>1?{type:PACKET_TYPES_REVERSE[m],data:v.substring(1)}:{type:PACKET_TYPES_REVERSE[m]}:ERROR_PACKET},decodeBase64Packet=(v,p)=>{if(withNativeArrayBuffer$1){const m=decode$4(v);return mapBinary(m,p)}else return{base64:!0,data:v}},mapBinary=(v,p)=>{switch(p){case"blob":return v instanceof Blob?v:new Blob([v]);case"arraybuffer":default:return v instanceof ArrayBuffer?v:v.buffer}},SEPARATOR=String.fromCharCode(30),encodePayload=(v,p)=>{const m=v.length,y=new Array(m);let w=0;v.forEach((S,k)=>{encodePacket(S,!1,M=>{y[k]=M,++w===m&&p(y.join(SEPARATOR))})})},decodePayload=(v,p)=>{const m=v.split(SEPARATOR),y=[];for(let w=0;w<m.length;w++){const S=decodePacket(m[w],p);if(y.push(S),S.type==="error")break}return y};function createPacketEncoderStream(){return new TransformStream({transform(v,p){encodePacketToBinary(v,m=>{const y=m.length;let w;if(y<126)w=new Uint8Array(1),new DataView(w.buffer).setUint8(0,y);else if(y<65536){w=new Uint8Array(3);const S=new DataView(w.buffer);S.setUint8(0,126),S.setUint16(1,y)}else{w=new Uint8Array(9);const S=new DataView(w.buffer);S.setUint8(0,127),S.setBigUint64(1,BigInt(y))}v.data&&typeof v.data!="string"&&(w[0]|=128),p.enqueue(w),p.enqueue(m)})}})}let TEXT_DECODER;function totalLength(v){return v.reduce((p,m)=>p+m.length,0)}function concatChunks(v,p){if(v[0].length===p)return v.shift();const m=new Uint8Array(p);let y=0;for(let w=0;w<p;w++)m[w]=v[0][y++],y===v[0].length&&(v.shift(),y=0);return v.length&&y<v[0].length&&(v[0]=v[0].slice(y)),m}function createPacketDecoderStream(v,p){TEXT_DECODER||(TEXT_DECODER=new TextDecoder);const m=[];let y=0,w=-1,S=!1;return new TransformStream({transform(k,M){for(m.push(k);;){if(y===0){if(totalLength(m)<1)break;const O=concatChunks(m,1);S=(O[0]&128)===128,w=O[0]&127,w<126?y=3:w===126?y=1:y=2}else if(y===1){if(totalLength(m)<2)break;const O=concatChunks(m,2);w=new DataView(O.buffer,O.byteOffset,O.length).getUint16(0),y=3}else if(y===2){if(totalLength(m)<8)break;const O=concatChunks(m,8),R=new DataView(O.buffer,O.byteOffset,O.length),D=R.getUint32(0);if(D>Math.pow(2,53-32)-1){M.enqueue(ERROR_PACKET);break}w=D*Math.pow(2,32)+R.getUint32(4),y=3}else{if(totalLength(m)<w)break;const O=concatChunks(m,w);M.enqueue(decodePacket(S?O:TEXT_DECODER.decode(O),p)),y=0}if(w===0||w>v){M.enqueue(ERROR_PACKET);break}}}})}const protocol$1=4;function Emitter(v){if(v)return mixin(v)}function mixin(v){for(var p in Emitter.prototype)v[p]=Emitter.prototype[p];return v}Emitter.prototype.on=Emitter.prototype.addEventListener=function(v,p){return this._callbacks=this._callbacks||{},(this._callbacks["$"+v]=this._callbacks["$"+v]||[]).push(p),this},Emitter.prototype.once=function(v,p){function m(){this.off(v,m),p.apply(this,arguments)}return m.fn=p,this.on(v,m),this},Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(v,p){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var m=this._callbacks["$"+v];if(!m)return this;if(arguments.length==1)return delete this._callbacks["$"+v],this;for(var y,w=0;w<m.length;w++)if(y=m[w],y===p||y.fn===p){m.splice(w,1);break}return m.length===0&&delete this._callbacks["$"+v],this},Emitter.prototype.emit=function(v){this._callbacks=this._callbacks||{};for(var p=new Array(arguments.length-1),m=this._callbacks["$"+v],y=1;y<arguments.length;y++)p[y-1]=arguments[y];if(m){m=m.slice(0);for(var y=0,w=m.length;y<w;++y)m[y].apply(this,p)}return this},Emitter.prototype.emitReserved=Emitter.prototype.emit,Emitter.prototype.listeners=function(v){return this._callbacks=this._callbacks||{},this._callbacks["$"+v]||[]},Emitter.prototype.hasListeners=function(v){return!!this.listeners(v).length};const globalThisShim=(()=>typeof self<"u"?self:typeof window<"u"?window:Function("return this")())();function pick(v,...p){return p.reduce((m,y)=>(v.hasOwnProperty(y)&&(m[y]=v[y]),m),{})}const NATIVE_SET_TIMEOUT=globalThisShim.setTimeout,NATIVE_CLEAR_TIMEOUT=globalThisShim.clearTimeout;function installTimerFunctions(v,p){p.useNativeTimers?(v.setTimeoutFn=NATIVE_SET_TIMEOUT.bind(globalThisShim),v.clearTimeoutFn=NATIVE_CLEAR_TIMEOUT.bind(globalThisShim)):(v.setTimeoutFn=globalThisShim.setTimeout.bind(globalThisShim),v.clearTimeoutFn=globalThisShim.clearTimeout.bind(globalThisShim))}const BASE64_OVERHEAD=1.33;function byteLength(v){return typeof v=="string"?utf8Length(v):Math.ceil((v.byteLength||v.size)*BASE64_OVERHEAD)}function utf8Length(v){let p=0,m=0;for(let y=0,w=v.length;y<w;y++)p=v.charCodeAt(y),p<128?m+=1:p<2048?m+=2:p<55296||p>=57344?m+=3:(y++,m+=4);return m}function encode$4(v){let p="";for(let m in v)v.hasOwnProperty(m)&&(p.length&&(p+="&"),p+=encodeURIComponent(m)+"="+encodeURIComponent(v[m]));return p}function decode$3(v){let p={},m=v.split("&");for(let y=0,w=m.length;y<w;y++){let S=m[y].split("=");p[decodeURIComponent(S[0])]=decodeURIComponent(S[1])}return p}class TransportError extends Error{constructor(p,m,y){super(p),this.description=m,this.context=y,this.type="TransportError"}}class Transport extends Emitter{constructor(p){super(),this.writable=!1,installTimerFunctions(this,p),this.opts=p,this.query=p.query,this.socket=p.socket}onError(p,m,y){return super.emitReserved("error",new TransportError(p,m,y)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(p){this.readyState==="open"&&this.write(p)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(p){const m=decodePacket(p,this.socket.binaryType);this.onPacket(m)}onPacket(p){super.emitReserved("packet",p)}onClose(p){this.readyState="closed",super.emitReserved("close",p)}pause(p){}createUri(p,m={}){return p+"://"+this._hostname()+this._port()+this.opts.path+this._query(m)}_hostname(){const p=this.opts.hostname;return p.indexOf(":")===-1?p:"["+p+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(p){const m=encode$4(p);return m.length?"?"+m:""}}const alphabet$3="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),length=64,map={};let seed$1=0,i$4=0,prev;function encode$3(v){let p="";do p=alphabet$3[v%length]+p,v=Math.floor(v/length);while(v>0);return p}function yeast(){const v=encode$3(+new Date);return v!==prev?(seed$1=0,prev=v):v+"."+encode$3(seed$1++)}for(;i$4<length;i$4++)map[alphabet$3[i$4]]=i$4;let value$1=!1;try{value$1=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch(v){}const hasCORS=value$1;function XHR(v){const p=v.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!p||hasCORS))return new XMLHttpRequest}catch{}if(!p)try{return new globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}function createCookieJar(){}function empty(){}const hasXHR2=function(){return new XHR({xdomain:!1}).responseType!=null}();class Polling extends Transport{constructor(p){if(super(p),this.polling=!1,typeof location<"u"){const y=location.protocol==="https:";let w=location.port;w||(w=y?"443":"80"),this.xd=typeof location<"u"&&p.hostname!==location.hostname||w!==p.port}const m=p&&p.forceBase64;this.supportsBinary=hasXHR2&&!m,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(p){this.readyState="pausing";const m=()=>{this.readyState="paused",p()};if(this.polling||!this.writable){let y=0;this.polling&&(y++,this.once("pollComplete",function(){--y||m()})),this.writable||(y++,this.once("drain",function(){--y||m()}))}else m()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(p){const m=y=>{if(this.readyState==="opening"&&y.type==="open"&&this.onOpen(),y.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(y)};decodePayload(p,this.socket.binaryType).forEach(m),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const p=()=>{this.write([{type:"close"}])};this.readyState==="open"?p():this.once("open",p)}write(p){this.writable=!1,encodePayload(p,m=>{this.doWrite(m,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const p=this.opts.secure?"https":"http",m=this.query||{};return this.opts.timestampRequests!==!1&&(m[this.opts.timestampParam]=yeast()),!this.supportsBinary&&!m.sid&&(m.b64=1),this.createUri(p,m)}request(p={}){return Object.assign(p,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Request(this.uri(),p)}doWrite(p,m){const y=this.request({method:"POST",data:p});y.on("success",m),y.on("error",(w,S)=>{this.onError("xhr post error",w,S)})}doPoll(){const p=this.request();p.on("data",this.onData.bind(this)),p.on("error",(m,y)=>{this.onError("xhr poll error",m,y)}),this.pollXhr=p}}class Request extends Emitter{constructor(p,m){super(),installTimerFunctions(this,m),this.opts=m,this.method=m.method||"GET",this.uri=p,this.data=m.data!==void 0?m.data:null,this.create()}create(){var p;const m=pick(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");m.xdomain=!!this.opts.xd;const y=this.xhr=new XHR(m);try{y.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){y.setDisableHeaderCheck&&y.setDisableHeaderCheck(!0);for(let w in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(w)&&y.setRequestHeader(w,this.opts.extraHeaders[w])}}catch{}if(this.method==="POST")try{y.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{y.setRequestHeader("Accept","*/*")}catch{}(p=this.opts.cookieJar)===null||p===void 0||p.addCookies(y),"withCredentials"in y&&(y.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(y.timeout=this.opts.requestTimeout),y.onreadystatechange=()=>{var w;y.readyState===3&&((w=this.opts.cookieJar)===null||w===void 0||w.parseCookies(y)),y.readyState===4&&(y.status===200||y.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof y.status=="number"?y.status:0)},0))},y.send(this.data)}catch(w){this.setTimeoutFn(()=>{this.onError(w)},0);return}typeof document<"u"&&(this.index=Request.requestsCount++,Request.requests[this.index]=this)}onError(p){this.emitReserved("error",p,this.xhr),this.cleanup(!0)}cleanup(p){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=empty,p)try{this.xhr.abort()}catch{}typeof document<"u"&&delete Request.requests[this.index],this.xhr=null}}onLoad(){const p=this.xhr.responseText;p!==null&&(this.emitReserved("data",p),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}if(Request.requestsCount=0,Request.requests={},typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",unloadHandler);else if(typeof addEventListener=="function"){const v="onpagehide"in globalThisShim?"pagehide":"unload";addEventListener(v,unloadHandler,!1)}}function unloadHandler(){for(let v in Request.requests)Request.requests.hasOwnProperty(v)&&Request.requests[v].abort()}const nextTick=(()=>typeof Promise=="function"&&typeof Promise.resolve=="function"?p=>Promise.resolve().then(p):(p,m)=>m(p,0))(),WebSocket=globalThisShim.WebSocket||globalThisShim.MozWebSocket,usingBrowserWebSocket=!0,defaultBinaryType="arraybuffer",isReactNative=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class WS extends Transport{constructor(p){super(p),this.supportsBinary=!p.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const p=this.uri(),m=this.opts.protocols,y=isReactNative?{}:pick(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(y.headers=this.opts.extraHeaders);try{this.ws=usingBrowserWebSocket&&!isReactNative?m?new WebSocket(p,m):new WebSocket(p):new WebSocket(p,m,y)}catch(w){return this.emitReserved("error",w)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=p=>this.onClose({description:"websocket connection closed",context:p}),this.ws.onmessage=p=>this.onData(p.data),this.ws.onerror=p=>this.onError("websocket error",p)}write(p){this.writable=!1;for(let m=0;m<p.length;m++){const y=p[m],w=m===p.length-1;encodePacket(y,this.supportsBinary,S=>{const k={};try{usingBrowserWebSocket&&this.ws.send(S)}catch{}w&&nextTick(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const p=this.opts.secure?"wss":"ws",m=this.query||{};return this.opts.timestampRequests&&(m[this.opts.timestampParam]=yeast()),this.supportsBinary||(m.b64=1),this.createUri(p,m)}check(){return!!WebSocket}}class WT extends Transport{get name(){return"webtransport"}doOpen(){typeof WebTransport=="function"&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then(()=>{this.onClose()}).catch(p=>{this.onError("webtransport error",p)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(p=>{const m=createPacketDecoderStream(Number.MAX_SAFE_INTEGER,this.socket.binaryType),y=p.readable.pipeThrough(m).getReader(),w=createPacketEncoderStream();w.readable.pipeTo(p.writable),this.writer=w.writable.getWriter();const S=()=>{y.read().then(({done:M,value:O})=>{M||(this.onPacket(O),S())}).catch(M=>{})};S();const k={type:"open"};this.query.sid&&(k.data=`{"sid":"${this.query.sid}"}`),this.writer.write(k).then(()=>this.onOpen())})}))}write(p){this.writable=!1;for(let m=0;m<p.length;m++){const y=p[m],w=m===p.length-1;this.writer.write(y).then(()=>{w&&nextTick(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var p;(p=this.transport)===null||p===void 0||p.close()}}const transports={websocket:WS,webtransport:WT,polling:Polling},re=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,parts=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function parse$7(v){if(v.length>2e3)throw"URI too long";const p=v,m=v.indexOf("["),y=v.indexOf("]");m!=-1&&y!=-1&&(v=v.substring(0,m)+v.substring(m,y).replace(/:/g,";")+v.substring(y,v.length));let w=re.exec(v||""),S={},k=14;for(;k--;)S[parts[k]]=w[k]||"";return m!=-1&&y!=-1&&(S.source=p,S.host=S.host.substring(1,S.host.length-1).replace(/;/g,":"),S.authority=S.authority.replace("[","").replace("]","").replace(/;/g,":"),S.ipv6uri=!0),S.pathNames=pathNames(S,S.path),S.queryKey=queryKey(S,S.query),S}function pathNames(v,p){const m=/\/{2,9}/g,y=p.replace(m,"/").split("/");return(p.slice(0,1)=="/"||p.length===0)&&y.splice(0,1),p.slice(-1)=="/"&&y.splice(y.length-1,1),y}function queryKey(v,p){const m={};return p.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(y,w,S){w&&(m[w]=S)}),m}let Socket$1=class Pc extends Emitter{constructor(p,m={}){super(),this.binaryType=defaultBinaryType,this.writeBuffer=[],p&&typeof p=="object"&&(m=p,p=null),p?(p=parse$7(p),m.hostname=p.host,m.secure=p.protocol==="https"||p.protocol==="wss",m.port=p.port,p.query&&(m.query=p.query)):m.host&&(m.hostname=parse$7(m.host).host),installTimerFunctions(this,m),this.secure=m.secure!=null?m.secure:typeof location<"u"&&location.protocol==="https:",m.hostname&&!m.port&&(m.port=this.secure?"443":"80"),this.hostname=m.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=m.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=m.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},m),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=decode$3(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(p){const m=Object.assign({},this.opts.query);m.EIO=protocol$1,m.transport=p,this.id&&(m.sid=this.id);const y=Object.assign({},this.opts,{query:m,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[p]);return new transports[p](y)}open(){let p;if(this.opts.rememberUpgrade&&Pc.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)p="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else p=this.transports[0];this.readyState="opening";try{p=this.createTransport(p)}catch{this.transports.shift(),this.open();return}p.open(),this.setTransport(p)}setTransport(p){this.transport&&this.transport.removeAllListeners(),this.transport=p,p.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",m=>this.onClose("transport close",m))}probe(p){let m=this.createTransport(p),y=!1;Pc.priorWebsocketSuccess=!1;const w=()=>{y||(m.send([{type:"ping",data:"probe"}]),m.once("packet",H=>{if(!y)if(H.type==="pong"&&H.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",m),!m)return;Pc.priorWebsocketSuccess=m.name==="websocket",this.transport.pause(()=>{y||this.readyState!=="closed"&&(D(),this.setTransport(m),m.send([{type:"upgrade"}]),this.emitReserved("upgrade",m),m=null,this.upgrading=!1,this.flush())})}else{const N=new Error("probe error");N.transport=m.name,this.emitReserved("upgradeError",N)}}))};function S(){y||(y=!0,D(),m.close(),m=null)}const k=H=>{const N=new Error("probe error: "+H);N.transport=m.name,S(),this.emitReserved("upgradeError",N)};function M(){k("transport closed")}function O(){k("socket closed")}function R(H){m&&H.name!==m.name&&S()}const D=()=>{m.removeListener("open",w),m.removeListener("error",k),m.removeListener("close",M),this.off("close",O),this.off("upgrading",R)};m.once("open",w),m.once("error",k),m.once("close",M),this.once("close",O),this.once("upgrading",R),this.upgrades.indexOf("webtransport")!==-1&&p!=="webtransport"?this.setTimeoutFn(()=>{y||m.open()},200):m.open()}onOpen(){if(this.readyState="open",Pc.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let p=0;const m=this.upgrades.length;for(;p<m;p++)this.probe(this.upgrades[p])}}onPacket(p){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",p),this.emitReserved("heartbeat"),this.resetPingTimeout(),p.type){case"open":this.onHandshake(JSON.parse(p.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":const m=new Error("server error");m.code=p.data,this.onError(m);break;case"message":this.emitReserved("data",p.data),this.emitReserved("message",p.data);break}}onHandshake(p){this.emitReserved("handshake",p),this.id=p.sid,this.transport.query.sid=p.sid,this.upgrades=this.filterUpgrades(p.upgrades),this.pingInterval=p.pingInterval,this.pingTimeout=p.pingTimeout,this.maxPayload=p.maxPayload,this.onOpen(),this.readyState!=="closed"&&this.resetPingTimeout()}resetPingTimeout(){this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn(()=>{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const p=this.getWritablePackets();this.transport.send(p),this.prevBufferLen=p.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let m=1;for(let y=0;y<this.writeBuffer.length;y++){const w=this.writeBuffer[y].data;if(w&&(m+=byteLength(w)),y>0&&m>this.maxPayload)return this.writeBuffer.slice(0,y);m+=2}return this.writeBuffer}write(p,m,y){return this.sendPacket("message",p,m,y),this}send(p,m,y){return this.sendPacket("message",p,m,y),this}sendPacket(p,m,y,w){if(typeof m=="function"&&(w=m,m=void 0),typeof y=="function"&&(w=y,y=null),this.readyState==="closing"||this.readyState==="closed")return;y=y||{},y.compress=y.compress!==!1;const S={type:p,data:m,options:y};this.emitReserved("packetCreate",S),this.writeBuffer.push(S),w&&this.once("flush",w),this.flush()}close(){const p=()=>{this.onClose("forced close"),this.transport.close()},m=()=>{this.off("upgrade",m),this.off("upgradeError",m),p()},y=()=>{this.once("upgrade",m),this.once("upgradeError",m)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?y():p()}):this.upgrading?y():p()),this}onError(p){Pc.priorWebsocketSuccess=!1,this.emitReserved("error",p),this.onClose("transport error",p)}onClose(p,m){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",p,m),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(p){const m=[];let y=0;const w=p.length;for(;y<w;y++)~this.transports.indexOf(p[y])&&m.push(p[y]);return m}};Socket$1.protocol=protocol$1;function url(v,p="",m){let y=v;m=m||typeof location<"u"&&location,v==null&&(v=m.protocol+"//"+m.host),typeof v=="string"&&(v.charAt(0)==="/"&&(v.charAt(1)==="/"?v=m.protocol+v:v=m.host+v),/^(https?|wss?):\/\//.test(v)||(typeof m<"u"?v=m.protocol+"//"+v:v="https://"+v),y=parse$7(v)),y.port||(/^(http|ws)$/.test(y.protocol)?y.port="80":/^(http|ws)s$/.test(y.protocol)&&(y.port="443")),y.path=y.path||"/";const S=y.host.indexOf(":")!==-1?"["+y.host+"]":y.host;return y.id=y.protocol+"://"+S+":"+y.port+p,y.href=y.protocol+"://"+S+(m&&m.port===y.port?"":":"+y.port),y}const withNativeArrayBuffer=typeof ArrayBuffer=="function",isView=v=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(v):v.buffer instanceof ArrayBuffer,toString=Object.prototype.toString,withNativeBlob=typeof Blob=="function"||typeof Blob<"u"&&toString.call(Blob)==="[object BlobConstructor]",withNativeFile=typeof File=="function"||typeof File<"u"&&toString.call(File)==="[object FileConstructor]";function isBinary(v){return withNativeArrayBuffer&&(v instanceof ArrayBuffer||isView(v))||withNativeBlob&&v instanceof Blob||withNativeFile&&v instanceof File}function hasBinary(v,p){if(!v||typeof v!="object")return!1;if(Array.isArray(v)){for(let m=0,y=v.length;m<y;m++)if(hasBinary(v[m]))return!0;return!1}if(isBinary(v))return!0;if(v.toJSON&&typeof v.toJSON=="function"&&arguments.length===1)return hasBinary(v.toJSON(),!0);for(const m in v)if(Object.prototype.hasOwnProperty.call(v,m)&&hasBinary(v[m]))return!0;return!1}function deconstructPacket(v){const p=[],m=v.data,y=v;return y.data=_deconstructPacket(m,p),y.attachments=p.length,{packet:y,buffers:p}}function _deconstructPacket(v,p){if(!v)return v;if(isBinary(v)){const m={_placeholder:!0,num:p.length};return p.push(v),m}else if(Array.isArray(v)){const m=new Array(v.length);for(let y=0;y<v.length;y++)m[y]=_deconstructPacket(v[y],p);return m}else if(typeof v=="object"&&!(v instanceof Date)){const m={};for(const y in v)Object.prototype.hasOwnProperty.call(v,y)&&(m[y]=_deconstructPacket(v[y],p));return m}return v}function reconstructPacket(v,p){return v.data=_reconstructPacket(v.data,p),delete v.attachments,v}function _reconstructPacket(v,p){if(!v)return v;if(v&&v._placeholder===!0){if(typeof v.num=="number"&&v.num>=0&&v.num<p.length)return p[v.num];throw new Error("illegal attachments")}else if(Array.isArray(v))for(let m=0;m<v.length;m++)v[m]=_reconstructPacket(v[m],p);else if(typeof v=="object")for(const m in v)Object.prototype.hasOwnProperty.call(v,m)&&(v[m]=_reconstructPacket(v[m],p));return v}const RESERVED_EVENTS$1=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],protocol=5;var PacketType;(function(v){v[v.CONNECT=0]="CONNECT",v[v.DISCONNECT=1]="DISCONNECT",v[v.EVENT=2]="EVENT",v[v.ACK=3]="ACK",v[v.CONNECT_ERROR=4]="CONNECT_ERROR",v[v.BINARY_EVENT=5]="BINARY_EVENT",v[v.BINARY_ACK=6]="BINARY_ACK"})(PacketType||(PacketType={}));class Encoder{constructor(p){this.replacer=p}encode(p){return(p.type===PacketType.EVENT||p.type===PacketType.ACK)&&hasBinary(p)?this.encodeAsBinary({type:p.type===PacketType.EVENT?PacketType.BINARY_EVENT:PacketType.BINARY_ACK,nsp:p.nsp,data:p.data,id:p.id}):[this.encodeAsString(p)]}encodeAsString(p){let m=""+p.type;return(p.type===PacketType.BINARY_EVENT||p.type===PacketType.BINARY_ACK)&&(m+=p.attachments+"-"),p.nsp&&p.nsp!=="/"&&(m+=p.nsp+","),p.id!=null&&(m+=p.id),p.data!=null&&(m+=JSON.stringify(p.data,this.replacer)),m}encodeAsBinary(p){const m=deconstructPacket(p),y=this.encodeAsString(m.packet),w=m.buffers;return w.unshift(y),w}}function isObject$1(v){return Object.prototype.toString.call(v)==="[object Object]"}class Decoder extends Emitter{constructor(p){super(),this.reviver=p}add(p){let m;if(typeof p=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");m=this.decodeString(p);const y=m.type===PacketType.BINARY_EVENT;y||m.type===PacketType.BINARY_ACK?(m.type=y?PacketType.EVENT:PacketType.ACK,this.reconstructor=new BinaryReconstructor(m),m.attachments===0&&super.emitReserved("decoded",m)):super.emitReserved("decoded",m)}else if(isBinary(p)||p.base64)if(this.reconstructor)m=this.reconstructor.takeBinaryData(p),m&&(this.reconstructor=null,super.emitReserved("decoded",m));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+p)}decodeString(p){let m=0;const y={type:Number(p.charAt(0))};if(PacketType[y.type]===void 0)throw new Error("unknown packet type "+y.type);if(y.type===PacketType.BINARY_EVENT||y.type===PacketType.BINARY_ACK){const S=m+1;for(;p.charAt(++m)!=="-"&&m!=p.length;);const k=p.substring(S,m);if(k!=Number(k)||p.charAt(m)!=="-")throw new Error("Illegal attachments");y.attachments=Number(k)}if(p.charAt(m+1)==="/"){const S=m+1;for(;++m&&!(p.charAt(m)===","||m===p.length););y.nsp=p.substring(S,m)}else y.nsp="/";const w=p.charAt(m+1);if(w!==""&&Number(w)==w){const S=m+1;for(;++m;){const k=p.charAt(m);if(k==null||Number(k)!=k){--m;break}if(m===p.length)break}y.id=Number(p.substring(S,m+1))}if(p.charAt(++m)){const S=this.tryParse(p.substr(m));if(Decoder.isPayloadValid(y.type,S))y.data=S;else throw new Error("invalid payload")}return y}tryParse(p){try{return JSON.parse(p,this.reviver)}catch{return!1}}static isPayloadValid(p,m){switch(p){case PacketType.CONNECT:return isObject$1(m);case PacketType.DISCONNECT:return m===void 0;case PacketType.CONNECT_ERROR:return typeof m=="string"||isObject$1(m);case PacketType.EVENT:case PacketType.BINARY_EVENT:return Array.isArray(m)&&(typeof m[0]=="number"||typeof m[0]=="string"&&RESERVED_EVENTS$1.indexOf(m[0])===-1);case PacketType.ACK:case PacketType.BINARY_ACK:return Array.isArray(m)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class BinaryReconstructor{constructor(p){this.packet=p,this.buffers=[],this.reconPack=p}takeBinaryData(p){if(this.buffers.push(p),this.buffers.length===this.reconPack.attachments){const m=reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),m}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const parser$1=Object.freeze(Object.defineProperty({__proto__:null,Decoder,Encoder,get PacketType(){return PacketType},protocol},Symbol.toStringTag,{value:"Module"}));function on(v,p,m){return v.on(p,m),function(){v.off(p,m)}}const RESERVED_EVENTS=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Socket extends Emitter{constructor(p,m,y){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=p,this.nsp=m,y&&y.auth&&(this.auth=y.auth),this._opts=Object.assign({},y),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const p=this.io;this.subs=[on(p,"open",this.onopen.bind(this)),on(p,"packet",this.onpacket.bind(this)),on(p,"error",this.onerror.bind(this)),on(p,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...p){return p.unshift("message"),this.emit.apply(this,p),this}emit(p,...m){if(RESERVED_EVENTS.hasOwnProperty(p))throw new Error('"'+p.toString()+'" is a reserved event name');if(m.unshift(p),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(m),this;const y={type:PacketType.EVENT,data:m};if(y.options={},y.options.compress=this.flags.compress!==!1,typeof m[m.length-1]=="function"){const k=this.ids++,M=m.pop();this._registerAckCallback(k,M),y.id=k}const w=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!w||!this.connected)||(this.connected?(this.notifyOutgoingListeners(y),this.packet(y)):this.sendBuffer.push(y)),this.flags={},this}_registerAckCallback(p,m){var y;const w=(y=this.flags.timeout)!==null&&y!==void 0?y:this._opts.ackTimeout;if(w===void 0){this.acks[p]=m;return}const S=this.io.setTimeoutFn(()=>{delete this.acks[p];for(let M=0;M<this.sendBuffer.length;M++)this.sendBuffer[M].id===p&&this.sendBuffer.splice(M,1);m.call(this,new Error("operation has timed out"))},w),k=(...M)=>{this.io.clearTimeoutFn(S),m.apply(this,M)};k.withError=!0,this.acks[p]=k}emitWithAck(p,...m){return new Promise((y,w)=>{const S=(k,M)=>k?w(k):y(M);S.withError=!0,m.push(S),this.emit(p,...m)})}_addToQueue(p){let m;typeof p[p.length-1]=="function"&&(m=p.pop());const y={id:this._queueSeq++,tryCount:0,pending:!1,args:p,flags:Object.assign({fromQueue:!0},this.flags)};p.push((w,...S)=>y!==this._queue[0]?void 0:(w!==null?y.tryCount>this._opts.retries&&(this._queue.shift(),m&&m(w)):(this._queue.shift(),m&&m(null,...S)),y.pending=!1,this._drainQueue())),this._queue.push(y),this._drainQueue()}_drainQueue(p=!1){if(!this.connected||this._queue.length===0)return;const m=this._queue[0];m.pending&&!p||(m.pending=!0,m.tryCount++,this.flags=m.flags,this.emit.apply(this,m.args))}packet(p){p.nsp=this.nsp,this.io._packet(p)}onopen(){typeof this.auth=="function"?this.auth(p=>{this._sendConnectPacket(p)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(p){this.packet({type:PacketType.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},p):p})}onerror(p){this.connected||this.emitReserved("connect_error",p)}onclose(p,m){this.connected=!1,delete this.id,this.emitReserved("disconnect",p,m),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(p=>{if(!this.sendBuffer.some(y=>String(y.id)===p)){const y=this.acks[p];delete this.acks[p],y.withError&&y.call(this,new Error("socket has been disconnected"))}})}onpacket(p){if(p.nsp===this.nsp)switch(p.type){case PacketType.CONNECT:p.data&&p.data.sid?this.onconnect(p.data.sid,p.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case PacketType.EVENT:case PacketType.BINARY_EVENT:this.onevent(p);break;case PacketType.ACK:case PacketType.BINARY_ACK:this.onack(p);break;case PacketType.DISCONNECT:this.ondisconnect();break;case PacketType.CONNECT_ERROR:this.destroy();const y=new Error(p.data.message);y.data=p.data.data,this.emitReserved("connect_error",y);break}}onevent(p){const m=p.data||[];p.id!=null&&m.push(this.ack(p.id)),this.connected?this.emitEvent(m):this.receiveBuffer.push(Object.freeze(m))}emitEvent(p){if(this._anyListeners&&this._anyListeners.length){const m=this._anyListeners.slice();for(const y of m)y.apply(this,p)}super.emit.apply(this,p),this._pid&&p.length&&typeof p[p.length-1]=="string"&&(this._lastOffset=p[p.length-1])}ack(p){const m=this;let y=!1;return function(...w){y||(y=!0,m.packet({type:PacketType.ACK,id:p,data:w}))}}onack(p){const m=this.acks[p.id];typeof m=="function"&&(delete this.acks[p.id],m.withError&&p.data.unshift(null),m.apply(this,p.data))}onconnect(p,m){this.id=p,this.recovered=m&&this._pid===m,this._pid=m,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(p=>this.emitEvent(p)),this.receiveBuffer=[],this.sendBuffer.forEach(p=>{this.notifyOutgoingListeners(p),this.packet(p)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(p=>p()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:PacketType.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(p){return this.flags.compress=p,this}get volatile(){return this.flags.volatile=!0,this}timeout(p){return this.flags.timeout=p,this}onAny(p){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(p),this}prependAny(p){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(p),this}offAny(p){if(!this._anyListeners)return this;if(p){const m=this._anyListeners;for(let y=0;y<m.length;y++)if(p===m[y])return m.splice(y,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(p){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(p),this}prependAnyOutgoing(p){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(p),this}offAnyOutgoing(p){if(!this._anyOutgoingListeners)return this;if(p){const m=this._anyOutgoingListeners;for(let y=0;y<m.length;y++)if(p===m[y])return m.splice(y,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(p){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const m=this._anyOutgoingListeners.slice();for(const y of m)y.apply(this,p.data)}}}function Backoff(v){v=v||{},this.ms=v.min||100,this.max=v.max||1e4,this.factor=v.factor||2,this.jitter=v.jitter>0&&v.jitter<=1?v.jitter:0,this.attempts=0}Backoff.prototype.duration=function(){var v=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var p=Math.random(),m=Math.floor(p*this.jitter*v);v=Math.floor(p*10)&1?v+m:v-m}return Math.min(v,this.max)|0},Backoff.prototype.reset=function(){this.attempts=0},Backoff.prototype.setMin=function(v){this.ms=v},Backoff.prototype.setMax=function(v){this.max=v},Backoff.prototype.setJitter=function(v){this.jitter=v};class Manager extends Emitter{constructor(p,m){var y;super(),this.nsps={},this.subs=[],p&&typeof p=="object"&&(m=p,p=void 0),m=m||{},m.path=m.path||"/socket.io",this.opts=m,installTimerFunctions(this,m),this.reconnection(m.reconnection!==!1),this.reconnectionAttempts(m.reconnectionAttempts||1/0),this.reconnectionDelay(m.reconnectionDelay||1e3),this.reconnectionDelayMax(m.reconnectionDelayMax||5e3),this.randomizationFactor((y=m.randomizationFactor)!==null&&y!==void 0?y:.5),this.backoff=new Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(m.timeout==null?2e4:m.timeout),this._readyState="closed",this.uri=p;const w=m.parser||parser$1;this.encoder=new w.Encoder,this.decoder=new w.Decoder,this._autoConnect=m.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(p){return arguments.length?(this._reconnection=!!p,this):this._reconnection}reconnectionAttempts(p){return p===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=p,this)}reconnectionDelay(p){var m;return p===void 0?this._reconnectionDelay:(this._reconnectionDelay=p,(m=this.backoff)===null||m===void 0||m.setMin(p),this)}randomizationFactor(p){var m;return p===void 0?this._randomizationFactor:(this._randomizationFactor=p,(m=this.backoff)===null||m===void 0||m.setJitter(p),this)}reconnectionDelayMax(p){var m;return p===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=p,(m=this.backoff)===null||m===void 0||m.setMax(p),this)}timeout(p){return arguments.length?(this._timeout=p,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(p){if(~this._readyState.indexOf("open"))return this;this.engine=new Socket$1(this.uri,this.opts);const m=this.engine,y=this;this._readyState="opening",this.skipReconnect=!1;const w=on(m,"open",function(){y.onopen(),p&&p()}),S=M=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",M),p?p(M):this.maybeReconnectOnOpen()},k=on(m,"error",S);if(this._timeout!==!1){const M=this._timeout,O=this.setTimeoutFn(()=>{w(),S(new Error("timeout")),m.close()},M);this.opts.autoUnref&&O.unref(),this.subs.push(()=>{this.clearTimeoutFn(O)})}return this.subs.push(w),this.subs.push(k),this}connect(p){return this.open(p)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const p=this.engine;this.subs.push(on(p,"ping",this.onping.bind(this)),on(p,"data",this.ondata.bind(this)),on(p,"error",this.onerror.bind(this)),on(p,"close",this.onclose.bind(this)),on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(p){try{this.decoder.add(p)}catch(m){this.onclose("parse error",m)}}ondecoded(p){nextTick(()=>{this.emitReserved("packet",p)},this.setTimeoutFn)}onerror(p){this.emitReserved("error",p)}socket(p,m){let y=this.nsps[p];return y?this._autoConnect&&!y.active&&y.connect():(y=new Socket(this,p,m),this.nsps[p]=y),y}_destroy(p){const m=Object.keys(this.nsps);for(const y of m)if(this.nsps[y].active)return;this._close()}_packet(p){const m=this.encoder.encode(p);for(let y=0;y<m.length;y++)this.engine.write(m[y],p.options)}cleanup(){this.subs.forEach(p=>p()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(p,m){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",p,m),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const p=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const m=this.backoff.duration();this._reconnecting=!0;const y=this.setTimeoutFn(()=>{p.skipReconnect||(this.emitReserved("reconnect_attempt",p.backoff.attempts),!p.skipReconnect&&p.open(w=>{w?(p._reconnecting=!1,p.reconnect(),this.emitReserved("reconnect_error",w)):p.onreconnect()}))},m);this.opts.autoUnref&&y.unref(),this.subs.push(()=>{this.clearTimeoutFn(y)})}}onreconnect(){const p=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",p)}}const cache={};function lookup$5(v,p){typeof v=="object"&&(p=v,v=void 0),p=p||{};const m=url(v,p.path||"/socket.io"),y=m.source,w=m.id,S=m.path,k=cache[w]&&S in cache[w].nsps,M=p.forceNew||p["force new connection"]||p.multiplex===!1||k;let O;return M?O=new Manager(y,p):(cache[w]||(cache[w]=new Manager(y,p)),O=cache[w]),m.query&&!p.query&&(p.query=m.queryKey),O.socket(m.path,p)}Object.assign(lookup$5,{Manager,Socket,io:lookup$5,connect:lookup$5});const DefaultOptions={heartbeat:!0},createWebsocket=(v,p=DefaultOptions)=>{if(!v)throw"A websocket path must be provided";const{heartbeat:m}={...DefaultOptions,...p},y=location.protocol==="https:",w=y?"wss:":"ws:",S=location.hostname,k=location.port||(y?443:80);let M=lookup$5(`${w}//${S}:${k}`,{path:v,reconnectionAttempts:3,reconnectionDelay:5e3,reconnectionDelayMax:5e3,timeout:4e3,transports:["websocket"]}),O;return m&&(O=setInterval(()=>{M.emit(SocketEvent.Heartbeat)},SocketSessionTTL*500)),M.on("disconnect",()=>{clearInterval(O)}),M.onOther=(R,D)=>{M.on(R,H=>{(H==null?void 0:H.apiSessionId)!==APISessionID&&D(H)})},M},extractFileNameRegex=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;async function downloadStream(v){const p=await v.blob(),m=v.headers.get("Content-Disposition"),w=extractFileNameRegex.exec(m)[1].replace(/['"]/g,""),S=new Blob([p]),k=URL.createObjectURL(S),M=document.createElement("a");M.href=k,M.download=w,M.click(),URL.revokeObjectURL(k)}const shouldDisplaySetting=(v,p)=>{let m=p.dependsOn;return m&&!Array.isArray(m)&&(m=[m]),m!=null&&m.length?m.every(y=>{let w=y,S=null,k=!!y.invert;if(typeof y=="object"&&(w=y.setting,S=y.value),!w)return!1;Array.isArray(S)||(S=[S]);const M=deepGet$1(v,w);return S.some(R=>R==null?M!=null&&M!==!1&&M!=="":R===M)!==k}):!0},columnTypeManyTypeOverrides={[FieldType.DATETIME]:FieldType.STRING,[FieldType.BOOLEAN]:FieldType.STRING,[FieldType.SIGNATURE_SINGLE]:FieldType.ATTACHMENTS},columnTypeManyParser={[FieldType.DATETIME]:(v,p)=>{function m(y){const{timeOnly:w,dateOnly:S}=p||{},k=!S,M=parseDate(y,{enableTime:k});return getDateDisplayValue(M,{enableTime:k,timeOnly:w})}return v.map(y=>m(y))},[FieldType.BOOLEAN]:v=>v.map(p=>!!p),[FieldType.BB_REFERENCE_SINGLE]:v=>[...new Map(v.map(p=>[p._id,p])).values()],[FieldType.BB_REFERENCE]:v=>[...new Map(v.map(p=>[p._id,p])).values()],[FieldType.ARRAY]:v=>Array.from(new Set(v))};function enrichSchemaWithRelColumns(v){return Object.keys(v).reduce((m,y)=>{const w=v[y];if(m[y]=w,w.visible!==!1&&isRelationshipField(w)&&w.columns){const S=(w==null?void 0:w.relationshipType)===RelationshipType.ONE_TO_MANY;for(const k of Object.keys(w.columns)){const M=w.columns[k];if(!M.visible)continue;const O=`${w.name}.${k}`;m[O]={...M,type:M.type,name:O,related:{field:y,subField:k},cellRenderType:!S&&columnTypeManyTypeOverrides[M.type]||M.type}}}return m},{})}function getRelatedTableValues(v,p,m){var S,k,M,O;const y=isRelationshipField(m)&&(m==null?void 0:m.relationshipType)===RelationshipType.ONE_TO_MANY;let w="";if(y)w=(k=(S=v[p.related.field])==null?void 0:S[0])==null?void 0:k[p.related.subField];else{const R=columnTypeManyParser[p.type]||(N=>N),D=(O=(M=v[p.related.field])==null?void 0:M.flatMap(N=>N[p.related.subField]))==null?void 0:O.filter(N=>N!=null),H=R(D||[],p);w=H,[FieldType.STRING,FieldType.NUMBER,FieldType.BIGINT,FieldType.BOOLEAN,FieldType.DATETIME,FieldType.LONGFORM,FieldType.BARCODEQR].includes(p.type)&&(w=H==null?void 0:H.join(", "))}return w}function canBeDisplayColumn(v){return!(!canBeDisplayColumn$1(v.type)||v.related)}function canBeSortColumn(v){return v.calculationType?!0:!(!canBeSortColumn$1(v.type)||v.related)}const getSettingsDefinition=v=>{var m;if(!v)return[];let p=[];return(m=v.settings)==null||m.forEach(y=>{var w;y.section?p=p.concat((w=y.settings||[])==null?void 0:w.map(S=>({...S,sectionDependsOn:y.dependsOn}))):p.push(y)}),p};function requiredValidator(v){return v!=null&&v!==""||"This field is required"}function createValidationStore(v,...p){let m=!1;const y=writable(v||""),w=derived(y,()=>m||(m=!0,!1)),S=derived([y,w],([k,M])=>M&&validate(k,p));return[y,S,w]}function validate(v,p){const m=p.find(y=>y(v)!==!0);return m&&m(v)}const NumberFormatter=Intl.NumberFormat(),formatNumber=v=>{const p=typeof v;if(p!=="string"&&p!=="number"||p==="string"&&!v.trim().length)return"";const m=NumberFormatter.format(v);return m==="NaN"?stringifyValue(v):m},stringifyValue=v=>{if(v==null)return"";if(typeof v=="string")return v;if(typeof v.toString=="function")return stringifyValue(v.toString());try{return JSON.stringify(v)}catch{return""}},stringifyField=(v,p)=>{switch(p.type){case FieldType.AUTO:return"";case FieldType.SIGNATURE_SINGLE:return v?"Yes":"No";case FieldType.ATTACHMENT_SINGLE:case FieldType.ATTACHMENTS:return v?(Array.isArray(v)?v:[v]).map(y=>y.name).filter(y=>!!y).join(", "):"";case FieldType.LINK:return v?(Array.isArray(v)?v:[v]).map(y=>y.primaryDisplay).filter(y=>!!y).join(", "):"";case FieldType.JSON:return v?JSON.stringify(v):"";case FieldType.BB_REFERENCE:case FieldType.BB_REFERENCE_SINGLE:{if(p.subtype!==BBReferenceFieldSubType.USERS&&p.subtype!==BBReferenceFieldSubType.USER||!v)return"";const m=Array.isArray(v)?v:[v];return(m==null?void 0:m.map(y=>y.primaryDisplay).join(", "))||""}case FieldType.ARRAY:return(v==null?void 0:v.join(", "))||"";case FieldType.BOOLEAN:return capitalise((v==null?void 0:v.toString())||"false");case FieldType.DATETIME:return getDateDisplayValue(v,{enableTime:!p.dateOnly,timeOnly:p.timeOnly});case FieldType.NUMBER:return formatNumber(v);case FieldType.STRING:case FieldType.LONGFORM:case FieldType.BIGINT:case FieldType.OPTIONS:case FieldType.AI:case FieldType.BARCODEQR:return v||"";case FieldType.FORMULA:default:return stringifyValue(v)}},stringifyRow=(v,p)=>{let m={};return Object.entries(p).forEach(([y,w])=>{m[y]=stringifyField(deepGet(v,y),w)}),m},SESSIONS_INVALIDATED_KEY="bb-sessions-invalidated";function popNumSessionsInvalidated(){const v=parseInt(localStorage.getItem(SESSIONS_INVALIDATED_KEY)||"0",10);return localStorage.removeItem(SESSIONS_INVALIDATED_KEY),v}function invalidationMessage(v){return`You've been logged out of ${v} other ${v===1?"session":"sessions"} because users are only allowed ${MAX_SESSIONS_PER_USER} active sessions at any one time.`}const{buildQuery,limit:queryLimit,runQuery,sort}=QueryUtils;class BaseDataFetch{constructor(p){Fi(this,"API");Fi(this,"features");Fi(this,"options");Fi(this,"store");Fi(this,"derivedStore");if(this.features={supportsSearch:!1,supportsSort:!1,supportsPagination:!1},this.options={datasource:p.datasource,limit:10,filter:null,query:p.query,sortColumn:null,sortOrder:SortOrder.ASCENDING,sortType:null,paginate:!0,clientSideSearching:!0,clientSideSorting:!0,clientSideLimiting:!0},this.store=writable({rows:[],info:null,schema:null,loading:!1,loaded:!1,query:p.query,pageNumber:0,cursor:null,cursors:[],resetKey:Math.random().toString(),error:null}),this.API=p==null?void 0:p.API,this.options={...this.options,...p},!this.API)throw"An API client is required for fetching data";if(this.getData=this.getData.bind(this),this.getPage=this.getPage.bind(this),this.getInitialData=this.getInitialData.bind(this),this.determineFeatureFlags=this.determineFeatureFlags.bind(this),this.refresh=this.refresh.bind(this),this.update=this.update.bind(this),this.hasNextPage=this.hasNextPage.bind(this),this.hasPrevPage=this.hasPrevPage.bind(this),this.nextPage=this.nextPage.bind(this),this.prevPage=this.prevPage.bind(this),this.derivedStore=derived(this.store,m=>({...m,...this.features,hasNextPage:this.hasNextPage(m),hasPrevPage:this.hasPrevPage(m)})),!this.options.datasource){this.store.update(m=>({...m,loaded:!0}));return}}get subscribe(){return this.derivedStore.subscribe}getDefaultSortColumn(p,m){return p!=null&&p.primaryDisplay&&m[p.primaryDisplay]?p.primaryDisplay:Object.keys(m)[0]}async getInitialData(){const{filter:p,paginate:m}=this.options,y=await this.getDefinition(),w=await this.determineFeatureFlags();this.features={supportsSearch:!!(w!=null&&w.supportsSearch),supportsSort:!!(w!=null&&w.supportsSort),supportsPagination:m&&!!(w!=null&&w.supportsPagination)};let S=this.getSchema(y);if(!S)return;if(S=this.enrichSchema(S),this.options.sortColumn&&!S[this.options.sortColumn]&&(this.options.sortColumn=null),this.options.sortColumn||(this.options.sortColumn=this.getDefaultSortColumn(y,S)),!this.options.sortColumn)this.options.sortOrder=SortOrder.ASCENDING,this.options.sortType=null;else{this.options.sortType=SortType.STRING;const O=S==null?void 0:S[this.options.sortColumn];((O==null?void 0:O.type)===FieldType.NUMBER||(O==null?void 0:O.type)===FieldType.BIGINT||"calculationType"in O&&(O!=null&&O.calculationType))&&(this.options.sortType=SortType.NUMBER),this.options.sortOrder?this.options.sortOrder=this.options.sortOrder.toLowerCase():this.options.sortOrder=SortOrder.ASCENDING}let k=this.options.query;k||(k=buildQuery(p??void 0)),this.store.update(O=>({...O,definition:y,schema:S,query:k,loading:!0,cursors:[],cursor:null}));const M=await this.getPage();this.store.update(O=>({...O,loading:!1,loaded:!0,pageNumber:0,rows:M.rows,info:M.info,cursors:m&&M.hasNextPage?[null,M.cursor]:[null],error:M.error,resetKey:Math.random().toString()}))}async getPage(){const{sortColumn:p,sortOrder:m,sortType:y,limit:w,clientSideSearching:S,clientSideSorting:k,clientSideLimiting:M}=this.options,{query:O}=get_store_value(this.store);let{rows:R,info:D,hasNextPage:H,cursor:N,error:W}=await this.getData();return!this.features.supportsSearch&&S&&(R=runQuery(R,O)),!this.features.supportsSort&&k&&y&&(R=sort(R,p,m,y)),!this.features.supportsPagination&&M&&(R=queryLimit(R,w)),{rows:R,info:D,hasNextPage:H,cursor:N,error:W}}getSchema(p){return(p==null?void 0:p.schema)??void 0}enrichSchema(p){let m={};for(const w of Object.keys(p)){const S=p[w];if(S.type===FieldType.JSON){const k=convertJSONSchemaToTableSchema(S,{squashObjects:!0});if(k)for(const M of Object.keys(k))m[`${w}.${M}`]={type:k[M].type,nestedJSON:!0}}}let y={};return Object.entries({...p,...m}).forEach(([w,S])=>{typeof S=="string"?y[w]={type:S,name:w}:y[w]={...S,type:S.type,name:w}}),y}async determineFeatureFlags(){return{supportsSearch:!1,supportsSort:!1,supportsPagination:!1}}async update(p){let m=!1;for(const[y,w]of Object.entries(p||{})){const S=this.options[y]??null;if(JSON.stringify(w??null)!==JSON.stringify(S)){m=!0;break}}m&&(this.options={...this.options,...fp$1.cloneDeep(p)},await this.getInitialData())}async refresh(){if(get_store_value(this.store).loading)return;this.store.update(O=>({...O,loading:!0}));const{rows:p,info:m,error:y,cursor:w}=await this.getPage();let{cursors:S}=get_store_value(this.store);const{pageNumber:k}=get_store_value(this.store);if(!p.length&&k>0)return this.store.update(O=>({...O,loading:!1,cursors:S.slice(0,k)})),await this.prevPage();S[k+1]!=w&&(S=S.slice(0,k+1),S[k+1]=w),this.store.update(O=>({...O,rows:p,info:m,loading:!1,error:y,cursors:S}))}hasNextPage(p){return p.cursors[p.pageNumber+1]!=null}hasPrevPage(p){return p.pageNumber>0}async nextPage(){const p=get_store_value(this.derivedStore);if(p.loading||!this.options.paginate||!p.hasNextPage)return;const m=p.cursors[p.pageNumber+1];this.store.update(O=>({...O,loading:!0,cursor:m,pageNumber:O.pageNumber+1}));const{rows:y,info:w,hasNextPage:S,cursor:k,error:M}=await this.getPage();this.store.update(O=>{let{cursors:R,pageNumber:D}=O;return S&&(R[D+1]=k),{...O,rows:y,info:w,cursors:R,loading:!1,error:M}})}async prevPage(){const p=get_store_value(this.derivedStore);if(p.loading||!this.options.paginate||!p.hasPrevPage)return;const m=p.cursors[p.pageNumber-1];this.store.update(k=>({...k,loading:!0,cursor:m,pageNumber:k.pageNumber-1}));const{rows:y,info:w,error:S}=await this.getPage();this.store.update(k=>({...k,rows:y,info:w,loading:!1,error:S}))}}class TableFetch extends BaseDataFetch{async determineFeatureFlags(){return{supportsSearch:!0,supportsSort:!0,supportsPagination:!0}}async getDefinition(){const{datasource:p}=this.options;if(!(p!=null&&p.tableId))return null;try{return await this.API.fetchTableDefinition(p.tableId)}catch(m){return this.store.update(y=>({...y,error:m})),null}}async getData(){const{datasource:p,limit:m,sortColumn:y,sortOrder:w,sortType:S,paginate:k}=this.options,{tableId:M}=p,{cursor:O,query:R}=get_store_value(this.store);try{const D=await this.API.searchTable(M,{query:R,limit:m,sort:y,sortOrder:w??SortOrder.ASCENDING,sortType:S,paginate:k,bookmark:O});return{rows:(D==null?void 0:D.rows)||[],hasNextPage:(D==null?void 0:D.hasNextPage)||!1,cursor:(D==null?void 0:D.bookmark)||null}}catch(D){return{rows:[],hasNextPage:!1,error:D}}}}class ViewFetch extends BaseDataFetch{async getDefinition(){const{datasource:p}=this.options;if(!(p!=null&&p.tableId))return null;try{return await this.API.fetchTableDefinition(p.tableId)}catch(m){return this.store.update(y=>({...y,error:m})),null}}getSchema(p){var y,w;const{datasource:m}=this.options;return(w=(y=p==null?void 0:p.views)==null?void 0:y[m==null?void 0:m.name])==null?void 0:w.schema}async getData(){const{datasource:p}=this.options;try{return{rows:await this.API.fetchViewData(p.name,{calculation:p.calculation,field:p.field,groupBy:p.groupBy,tableId:p.tableId})||[]}}catch(m){return console.error(m,{datasource:p}),{rows:[]}}}}class ViewV2Fetch extends BaseDataFetch{async determineFeatureFlags(){return{supportsSearch:!0,supportsSort:!0,supportsPagination:!0}}async getDefinition(){const{datasource:p}=this.options;try{const m=await this.API.viewV2.fetchDefinition(p.id);return m==null?void 0:m.data}catch(m){return this.store.update(y=>({...y,error:m})),null}}getDefaultSortColumn(){return null}async getData(){var D;const{datasource:p,limit:m,sortColumn:y,sortOrder:w,sortType:S,paginate:k}=this.options,{cursor:M,query:O,definition:R}=get_store_value(this.store);if((R==null?void 0:R.type)===ViewV2Type.CALCULATION&&!Object.values(R.schema||{}).some(isCalculationField))return{rows:[],hasNextPage:!1,cursor:null,error:null};!y&&((D=R==null?void 0:R.sort)!=null&&D.field)&&(this.options.sortColumn=R.sort.field,this.options.sortOrder=R.sort.order||SortOrder.ASCENDING);try{const H={query:O,paginate:k,limit:m,bookmark:M,sort:y,sortOrder:w,sortType:S};if(k){const N=await this.API.viewV2.fetch(p.id,{...H,paginate:k});return{rows:(N==null?void 0:N.rows)||[],hasNextPage:(N==null?void 0:N.hasNextPage)||!1,cursor:(N==null?void 0:N.bookmark)||null}}else{const N=await this.API.viewV2.fetch(p.id,{...H,paginate:k});return{rows:(N==null?void 0:N.rows)||[],hasNextPage:!1,cursor:null}}}catch(H){return{rows:[],hasNextPage:!1,cursor:null,error:H}}}}class QueryFetch extends BaseDataFetch{async determineFeatureFlags(){var y,w,S,k,M,O;const p=await this.getDefinition();return{supportsPagination:!!((w=(y=p==null?void 0:p.fields)==null?void 0:y.pagination)!=null&&w.type)&&!!((k=(S=p==null?void 0:p.fields)==null?void 0:S.pagination)!=null&&k.location)&&!!((O=(M=p==null?void 0:p.fields)==null?void 0:M.pagination)!=null&&O.pageParam)}}async getDefinition(){const{datasource:p}=this.options;if(!(p!=null&&p._id))return null;try{const m=await this.API.fetchQueryDefinition(p._id);return m.fields||(m.fields=p.fields),m}catch{return null}}getDefaultSortColumn(){return null}async getData(){var D,H;const{datasource:p,limit:m,paginate:y}=this.options,{supportsPagination:w}=this.features,{cursor:S,definition:k}=get_store_value(this.store),M=(H=(D=k==null?void 0:k.fields)==null?void 0:D.pagination)==null?void 0:H.type,O=cloneDeep$1(p.queryParams||{});for(const N of(p==null?void 0:p.parameters)||[])O[N.name]||(O[N.name]=N.default);const R={parameters:O};if(y&&w){const N=M==="page"?parseInt(S||"1"):S;R.pagination={page:N,limit:m}}try{const N=await this.API.executeQuery(p==null?void 0:p._id,R),{data:W,pagination:J,...ee}=N;let le=null,ce=!1;return y&&w&&(M==="page"?(le=R.pagination.page+1,ce=(W==null?void 0:W.length)===m&&m>0):(le=J==null?void 0:J.cursor,ce=le!=null)),{rows:W||[],info:ee,cursor:le,hasNextPage:ce}}catch{return{rows:[],hasNextPage:!1}}}}class RelationshipFetch extends BaseDataFetch{async getDefinition(){const{datasource:p}=this.options;if(!(p!=null&&p.tableId))return null;try{return await this.API.fetchTableDefinition(p.tableId)}catch(m){return this.store.update(y=>({...y,error:m})),null}}async getData(){const{datasource:p}=this.options;if(!(p!=null&&p.rowId)||!(p!=null&&p.rowTableId))return{rows:[]};try{return{rows:await this.API.fetchRelationshipData(p.rowTableId,p.rowId,p.fieldName)}}catch{return{rows:[]}}}}class NestedProviderFetch extends BaseDataFetch{async getDefinition(){var m,y;const{datasource:p}=this.options;return{schema:(m=p==null?void 0:p.value)==null?void 0:m.schema,primaryDisplay:(y=p==null?void 0:p.value)==null?void 0:y.primaryDisplay}}async getData(){var m;const{datasource:p}=this.options;return{rows:((m=p==null?void 0:p.value)==null?void 0:m.rows)||[],hasNextPage:!1,cursor:null}}}function isArrayOfStrings(v){return Array.isArray(v)&&!!v[0]&&typeof v[0]!="object"}class FieldFetch extends BaseDataFetch{async getDefinition(){const{datasource:p}=this.options;let m;return p.fieldType==="attachment"?m={url:{type:"string"},name:{type:"string"}}:p.fieldType==="array"&&(m={value:{type:"string"}}),{schema:m}}async getData(){const{datasource:p}=this.options,m=(p==null?void 0:p.value)||[];let y;return isArrayOfStrings(m)?y=m.map(w=>({value:w})):y=m,{rows:y||[],hasNextPage:!1,cursor:null}}}class JSONArrayFetch extends FieldFetch{async getDefinition(){const{datasource:p}=this.options;try{const m=await this.API.fetchTableDefinition(p.tableId);return{schema:getJSONArrayDatasourceSchema(m==null?void 0:m.schema,p)}}catch{return null}}}class UserFetch extends BaseDataFetch{constructor(p){super({...p,datasource:{type:"user",tableId:InternalTable.USER_METADATA}})}async determineFeatureFlags(){return{supportsSearch:!0,supportsSort:!1,supportsPagination:!0}}async getDefinition(){return{schema:{}}}async getData(){const{limit:p,paginate:m}=this.options,{cursor:y,query:w}=get_store_value(this.store),{appId:S,paginated:k,...M}=w,O=isSupportedUserSearch(M)?M:{};try{const R={bookmark:y??void 0,query:O??void 0,appId:S,paginate:k||m,limit:p},D=await this.API.searchUsers(R);return{rows:(D==null?void 0:D.data)||[],hasNextPage:(D==null?void 0:D.hasNextPage)||!1,cursor:(D==null?void 0:D.nextPage)||null}}catch(R){return{rows:[],hasNextPage:!1,error:R}}}}class GroupUserFetch extends BaseDataFetch{constructor(p){super({...p,datasource:{type:"groupUser",tableId:InternalTable.USER_METADATA}})}async determineFeatureFlags(){return{supportsSearch:!0,supportsSort:!1,supportsPagination:!0}}async getDefinition(){return{schema:{}}}async getData(){const{query:p,cursor:m}=get_store_value(this.store);try{const y=await this.API.getGroupUsers({id:p.groupId,emailSearch:p.emailSearch,bookmark:m??void 0});return{rows:(y==null?void 0:y.users)||[],hasNextPage:(y==null?void 0:y.hasNextPage)||!1,cursor:(y==null?void 0:y.bookmark)||null}}catch(y){return{rows:[],hasNextPage:!1,error:y}}}}class CustomFetch extends BaseDataFetch{getType(p){return p==null?"string":typeof p==="object"?Array.isArray(p)?"array":"json":isNaN(p)?"string":"number"}parseCustomData(p){if(!p)return[];if(Array.isArray(p))return p;if(typeof p=="string"){try{const m=JSON.parse(p);return Array.isArray(m)?m:[m]}catch{}return p.includes(`
443
443
  `)?p.split(`
444
444
  `).map(m=>m.trim()):p.split(",").map(m=>m.trim())}return[p]}enrichCustomData(p){return p!=null&&p.length?(p=p.filter(m=>m!=null&&m!==""&&!Array.isArray(m)),p.map(m=>{if(typeof m=="object")return m;if(typeof m=="string"){const y=m.split(",").map(S=>S.trim()),w={};for(let S=0;S<y.length;S++){const M=`Value${S===0?"":` ${S+1}`}`;w[M]=y[S]}return w}return{Value:m}})):[]}getCustomData(p){return this.enrichCustomData(this.parseCustomData(p==null?void 0:p.data))}async getDefinition(){const{datasource:p}=this.options,m={},y=this.getCustomData(p);if(!(y!=null&&y.length))return{schema:m};for(const w of y)for(const S of Object.keys(w))if(S!=="_id"&&!m[S]){let k=this.getType(w[S]);const M={};if(k==="string"){const O=[...new Set(y.map(D=>D[S]))];O.length/y.length<=.8&&O.length>1&&(k="options",M.inclusion=O)}else k==="array"&&(M.inclusion=[...new Set(y.map(O=>O[S]).flat())]);m[S]={type:k,constraints:M}}return{schema:m}}async getData(){const{datasource:p}=this.options;return{rows:this.getCustomData(p),hasNextPage:!1,cursor:null}}}class QueryArrayFetch extends FieldFetch{async getDefinition(){const{datasource:p}=this.options;if(!(p!=null&&p.tableId))return null;try{const m=await this.API.fetchQueryDefinition(p.tableId),y=generateQueryArraySchemas(m.schema,m.nestedSchemaFields);return{schema:getJSONArrayDatasourceSchema(y,p)}}catch{return null}}}const DataFetchMap={table:TableFetch,view:ViewFetch,viewV2:ViewV2Fetch,query:QueryFetch,link:RelationshipFetch,user:UserFetch,groupUser:GroupUserFetch,custom:CustomFetch,provider:NestedProviderFetch,field:FieldFetch,jsonarray:JSONArrayFetch,queryarray:QueryArrayFetch},fetchData=({API:v,datasource:p,options:m})=>{const y=DataFetchMap[p==null?void 0:p.type]||TableFetch,w=new y({API:v,datasource:p,...m});return w.getInitialData(),w},createEmptyFetchInstance=({API:v,datasource:p})=>{const m=DataFetchMap[p==null?void 0:p.type];return m?new m({API:v,datasource:p,query:null}):null},getDatasourceDefinition=async({API:v,datasource:p})=>{const m=createEmptyFetchInstance({API:v,datasource:p});return await(m==null?void 0:m.getDefinition())},getDatasourceSchema=({API:v,datasource:p,definition:m})=>{const y=createEmptyFetchInstance({API:v,datasource:p});return y==null?void 0:y.getSchema(m)},createLocalStorageStore=(v,p)=>{const m=writable(p,()=>{S();const k=({key:M})=>M===v&&S();return window.addEventListener("storage",k),()=>window.removeEventListener("storage",k)}),y=k=>{m.set(k),localStorage.setItem(v,JSON.stringify(k))},w=k=>y(k(get_store_value(m))),S=()=>{const k=localStorage.getItem(v);if(k==null)y(p);else try{m.set(JSON.parse(k))}catch{y(p)}};return{...m,set:y,update:w}},SplitPage_svelte_svelte_type_style_lang="",Testimonial_svelte_svelte_type_style_lang="",TestimonialPage_svelte_svelte_type_style_lang="",SignatureModal_svelte_svelte_type_style_lang="";function create_default_slot_2$r(v){let p,m,y,w={darkMode:v[3],value:v[1],saveIcon:!1};return m=new Signature({props:w}),v[8](m),m.$on("update",v[9]),{c(){p=element("div"),create_component(m.$$.fragment),attr(p,"class","signature-wrap modal svelte-1jbgrys")},m(S,k){insert(S,p,k),mount_component(m,p,null),y=!0},p(S,k){const M={};k&8&&(M.darkMode=S[3]),k&2&&(M.value=S[1]),m.$set(M)},i(S){y||(transition_in(m.$$.fragment,S),y=!0)},o(S){transition_out(m.$$.fragment,S),y=!1},d(S){S&&detach(p),v[8](null),destroy_component(m)}}}function create_default_slot_1$H(v){let p;return{c(){p=text$1(v[2])},m(m,y){insert(m,p,y)},p(m,y){y&4&&set_data(p,m[2])},d(m){m&&detach(p)}}}function create_header_slot(v){let p,m,y;return m=new Body({props:{$$slots:{default:[create_default_slot_1$H]},$$scope:{ctx:v}}}),{c(){p=element("div"),create_component(m.$$.fragment),attr(p,"slot","header")},m(w,S){insert(w,p,S),mount_component(m,p,null),y=!0},p(w,S){const k={};S&4100&&(k.$$scope={dirty:S,ctx:w}),m.$set(k)},i(w){y||(transition_in(m.$$.fragment,w),y=!0)},o(w){transition_out(m.$$.fragment,w),y=!1},d(w){w&&detach(p),destroy_component(m)}}}function create_default_slot$1y(v){let p,m;return p=new ModalContent({props:{showConfirmButton:!0,showCancelButton:!1,showCloseIcon:!1,custom:!0,disabled:!v[6],showDivider:!1,onConfirm:v[10],$$slots:{header:[create_header_slot],default:[create_default_slot_2$r]},$$scope:{ctx:v}}}),{c(){create_component(p.$$.fragment)},m(y,w){mount_component(p,y,w),m=!0},p(y,w){const S={};w&64&&(S.disabled=!y[6]),w&33&&(S.onConfirm=y[10]),w&4206&&(S.$$scope={dirty:w,ctx:y}),p.$set(S)},i(y){m||(transition_in(p.$$.fragment,y),m=!0)},o(y){transition_out(p.$$.fragment,y),m=!1},d(y){destroy_component(p,y)}}}function create_fragment$2W(v){let p,m,y={$$slots:{default:[create_default_slot$1y]},$$scope:{ctx:v}};return p=new Modal({props:y}),v[11](p),{c(){create_component(p.$$.fragment)},m(w,S){mount_component(p,w,S),m=!0},p(w,[S]){const k={};S&4207&&(k.$$scope={dirty:S,ctx:w}),p.$set(k)},i(w){m||(transition_in(p.$$.fragment,w),m=!0)},o(w){transition_out(p.$$.fragment,w),m=!1},d(w){v[11](null),destroy_component(p,w)}}}function instance$2U(v,p,m){let{onConfirm:y=()=>{}}=p,{value:w}=p,{title:S}=p,{darkMode:k}=p;const M=()=>{m(6,D=!1),O.show()};let O,R,D=!1;function H(ee){binding_callbacks[ee?"unshift":"push"](()=>{R=ee,m(5,R)})}const N=()=>{m(6,D=!0)},W=()=>{y(R)};function J(ee){binding_callbacks[ee?"unshift":"push"](()=>{O=ee,m(4,O)})}return v.$$set=ee=>{"onConfirm"in ee&&m(0,y=ee.onConfirm),"value"in ee&&m(1,w=ee.value),"title"in ee&&m(2,S=ee.title),"darkMode"in ee&&m(3,k=ee.darkMode)},[y,w,S,k,O,R,D,M,H,N,W,J]}class SignatureModal extends SvelteComponent{constructor(p){super(),init$1(this,p,instance$2U,create_fragment$2W,safe_not_equal,{onConfirm:0,value:1,title:2,darkMode:3,show:7})}get show(){return this.$$.ctx[7]}}function create_if_block$1M(v){let p,m;return p=new AbsTooltip({props:{text:v[3]?getUserLabel(v[0]):"",position:v[2],color:getUserColor(v[0]),$$slots:{default:[create_default_slot$1x]},$$scope:{ctx:v}}}),{c(){create_component(p.$$.fragment)},m(y,w){mount_component(p,y,w),m=!0},p(y,w){const S={};w&9&&(S.text=y[3]?getUserLabel(y[0]):""),w&4&&(S.position=y[2]),w&1&&(S.color=getUserColor(y[0])),w&19&&(S.$$scope={dirty:w,ctx:y}),p.$set(S)},i(y){m||(transition_in(p.$$.fragment,y),m=!0)},o(y){transition_out(p.$$.fragment,y),m=!1},d(y){destroy_component(p,y)}}}function create_default_slot$1x(v){let p,m;return p=new Avatar({props:{size:v[1],initials:getUserInitials(v[0]),color:getUserColor(v[0])}}),{c(){create_component(p.$$.fragment)},m(y,w){mount_component(p,y,w),m=!0},p(y,w){const S={};w&2&&(S.size=y[1]),w&1&&(S.initials=getUserInitials(y[0])),w&1&&(S.color=getUserColor(y[0])),p.$set(S)},i(y){m||(transition_in(p.$$.fragment,y),m=!0)},o(y){transition_out(p.$$.fragment,y),m=!1},d(y){destroy_component(p,y)}}}function create_fragment$2V(v){let p,m,y=v[0]&&create_if_block$1M(v);return{c(){y&&y.c(),p=empty$1()},m(w,S){y&&y.m(w,S),insert(w,p,S),m=!0},p(w,[S]){w[0]?y?(y.p(w,S),S&1&&transition_in(y,1)):(y=create_if_block$1M(w),y.c(),transition_in(y,1),y.m(p.parentNode,p)):y&&(group_outros(),transition_out(y,1,1,()=>{y=null}),check_outros())},i(w){m||(transition_in(y),m=!0)},o(w){transition_out(y),m=!1},d(w){w&&detach(p),y&&y.d(w)}}}function instance$2T(v,p,m){let{user:y}=p,{size:w="S"}=p,{tooltipPosition:S=TooltipPosition.Top}=p,{showTooltip:k=!0}=p;return v.$$set=M=>{"user"in M&&m(0,y=M.user),"size"in M&&m(1,w=M.size),"tooltipPosition"in M&&m(2,S=M.tooltipPosition),"showTooltip"in M&&m(3,k=M.showTooltip)},[y,w,S,k]}class UserAvatar extends SvelteComponent{constructor(p){super(),init$1(this,p,instance$2T,create_fragment$2V,safe_not_equal,{user:0,size:1,tooltipPosition:2,showTooltip:3})}}const UserAvatars_svelte_svelte_type_style_lang$1="",Updating_svelte_svelte_type_style_lang="";function create_else_block_1$a(v){let p;return{c(){p=text$1("Something went wrong!")},m(m,y){insert(m,p,y)},d(m){m&&detach(p)}}}function create_if_block_1$V(v){let p;return{c(){p=text$1("System update")},m(m,y){insert(m,p,y)},d(m){m&&detach(p)}}}function create_else_block$w(v){let p,m,y,w,S;return{c(){p=text$1(`An error occurred, please try again later.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/client",
3
- "version": "3.12.14",
3
+ "version": "3.12.15",
4
4
  "license": "MPL-2.0",
5
5
  "module": "dist/budibase-client.js",
6
6
  "main": "dist/budibase-client.js",
@@ -73,5 +73,5 @@
73
73
  }
74
74
  }
75
75
  },
76
- "gitHead": "dbe8dd62a6714a1bf0768542434fdeca2f81052b"
76
+ "gitHead": "e773b5a964aab33ff99a5fea0aa40f16dbfaa2ea"
77
77
  }