@budibase/types 3.4.1 → 3.4.3
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.
|
@@ -15,7 +15,8 @@ export interface QuotaTriggeredRequest {
|
|
|
15
15
|
resetDate?: string;
|
|
16
16
|
}
|
|
17
17
|
export interface LicenseActivateRequest {
|
|
18
|
-
installVersion
|
|
18
|
+
installVersion: string;
|
|
19
|
+
installId: string;
|
|
19
20
|
}
|
|
20
21
|
export interface UpdateLicenseRequest {
|
|
21
22
|
planType?: PlanType;
|
|
@@ -105,7 +105,7 @@ export type MakeIntegrationInputs = {
|
|
|
105
105
|
};
|
|
106
106
|
export type n8nStepInputs = {
|
|
107
107
|
url: string;
|
|
108
|
-
method
|
|
108
|
+
method?: HttpMethod;
|
|
109
109
|
authorization: string;
|
|
110
110
|
body: any;
|
|
111
111
|
};
|
|
@@ -186,7 +186,7 @@ export type ZapierStepInputs = {
|
|
|
186
186
|
export type ZapierStepOutputs = Omit<ExternalAppStepOutputs, "response"> & {
|
|
187
187
|
response: string;
|
|
188
188
|
};
|
|
189
|
-
declare enum RequestType {
|
|
189
|
+
export declare enum RequestType {
|
|
190
190
|
POST = "POST",
|
|
191
191
|
GET = "GET",
|
|
192
192
|
PUT = "PUT",
|
|
@@ -197,7 +197,7 @@ export type OutgoingWebhookStepInputs = {
|
|
|
197
197
|
requestMethod: RequestType;
|
|
198
198
|
url: string;
|
|
199
199
|
requestBody: string;
|
|
200
|
-
headers: string
|
|
200
|
+
headers: string | Record<string, string>;
|
|
201
201
|
};
|
|
202
202
|
export type AppActionTriggerInputs = {
|
|
203
203
|
fields: object;
|
|
@@ -242,4 +242,3 @@ export type WebhookTriggerInputs = {
|
|
|
242
242
|
export type WebhookTriggerOutputs = {
|
|
243
243
|
fields: Record<string, any>;
|
|
244
244
|
};
|
|
245
|
-
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var b=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var bt=Object.prototype.hasOwnProperty;var Mt=(r,i)=>{for(var t in i)b(r,t,{get:i[t],enumerable:!0})},Bt=(r,i,t,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of Lt(i))!bt.call(r,s)&&s!==t&&b(r,s,{get:()=>i[s],enumerable:!(n=Pt(i,s))||n.enumerable});return r};var ht=r=>Bt(b({},"__esModule",{value:!0}),r);var Gr={};Mt(Gr,{AIOperationEnum:()=>q,APP_QUOTA_NAMES:()=>Cr,AUDIT_LOG_TYPE:()=>Mr,AccountSSOProvider:()=>Ce,AccountSSOProviderType:()=>Ue,AnalyticsEvent:()=>jt,AppBackupStatus:()=>nt,AppBackupTrigger:()=>ot,AppBackupType:()=>rt,AppEnvironment:()=>fe,ArrayOperator:()=>S,AsyncEvents:()=>Ft,AuditLogResourceStatus:()=>St,AuditLogSystemUser:()=>br,AuditedEventFriendlyName:()=>Gt,AuthType:()=>Pe,AutoFieldSubType:()=>Xe,AutoReason:()=>Ke,AutomationActionStepId:()=>w,AutomationCustomIOType:()=>be,AutomationEventType:()=>ve,AutomationFeature:()=>Be,AutomationIOType:()=>Le,AutomationStatus:()=>Fe,AutomationStepIdArray:()=>nr,AutomationStepStatus:()=>he,AutomationStepType:()=>Me,AutomationStoppedReason:()=>Ge,AutomationTriggerStepId:()=>v,BBReferenceFieldSubType:()=>ze,BREAKDOWN_QUOTA_NAMES:()=>Pr,BasicOperator:()=>f,BindingMode:()=>Ut,BodyType:()=>ke,BreakdownQuotaName:()=>gt,BuiltinPermissionID:()=>Ie,CalculationType:()=>Ze,CommandWord:()=>Se,ConfigType:()=>dt,ConstantQuotaName:()=>te,DSPlusOperation:()=>de,DatasourceFeature:()=>Ee,DatasourceFieldType:()=>ie,DeploymentStatus:()=>pt,DocumentType:()=>k,DocumentTypesToImport:()=>Ar,EmailTemplatePurpose:()=>xt,EmptyFilterOption:()=>I,Event:()=>B,EventPublishType:()=>_t,EventType:()=>Nt,Feature:()=>re,FeatureFlag:()=>Oe,FeatureFlagDefaults:()=>Xt,FieldType:()=>V,FilterType:()=>pe,FormulaType:()=>Je,GroupByTypes:()=>He,GroupType:()=>X,Hosting:()=>M,HttpMethod:()=>We,INTERNAL_TABLE_SOURCE_ID:()=>or,IdentityType:()=>j,IncludeRelationship:()=>se,InitType:()=>_e,InternalSearchFilterOperator:()=>G,InternalTable:()=>tt,JsonFieldSubType:()=>je,JsonTypes:()=>ir,LockName:()=>ce,LockType:()=>ge,LogicalOperator:()=>x,LoginMethod:()=>me,LoopStepType:()=>we,MaintenanceType:()=>yt,MetadataType:()=>Et,Model:()=>Ve,MonthlyQuotaName:()=>F,NumericTypes:()=>qe,Operation:()=>ne,OperationFieldTypeEnum:()=>H,PASSWORD_REPLACEMENT:()=>Qt,PLUGIN_TYPE_ARR:()=>Ur,PermissionLevel:()=>xe,PermissionSource:()=>ye,PermissionType:()=>De,PingSource:()=>Tt,PlanModel:()=>Z,PlanType:()=>J,PluginSource:()=>mt,PluginType:()=>Y,PriceDuration:()=>z,QueryType:()=>oe,QuotaType:()=>ee,QuotaUsageType:()=>$,RangeOperator:()=>_,RelationshipType:()=>Q,RestAuthType:()=>Qe,RowExportFormat:()=>Ne,RowOperations:()=>kt,SEPARATOR:()=>D,SQLiteType:()=>at,SSOProviderType:()=>ut,ScheduleRepeatPeriod:()=>At,ScheduleType:()=>ct,SearchIndex:()=>Ae,ServiceType:()=>Dt,SidePanel:()=>Ct,SortOption:()=>Te,SortOrder:()=>y,SortType:()=>N,SourceName:()=>ae,SqlClient:()=>le,StaticQuotaName:()=>h,TableSourceType:()=>Ye,TemplateType:()=>It,TenantResolutionStrategy:()=>Re,Theme:()=>st,UILogicalOperator:()=>ue,UNICODE_MAX:()=>lr,UserGroupSyncEvents:()=>K,UserStatus:()=>lt,ViewCalculation:()=>et,ViewV2Type:()=>$e,VirtualDocumentType:()=>W,WebhookActionType:()=>it,canGroupBy:()=>sr,getDocumentType:()=>cr,getVirtualDocumentType:()=>Rr,isAIConfig:()=>Dr,isAppBackupMetadata:()=>Lr,isArraySearchOperator:()=>qt,isBasicSearchOperator:()=>Yt,isCloudAccount:()=>Zt,isConfig:()=>Or,isConstantQuota:()=>Vt,isCreatePasswordAccount:()=>Jt,isDidNotTriggerResponse:()=>Fr,isDocument:()=>Kt,isGoogleConfig:()=>_r,isLogicalSearchOperator:()=>Wt,isManyToMany:()=>Er,isManyToOne:()=>ur,isMonthlyQuota:()=>wt,isNumeric:()=>ar,isOIDCConfig:()=>xr,isOneToMany:()=>dr,isPasswordAccount:()=>zt,isRangeSearchOperator:()=>Ht,isRelationshipField:()=>pr,isSCIMConfig:()=>Ir,isSMTPConfig:()=>Sr,isSSOAccount:()=>er,isSSOUser:()=>yr,isSelfHostAccount:()=>$t,isSettingsConfig:()=>fr,isStaticQuota:()=>vt,isUser:()=>Nr,isVerifiableSSOProvider:()=>rr,prefixed:()=>mr,searchRowRequestValidator:()=>hr});module.exports=ht(Gr);var q=(u=>(u.SUMMARISE_TEXT="SUMMARISE_TEXT",u.CLEAN_DATA="CLEAN_DATA",u.TRANSLATE="TRANSLATE",u.CATEGORISE_TEXT="CATEGORISE_TEXT",u.SENTIMENT_ANALYSIS="SENTIMENT_ANALYSIS",u.PROMPT="PROMPT",u.SEARCH_WEB="SEARCH_WEB",u))(q||{}),H=(n=>(n.MULTI_COLUMN="columns",n.COLUMN="column",n.BINDABLE_TEXT="prompt",n))(H||{});var M=(t=>(t.CLOUD="cloud",t.SELF="self",t))(M||{});var B=(e=>(e.USER_CREATED="user:created",e.USER_UPDATED="user:updated",e.USER_DELETED="user:deleted",e.USER_ONBOARDING_COMPLETE="user:onboarding:complete",e.USER_PERMISSION_ADMIN_ASSIGNED="user:admin:assigned",e.USER_PERMISSION_ADMIN_REMOVED="user:admin:removed",e.USER_PERMISSION_BUILDER_ASSIGNED="user:builder:assigned",e.USER_PERMISSION_BUILDER_REMOVED="user:builder:removed",e.USER_INVITED="user:invited",e.USER_INVITED_ACCEPTED="user:invite:accepted",e.USER_PASSWORD_FORCE_RESET="user:password:force:reset",e.USER_PASSWORD_UPDATED="user:password:updated",e.USER_PASSWORD_RESET_REQUESTED="user:password:reset:requested",e.USER_PASSWORD_RESET="user:password:reset",e.USER_DATA_COLLABORATION="user:data:collaboration",e.EMAIL_SMTP_CREATED="email:smtp:created",e.EMAIL_SMTP_UPDATED="email:smtp:updated",e.AI_CONFIG_CREATED="ai:config:created",e.AI_CONFIG_UPDATED="ai:config:updated",e.AUTH_SSO_CREATED="auth:sso:created",e.AUTH_SSO_UPDATED="auth:sso:updated",e.AUTH_SSO_ACTIVATED="auth:sso:activated",e.AUTH_SSO_DEACTIVATED="auth:sso:deactivated",e.AUTH_LOGIN="auth:login",e.AUTH_LOGOUT="auth:logout",e.ORG_NAME_UPDATED="org:info:name:updated",e.ORG_LOGO_UPDATED="org:info:logo:updated",e.ORG_PLATFORM_URL_UPDATED="org:platformurl:updated",e.INSTALLATION_VERSION_CHECKED="installation:version:checked",e.INSTALLATION_VERSION_UPGRADED="installation:version:upgraded",e.INSTALLATION_VERSION_DOWNGRADED="installation:version:downgraded",e.INSTALLATION_FIRST_STARTUP="installation:firstStartup",e.ANALYTICS_OPT_OUT="analytics:opt:out",e.ANALYTICS_OPT_IN="analytics:opt:in",e.APP_CREATED="app:created",e.APP_UPDATED="app:updated",e.APP_DELETED="app:deleted",e.APP_DUPLICATED="app:duplicated",e.APP_PUBLISHED="app:published",e.APP_UNPUBLISHED="app:unpublished",e.APP_TEMPLATE_IMPORTED="app:template:imported",e.APP_FILE_IMPORTED="app:file:imported",e.APP_VERSION_UPDATED="app:version:updated",e.APP_VERSION_REVERTED="app:version:reverted",e.APP_REVERTED="app:reverted",e.APP_EXPORTED="app:exported",e.ROLE_CREATED="role:created",e.ROLE_UPDATED="role:updated",e.ROLE_DELETED="role:deleted",e.ROLE_ASSIGNED="role:assigned",e.ROLE_UNASSIGNED="role:unassigned",e.SERVED_BUILDER="served:builder",e.SERVED_APP="served:app",e.SERVED_APP_PREVIEW="served:app:preview",e.DATASOURCE_CREATED="datasource:created",e.DATASOURCE_UPDATED="datasource:updated",e.DATASOURCE_DELETED="datasource:deleted",e.QUERY_CREATED="query:created",e.QUERY_UPDATED="query:updated",e.QUERY_DELETED="query:deleted",e.QUERY_IMPORT="query:import",e.QUERIES_RUN="queries:run",e.QUERY_PREVIEWED="query:previewed",e.TABLE_CREATED="table:created",e.TABLE_UPDATED="table:updated",e.TABLE_DELETED="table:deleted",e.TABLE_EXPORTED="table:exported",e.TABLE_IMPORTED="table:imported",e.TABLE_DATA_IMPORTED="table:data:imported",e.VIEW_CREATED="view:created",e.VIEW_UPDATED="view:updated",e.VIEW_DELETED="view:deleted",e.VIEW_EXPORTED="view:exported",e.VIEW_FILTER_CREATED="view:filter:created",e.VIEW_FILTER_UPDATED="view:filter:updated",e.VIEW_FILTER_DELETED="view:filter:deleted",e.VIEW_CALCULATION_CREATED="view:calculation:created",e.VIEW_CALCULATION_UPDATED="view:calculation:updated",e.VIEW_CALCULATION_DELETED="view:calculation:deleted",e.VIEW_JOIN_CREATED="view:join:created",e.ROWS_CREATED="rows:created",e.ROWS_IMPORTED="rows:imported",e.COMPONENT_CREATED="component:created",e.COMPONENT_DELETED="component:deleted",e.SCREEN_CREATED="screen:created",e.SCREEN_DELETED="screen:deleted",e.LAYOUT_CREATED="layout:created",e.LAYOUT_DELETED="layout:deleted",e.AUTOMATION_CREATED="automation:created",e.AUTOMATION_DELETED="automation:deleted",e.AUTOMATION_TESTED="automation:tested",e.AUTOMATIONS_RUN="automations:run",e.AUTOMATION_STEP_CREATED="automation:step:created",e.AUTOMATION_STEP_DELETED="automation:step:deleted",e.AUTOMATION_TRIGGER_UPDATED="automation:trigger:updated",e.LICENSE_PLAN_CHANGED="license:plan:changed",e.LICENSE_ACTIVATED="license:activated",e.LICENSE_PAYMENT_FAILED="license:payment:failed",e.LICENSE_PAYMENT_RECOVERED="license:payment:recovered",e.LICENSE_CHECKOUT_OPENED="license:checkout:opened",e.LICENSE_CHECKOUT_SUCCESS="license:checkout:success",e.LICENSE_PORTAL_OPENED="license:portal:opened",e.ACCOUNT_CREATED="account:created",e.ACCOUNT_DELETED="account:deleted",e.ACCOUNT_VERIFIED="account:verified",e.APP_BACKFILL_SUCCEEDED="app:backfill:succeeded",e.APP_BACKFILL_FAILED="app:backfill:failed",e.TENANT_BACKFILL_SUCCEEDED="tenant:backfill:succeeded",e.TENANT_BACKFILL_FAILED="tenant:backfill:failed",e.INSTALLATION_BACKFILL_SUCCEEDED="installation:backfill:succeeded",e.INSTALLATION_BACKFILL_FAILED="installation:backfill:failed",e.USER_GROUP_CREATED="user_group:created",e.USER_GROUP_UPDATED="user_group:updated",e.USER_GROUP_DELETED="user_group:deleted",e.USER_GROUP_USERS_ADDED="user_group:user_added",e.USER_GROUP_USERS_REMOVED="user_group:users_deleted",e.USER_GROUP_PERMISSIONS_EDITED="user_group:permissions_edited",e.USER_GROUP_ONBOARDING="user_group:onboarding_added",e.PLUGIN_INIT="plugin:init",e.PLUGIN_IMPORTED="plugin:imported",e.PLUGIN_DELETED="plugin:deleted",e.APP_BACKUP_RESTORED="app:backup:restored",e.APP_BACKUP_TRIGGERED="app:backup:triggered",e.ENVIRONMENT_VARIABLE_CREATED="environment_variable:created",e.ENVIRONMENT_VARIABLE_DELETED="environment_variable:deleted",e.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable:upgrade_panel_opened",e.AUDIT_LOGS_FILTERED="audit_log:filtered",e.AUDIT_LOGS_DOWNLOADED="audit_log:downloaded",e.ROW_ACTION_CREATED="row_action:created",e))(B||{}),K=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Ft=[...K],Gt={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0};var X=(t=>(t.TENANT="tenant",t.INSTALLATION="installation",t))(X||{}),j=(n=>(n.USER="user",n.TENANT="tenant",n.INSTALLATION="installation",n))(j||{});var J=(m=>(m.FREE="free",m.PRO="pro",m.TEAM="team",m.PREMIUM="premium",m.PREMIUM_PLUS="premium_plus",m.PREMIUM_PLUS_TRIAL="premium_plus_trial",m.BUSINESS="business",m.ENTERPRISE_BASIC="enterprise_basic",m.ENTERPRISE_BASIC_TRIAL="enterprise_basic_trial",m.ENTERPRISE="enterprise",m))(J||{}),z=(t=>(t.MONTHLY="monthly",t.YEARLY="yearly",t))(z||{}),Z=(t=>(t.PER_USER="perUser",t.PER_CREATOR_PER_USER="per_creator_per_user",t))(Z||{});var $=(t=>(t.STATIC="static",t.MONTHLY="monthly",t))($||{}),ee=(t=>(t.USAGE="usage",t.CONSTANT="constant",t))(ee||{}),h=(u=>(u.ROWS="rows",u.APPS="apps",u.USERS="users",u.CREATORS="creators",u.USER_GROUPS="userGroups",u.PLUGINS="plugins",u.AI_CUSTOM_CONFIGS="aiCustomConfigs",u))(h||{}),F=(n=>(n.QUERIES="queries",n.AUTOMATIONS="automations",n.BUDIBASE_AI_CREDITS="budibaseAICredits",n))(F||{}),te=(t=>(t.AUTOMATION_LOG_RETENTION_DAYS="automationLogRetentionDays",t.APP_BACKUPS_RETENTION_DAYS="appBackupRetentionDays",t))(te||{}),vt=(r,i,t)=>r==="usage"&&i==="static",wt=(r,i,t)=>r==="usage"&&i==="monthly",Vt=(r,i)=>r==="constant";var re=(T=>(T.USER_GROUPS="userGroups",T.APP_BACKUPS="appBackups",T.ENVIRONMENT_VARIABLES="environmentVariables",T.AUDIT_LOGS="auditLogs",T.ENFORCEABLE_SSO="enforceableSSO",T.BRANDING="branding",T.SCIM="scim",T.SYNC_AUTOMATIONS="syncAutomations",T.TRIGGER_AUTOMATION_RUN="triggerAutomationRun",T.APP_BUILDERS="appBuilders",T.OFFLINE="offline",T.EXPANDED_PUBLIC_API="expandedPublicApi",T.VIEW_PERMISSIONS="viewPermissions",T.VIEW_READONLY_COLUMNS="viewReadonlyColumns",T.BUDIBASE_AI="budibaseAI",T.AI_CUSTOM_CONFIGS="aiCustomConfigs",T))(re||{});var Qt="--secret-value--",ne=(m=>(m.CREATE="CREATE",m.READ="READ",m.UPDATE="UPDATE",m.DELETE="DELETE",m.COUNT="COUNT",m.BULK_CREATE="BULK_CREATE",m.BULK_UPSERT="BULK_UPSERT",m.CREATE_TABLE="CREATE_TABLE",m.UPDATE_TABLE="UPDATE_TABLE",m.DELETE_TABLE="DELETE_TABLE",m))(ne||{}),kt=["CREATE","READ","UPDATE","DELETE","BULK_CREATE","BULK_UPSERT"],oe=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(oe||{}),ie=(R=>(R.STRING="string",R.CODE="code",R.LONGFORM="longForm",R.BOOLEAN="boolean",R.NUMBER="number",R.PASSWORD="password",R.LIST="list",R.OBJECT="object",R.JSON="json",R.FILE="file",R.FIELD_GROUP="fieldGroup",R.SELECT="select",R))(ie||{}),ae=(A=>(A.POSTGRES="POSTGRES",A.DYNAMODB="DYNAMODB",A.MONGODB="MONGODB",A.ELASTICSEARCH="ELASTICSEARCH",A.COUCHDB="COUCHDB",A.SQL_SERVER="SQL_SERVER",A.S3="S3",A.AIRTABLE="AIRTABLE",A.MYSQL="MYSQL",A.ARANGODB="ARANGODB",A.REST="REST",A.ORACLE="ORACLE",A.GOOGLE_SHEETS="GOOGLE_SHEETS",A.FIRESTORE="FIRESTORE",A.REDIS="REDIS",A.SNOWFLAKE="SNOWFLAKE",A.BUDIBASE="BUDIBASE",A))(ae||{}),se=(t=>(t[t.INCLUDE=1]="INCLUDE",t[t.EXCLUDE=0]="EXCLUDE",t))(se||{}),pe=(d=>(d.STRING="string",d.FUZZY="fuzzy",d.RANGE="range",d.EQUAL="equal",d.NOT_EQUAL="notEqual",d.EMPTY="empty",d.NOT_EMPTY="notEmpty",d.ONE_OF="oneOf",d))(pe||{}),Ee=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ee||{}),de=(s=>(s.CREATE="create",s.READ="read",s.UPDATE="update",s.DELETE="delete",s))(de||{});var f=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(f||{}),S=(s=>(s.CONTAINS="contains",s.NOT_CONTAINS="notContains",s.CONTAINS_ANY="containsAny",s.ONE_OF="oneOf",s))(S||{}),_=(i=>(i.RANGE="range",i))(_||{}),x=(t=>(t.AND="$and",t.OR="$or",t))(x||{});function Wt(r){return Object.values(x).includes(r)}function Yt(r){return Object.values(f).includes(r)}function qt(r){return Object.values(S).includes(r)}function Ht(r){return Object.values(_).includes(r)}var G=(i=>(i.COMPLEX_ID_OPERATOR="_complexIdOperator",i))(G||{}),I=(t=>(t.RETURN_ALL="all",t.RETURN_NONE="none",t))(I||{}),ue=(t=>(t.ALL="all",t.ANY="any",t))(ue||{}),le=(o=>(o.MS_SQL="mssql",o.POSTGRES="pg",o.MY_SQL="mysql2",o.MARIADB="mariadb",o.ORACLE="oracledb",o.SQL_LITE="sqlite3",o))(le||{});var me=(t=>(t.API_KEY="api_key",t.COOKIE="cookie",t))(me||{});var ge=(o=>(o.TRY_ONCE="try_once",o.TRY_TWICE="try_twice",o.DEFAULT="default",o.DELAY_500="delay_500",o.CUSTOM="custom",o.AUTO_EXTEND="auto_extend",o))(ge||{}),ce=(d=>(d.MIGRATIONS="migrations",d.TRIGGER_QUOTA="trigger_quota",d.SYNC_ACCOUNT_LICENSE="sync_account_license",d.UPDATE_TENANTS_DOC="update_tenants_doc",d.PERSIST_WRITETHROUGH="persist_writethrough",d.QUOTA_USAGE_EVENT="quota_usage_event",d.APP_MIGRATION="app_migrations",d.PROCESS_USER_INVITE="process_user_invite",d))(ce||{});var Ae=(t=>(t.ROWS="rows",t.USER="user",t))(Ae||{}),Te=(t=>(t.ASCENDING="asc",t.DESCENDING="desc",t))(Te||{}),Kt=r=>typeof r=="object"&&r._id&&r._rev;var Re=(a=>(a.USER="user",a.HEADER="header",a.QUERY="query",a.SUBDOMAIN="subdomain",a.PATH="path",a))(Re||{});var Oe=(t=>(t.USE_ZOD_VALIDATOR="USE_ZOD_VALIDATOR",t.DIRECT_LOGIN_TO_ACCOUNT_PORTAL="DIRECT_LOGIN_TO_ACCOUNT_PORTAL",t))(Oe||{}),Xt={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var fe=(t=>(t.PRODUCTION="production",t.DEVELOPMENT="development",t))(fe||{});var Se=(a=>(a.BACKUPS="backups",a.HOSTING="hosting",a.ANALYTICS="analytics",a.HELP="help",a.PLUGIN="plugins",a))(Se||{}),_e=(t=>(t.QUICK="quick",t.DIGITAL_OCEAN="do",t))(_e||{}),jt={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xe=(s=>(s.READ="read",s.WRITE="write",s.EXECUTE="execute",s.ADMIN="admin",s))(xe||{}),Ie=(a=>(a.PUBLIC="public",a.READ_ONLY="read_only",a.WRITE="write",a.ADMIN="admin",a.POWER="power",a))(Ie||{}),De=(O=>(O.APP="app",O.TABLE="table",O.USER="user",O.AUTOMATION="automation",O.WEBHOOK="webhook",O.BUILDER="builder",O.CREATOR="creator",O.GLOBAL_BUILDER="globalBuilder",O.QUERY="query",O.VIEW="view",O.LEGACY_VIEW="legacy_view",O))(De||{}),ye=(n=>(n.EXPLICIT="EXPLICIT",n.INHERITED="INHERITED",n.BASE="BASE",n))(ye||{});var Ne=(n=>(n.CSV="csv",n.JSON="json",n.JSON_WITH_SCHEMA="jsonWithSchema",n))(Ne||{});var Jt=r=>r.authType==="password",zt=r=>r.authType==="password"&&r.hosting==="self",Zt=r=>r.hosting==="cloud",$t=r=>r.hosting==="self",er=r=>r.authType==="sso",Ue=(t=>(t.GOOGLE="google",t.MICROSOFT="microsoft",t))(Ue||{}),Ce=(t=>(t.GOOGLE="google",t.MICROSOFT="microsoft",t))(Ce||{}),tr=["microsoft"];function rr(r){return tr.includes(r)}var Pe=(t=>(t.SSO="sso",t.PASSWORD="password",t))(Pe||{});var Le=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.ATTACHMENT="attachment",d))(Le||{}),be=(c=>(c.TABLE="table",c.ROW="row",c.ROWS="rows",c.WIDE="wide",c.QUERY="query",c.QUERY_PARAMS="queryParams",c.QUERY_LIMIT="queryLimit",c.LOOP_OPTION="loopOption",c.ITEM="item",c.CODE="code",c.FILTERS="filters",c.COLUMN="column",c.TRIGGER_SCHEMA="triggerSchema",c.CRON="cron",c.WEBHOOK_URL="webhookUrl",c.AUTOMATION="automation",c.AUTOMATION_FIELDS="automationFields",c.MULTI_ATTACHMENTS="multi_attachments",c.TRIGGER_FILTER="trigger_filter",c))(be||{}),v=(u=>(u.ROW_SAVED="ROW_SAVED",u.ROW_UPDATED="ROW_UPDATED",u.ROW_DELETED="ROW_DELETED",u.WEBHOOK="WEBHOOK",u.APP="APP",u.CRON="CRON",u.ROW_ACTION="ROW_ACTION",u))(v||{}),Me=(n=>(n.LOGIC="LOGIC",n.ACTION="ACTION",n.TRIGGER="TRIGGER",n))(Me||{}),w=(l=>(l.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",l.CREATE_ROW="CREATE_ROW",l.UPDATE_ROW="UPDATE_ROW",l.DELETE_ROW="DELETE_ROW",l.EXECUTE_BASH="EXECUTE_BASH",l.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",l.EXECUTE_SCRIPT="EXECUTE_SCRIPT",l.EXECUTE_QUERY="EXECUTE_QUERY",l.SERVER_LOG="SERVER_LOG",l.DELAY="DELAY",l.FILTER="FILTER",l.QUERY_ROWS="QUERY_ROWS",l.LOOP="LOOP",l.COLLECT="COLLECT",l.OPENAI="OPENAI",l.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",l.BRANCH="BRANCH",l.discord="discord",l.slack="slack",l.zapier="zapier",l.integromat="integromat",l.n8n="n8n",l))(w||{}),nr=[...Object.values(w),...Object.values(v)],Be=(i=>(i.LOOPING="LOOPING",i))(Be||{}),he=(t=>(t.NO_ITERATIONS="no_iterations",t.MAX_ITERATIONS="max_iterations_reached",t))(he||{}),Fe=(a=>(a.SUCCESS="success",a.ERROR="error",a.STOPPED="stopped",a.STOPPED_ERROR="stopped_error",a.NO_CONDITION_MET="No branch condition met",a))(Fe||{}),Ge=(i=>(i.TRIGGER_FILTER_NOT_MET="Automation did not run. Filter conditions in trigger were not met.",i))(Ge||{}),ve=(u=>(u.ROW_SAVE="row:save",u.ROW_UPDATE="row:update",u.ROW_DELETE="row:delete",u.APP_TRIGGER="app:trigger",u.CRON_TRIGGER="cron:trigger",u.WEBHOOK_TRIGGER="web:trigger",u.ROW_ACTION="row:action",u))(ve||{}),we=(t=>(t.ARRAY="Array",t.STRING="String",t))(we||{});var Ve=(s=>(s.GPT_35_TURBO="gpt-3.5-turbo",s.GPT_4="gpt-4",s.GPT_4O="gpt-4o",s.GPT_4O_MINI="gpt-4o-mini",s))(Ve||{});var Qe=(t=>(t.BASIC="basic",t.BEARER="bearer",t))(Qe||{});var ke=(o=>(o.NONE="none",o.FORM_DATA="form",o.XML="xml",o.ENCODED="encoded",o.JSON="json",o.TEXT="text",o))(ke||{}),We=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(We||{});var or="bb_internal",Ye=(t=>(t.EXTERNAL="external",t.INTERNAL="internal",t))(Ye||{});var V=(g=>(g.STRING="string",g.LONGFORM="longform",g.OPTIONS="options",g.NUMBER="number",g.BOOLEAN="boolean",g.ARRAY="array",g.DATETIME="datetime",g.ATTACHMENTS="attachment",g.ATTACHMENT_SINGLE="attachment_single",g.LINK="link",g.FORMULA="formula",g.AUTO="auto",g.AI="ai",g.JSON="json",g.INTERNAL="internal",g.BARCODEQR="barcodeqr",g.SIGNATURE_SINGLE="signature_single",g.BIGINT="bigint",g.BB_REFERENCE="bb_reference",g.BB_REFERENCE_SINGLE="bb_reference_single",g))(V||{}),ir=["attachment_single","attachment","bb_reference","json","array"],qe=["number","bigint"];function ar(r){return qe.includes(r)}var He=["string","longform","options","number","boolean","datetime","bigint","ai"];function sr(r){return He.includes(r)}var Q=(n=>(n.ONE_TO_MANY="one-to-many",n.MANY_TO_ONE="many-to-one",n.MANY_TO_MANY="many-to-many",n))(Q||{}),Ke=(i=>(i.FOREIGN_KEY="foreign_key",i))(Ke||{}),Xe=(a=>(a.CREATED_BY="createdBy",a.CREATED_AT="createdAt",a.UPDATED_BY="updatedBy",a.UPDATED_AT="updatedAt",a.AUTO_ID="autoID",a))(Xe||{}),je=(i=>(i.ARRAY="array",i))(je||{}),Je=(n=>(n.STATIC="static",n.DYNAMIC="dynamic",n.AI="ai",n))(Je||{}),ze=(t=>(t.USER="user",t.USERS="users",t))(ze||{});function pr(r){return r.type==="link"}function Er(r){return r.relationshipType==="many-to-many"}function dr(r){return r.relationshipType==="one-to-many"}function ur(r){return r.relationshipType==="many-to-one"}var Ze=(a=>(a.SUM="sum",a.AVG="avg",a.COUNT="count",a.MIN="min",a.MAX="max",a))(Ze||{}),$e=(i=>(i.CALCULATION="calculation",i))($e||{}),et=(n=>(n.SUM="sum",n.COUNT="count",n.STATISTICS="stats",n))(et||{});var D="_",lr="\uFFF0",mr=r=>`${r}${D}`,k=(E=>(E.USER="us",E.GROUP="gr",E.WORKSPACE="workspace",E.CONFIG="config",E.TEMPLATE="template",E.APP="app",E.DEV="dev",E.APP_DEV="app_dev",E.APP_METADATA="app_metadata",E.ROLE="role",E.MIGRATIONS="migrations",E.DEV_INFO="devinfo",E.AUTOMATION_LOG="log_au",E.ACCOUNT_METADATA="acc_metadata",E.PLUGIN="plg",E.DATASOURCE="datasource",E.DATASOURCE_PLUS="datasource_plus",E.APP_BACKUP="backup",E.TABLE="ta",E.ROW="ro",E.AUTOMATION="au",E.LINK="li",E.WEBHOOK="wh",E.INSTANCE="inst",E.LAYOUT="layout",E.SCREEN="screen",E.QUERY="query",E.DEPLOYMENTS="deployments",E.METADATA="metadata",E.MEM_VIEW="view",E.USER_FLAG="flag",E.AUTOMATION_METADATA="meta_au",E.AUDIT_LOG="al",E.APP_MIGRATION_METADATA="_design/migrations",E.SCIM_LOG="scimlog",E.ROW_ACTIONS="ra",E))(k||{}),gr=Object.values(k).sort((r,i)=>i.length-r.length);function cr(r){return gr.find(i=>r.startsWith(`${i}${D}`))}var Ar=["role","datasource","datasource_plus","ta","au","wh","screen","query","metadata","view","inst","layout"],tt=(i=>(i.USER_METADATA="ta_users",i))(tt||{}),W=(t=>(t.VIEW="view",t.ROW_ACTION="row_action",t))(W||{}),Tr=Object.values(W).sort((r,i)=>i.length-r.length);function Rr(r){return Tr.find(i=>r.startsWith(`${i}${D}`))}var rt=(t=>(t.BACKUP="backup",t.RESTORE="restore",t))(rt||{}),nt=(s=>(s.STARTED="started",s.PENDING="pending",s.COMPLETE="complete",s.FAILED="failed",s))(nt||{}),ot=(s=>(s.PUBLISH="publish",s.MANUAL="manual",s.SCHEDULED="scheduled",s.RESTORING="restoring",s))(ot||{});var it=(i=>(i.AUTOMATION="automation",i))(it||{});var at=(a=>(a.REAL="REAL",a.TEXT="VARCHAR",a.INT="INTEGER",a.BLOB="BLOB",a.NUMERIC="NUMERIC",a))(at||{});var st=(o=>(o.LIGHTEST="lightest",o.LIGHT="light",o.DARK="dark",o.DARKEST="darkest",o.NORD="nord",o.MIDNIGHT="midnight",o))(st||{});var pt=(n=>(n.SUCCESS="SUCCESS",n.PENDING="PENDING",n.FAILURE="FAILURE",n))(pt||{});var Et=(t=>(t.AUTOMATION_TEST_INPUT="automationTestInput",t.AUTOMATION_TEST_HISTORY="automationTestHistory",t))(Et||{});var Or=r=>"type"in r&&"config"in r,fr=r=>r.type==="settings",Sr=r=>r.type==="smtp",_r=r=>r.type==="google",xr=r=>r.type==="oidc",Ir=r=>r.type==="scim",Dr=r=>r.type==="ai",dt=(d=>(d.SETTINGS="settings",d.ACCOUNT="account",d.SMTP="smtp",d.GOOGLE="google",d.OIDC="oidc",d.OIDC_LOGOS="logos_oidc",d.SCIM="scim",d.AI="ai",d))(dt||{});var ut=(t=>(t.OIDC="oidc",t.GOOGLE="google",t))(ut||{});function yr(r){return!!r.providerType}var lt=(t=>(t.ACTIVE="active",t.INACTIVE="inactive",t))(lt||{});function Nr(r){return!!r.roles}var Y=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Y||{}),mt=(s=>(s.NPM="NPM",s.GITHUB="Github",s.URL="URL",s.FILE="File Upload",s))(mt||{}),Ur=Object.values(Y);var gt=(n=>(n.ROW_QUERIES="rowQueries",n.DATASOURCE_QUERIES="datasourceQueries",n.AUTOMATIONS="automations",n))(gt||{}),Cr=["rows","queries","automations"],Pr=["queries","automations"];var ct=(i=>(i.APP_BACKUP="app_backup",i))(ct||{}),At=(n=>(n.DAILY="daily",n.WEEKLY="weekly",n.MONTHLY="monthly",n))(At||{}),Lr=(r,i)=>r==="app_backup";var br="SYSTEM",Mr="auditLog";var Tt=(t=>(t.BUILDER="builder",t.APP="app",t))(Tt||{});var y=(t=>(t.ASCENDING="ascending",t.DESCENDING="descending",t))(y||{}),N=(t=>(t.STRING="string",t.NUMBER="number",t))(N||{});var p=require("zod"),L=p.z.string().refine(r=>r!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Rt=p.z.record(L,p.z.string()),U=p.z.record(L,p.z.any()),C=p.z.record(L,p.z.union([p.z.any().array(),p.z.string()])),Ot=p.z.lazy(()=>p.z.object({conditions:p.z.array(p.z.object(ft))})),P=p.z.union([p.z.string(),p.z.number()]),ft={string:Rt.optional(),fuzzy:Rt.optional(),range:p.z.record(L,p.z.union([p.z.object({high:P,low:P}),p.z.object({high:P}),p.z.object({low:P})])).optional(),equal:U.optional(),notEqual:U.optional(),empty:U.optional(),notEmpty:U.optional(),oneOf:C.optional(),contains:C.optional(),notContains:C.optional(),containsAny:C.optional(),$and:Ot.optional(),$or:Ot.optional()},Br=p.z.object({query:p.z.object({allOr:p.z.boolean().optional(),onEmptyFilter:p.z.nativeEnum(I).optional(),...ft}).optional(),paginate:p.z.boolean().optional(),bookmark:p.z.union([p.z.string(),p.z.number()]).nullish(),limit:p.z.number().optional(),sort:p.z.string().nullish(),sortOrder:p.z.nativeEnum(y).optional(),sortType:p.z.nativeEnum(N).nullish(),version:p.z.string().optional(),disableEscaping:p.z.boolean().optional(),countRows:p.z.boolean().optional()}),hr=Br;function Fr(r){return!!("message"in r&&r.message)}var St=(i=>(i.DELETED="deleted",i))(St||{});var _t=(i=>(i.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable_upgrade_panel_opened",i))(_t||{});var xt=(o=>(o.CORE="core",o.BASE="base",o.PASSWORD_RECOVERY="password_recovery",o.INVITATION="invitation",o.WELCOME="welcome",o.CUSTOM="custom",o))(xt||{});var It=(i=>(i.APP="app",i))(It||{});var Dt=(t=>(t.WORKER="worker",t.APPS="apps",t))(Dt||{}),yt=(i=>(i.SQS_MISSING="sqs_missing",i))(yt||{});var Nt=(o=>(o.ROW_SAVE="row:save",o.ROW_UPDATE="row:update",o.ROW_DELETE="row:delete",o.TABLE_SAVE="table:save",o.TABLE_UPDATED="table:updated",o.TABLE_DELETE="table:delete",o))(Nt||{});var Ut=(t=>(t.Text="Text",t.JavaScript="JavaScript",t))(Ut||{});var Ct=(n=>(n.Bindings="FlashOn",n.Evaluation="Play",n.Snippets="Code",n))(Ct||{});0&&(module.exports={AIOperationEnum,APP_QUOTA_NAMES,AUDIT_LOG_TYPE,AccountSSOProvider,AccountSSOProviderType,AnalyticsEvent,AppBackupStatus,AppBackupTrigger,AppBackupType,AppEnvironment,ArrayOperator,AsyncEvents,AuditLogResourceStatus,AuditLogSystemUser,AuditedEventFriendlyName,AuthType,AutoFieldSubType,AutoReason,AutomationActionStepId,AutomationCustomIOType,AutomationEventType,AutomationFeature,AutomationIOType,AutomationStatus,AutomationStepIdArray,AutomationStepStatus,AutomationStepType,AutomationStoppedReason,AutomationTriggerStepId,BBReferenceFieldSubType,BREAKDOWN_QUOTA_NAMES,BasicOperator,BindingMode,BodyType,BreakdownQuotaName,BuiltinPermissionID,CalculationType,CommandWord,ConfigType,ConstantQuotaName,DSPlusOperation,DatasourceFeature,DatasourceFieldType,DeploymentStatus,DocumentType,DocumentTypesToImport,EmailTemplatePurpose,EmptyFilterOption,Event,EventPublishType,EventType,Feature,FeatureFlag,FeatureFlagDefaults,FieldType,FilterType,FormulaType,GroupByTypes,GroupType,Hosting,HttpMethod,INTERNAL_TABLE_SOURCE_ID,IdentityType,IncludeRelationship,InitType,InternalSearchFilterOperator,InternalTable,JsonFieldSubType,JsonTypes,LockName,LockType,LogicalOperator,LoginMethod,LoopStepType,MaintenanceType,MetadataType,Model,MonthlyQuotaName,NumericTypes,Operation,OperationFieldTypeEnum,PASSWORD_REPLACEMENT,PLUGIN_TYPE_ARR,PermissionLevel,PermissionSource,PermissionType,PingSource,PlanModel,PlanType,PluginSource,PluginType,PriceDuration,QueryType,QuotaType,QuotaUsageType,RangeOperator,RelationshipType,RestAuthType,RowExportFormat,RowOperations,SEPARATOR,SQLiteType,SSOProviderType,ScheduleRepeatPeriod,ScheduleType,SearchIndex,ServiceType,SidePanel,SortOption,SortOrder,SortType,SourceName,SqlClient,StaticQuotaName,TableSourceType,TemplateType,TenantResolutionStrategy,Theme,UILogicalOperator,UNICODE_MAX,UserGroupSyncEvents,UserStatus,ViewCalculation,ViewV2Type,VirtualDocumentType,WebhookActionType,canGroupBy,getDocumentType,getVirtualDocumentType,isAIConfig,isAppBackupMetadata,isArraySearchOperator,isBasicSearchOperator,isCloudAccount,isConfig,isConstantQuota,isCreatePasswordAccount,isDidNotTriggerResponse,isDocument,isGoogleConfig,isLogicalSearchOperator,isManyToMany,isManyToOne,isMonthlyQuota,isNumeric,isOIDCConfig,isOneToMany,isPasswordAccount,isRangeSearchOperator,isRelationshipField,isSCIMConfig,isSMTPConfig,isSSOAccount,isSSOUser,isSelfHostAccount,isSettingsConfig,isStaticQuota,isUser,isVerifiableSSOProvider,prefixed,searchRowRequestValidator});
|
|
1
|
+
"use strict";var b=Object.defineProperty;var Lt=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var Mt=Object.prototype.hasOwnProperty;var Bt=(r,i)=>{for(var t in i)b(r,t,{get:i[t],enumerable:!0})},ht=(r,i,t,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of bt(i))!Mt.call(r,s)&&s!==t&&b(r,s,{get:()=>i[s],enumerable:!(n=Lt(i,s))||n.enumerable});return r};var Ft=r=>ht(b({},"__esModule",{value:!0}),r);var vr={};Bt(vr,{AIOperationEnum:()=>q,APP_QUOTA_NAMES:()=>Pr,AUDIT_LOG_TYPE:()=>Br,AccountSSOProvider:()=>Ce,AccountSSOProviderType:()=>Ue,AnalyticsEvent:()=>Jt,AppBackupStatus:()=>ot,AppBackupTrigger:()=>it,AppBackupType:()=>nt,AppEnvironment:()=>fe,ArrayOperator:()=>S,AsyncEvents:()=>Gt,AuditLogResourceStatus:()=>_t,AuditLogSystemUser:()=>Mr,AuditedEventFriendlyName:()=>vt,AuthType:()=>Pe,AutoFieldSubType:()=>je,AutoReason:()=>Xe,AutomationActionStepId:()=>w,AutomationCustomIOType:()=>be,AutomationEventType:()=>ve,AutomationFeature:()=>Be,AutomationIOType:()=>Le,AutomationStatus:()=>Fe,AutomationStepIdArray:()=>or,AutomationStepStatus:()=>he,AutomationStepType:()=>Me,AutomationStoppedReason:()=>Ge,AutomationTriggerStepId:()=>v,BBReferenceFieldSubType:()=>Ze,BREAKDOWN_QUOTA_NAMES:()=>Lr,BasicOperator:()=>f,BindingMode:()=>Ct,BodyType:()=>We,BreakdownQuotaName:()=>ct,BuiltinPermissionID:()=>Ie,CalculationType:()=>$e,CommandWord:()=>Se,ConfigType:()=>ut,ConstantQuotaName:()=>te,DSPlusOperation:()=>de,DatasourceFeature:()=>Ee,DatasourceFieldType:()=>ie,DeploymentStatus:()=>Et,DocumentType:()=>k,DocumentTypesToImport:()=>Tr,EmailTemplatePurpose:()=>It,EmptyFilterOption:()=>I,Event:()=>B,EventPublishType:()=>xt,EventType:()=>Ut,Feature:()=>re,FeatureFlag:()=>Oe,FeatureFlagDefaults:()=>jt,FieldType:()=>V,FilterType:()=>pe,FormulaType:()=>ze,GroupByTypes:()=>Ke,GroupType:()=>X,Hosting:()=>M,HttpMethod:()=>Ye,INTERNAL_TABLE_SOURCE_ID:()=>ir,IdentityType:()=>j,IncludeRelationship:()=>se,InitType:()=>_e,InternalSearchFilterOperator:()=>G,InternalTable:()=>rt,JsonFieldSubType:()=>Je,JsonTypes:()=>ar,LockName:()=>ce,LockType:()=>ge,LogicalOperator:()=>x,LoginMethod:()=>me,LoopStepType:()=>we,MaintenanceType:()=>Nt,MetadataType:()=>dt,Model:()=>Ve,MonthlyQuotaName:()=>F,NumericTypes:()=>He,Operation:()=>ne,OperationFieldTypeEnum:()=>H,PASSWORD_REPLACEMENT:()=>kt,PLUGIN_TYPE_ARR:()=>Cr,PermissionLevel:()=>xe,PermissionSource:()=>ye,PermissionType:()=>De,PingSource:()=>Rt,PlanModel:()=>Z,PlanType:()=>J,PluginSource:()=>gt,PluginType:()=>Y,PriceDuration:()=>z,QueryType:()=>oe,QuotaType:()=>ee,QuotaUsageType:()=>$,RangeOperator:()=>_,RelationshipType:()=>Q,RequestType:()=>Qe,RestAuthType:()=>ke,RowExportFormat:()=>Ne,RowOperations:()=>Wt,SEPARATOR:()=>D,SQLiteType:()=>st,SSOProviderType:()=>lt,ScheduleRepeatPeriod:()=>Tt,ScheduleType:()=>At,SearchIndex:()=>Ae,ServiceType:()=>yt,SidePanel:()=>Pt,SortOption:()=>Te,SortOrder:()=>y,SortType:()=>N,SourceName:()=>ae,SqlClient:()=>le,StaticQuotaName:()=>h,TableSourceType:()=>qe,TemplateType:()=>Dt,TenantResolutionStrategy:()=>Re,Theme:()=>pt,UILogicalOperator:()=>ue,UNICODE_MAX:()=>mr,UserGroupSyncEvents:()=>K,UserStatus:()=>mt,ViewCalculation:()=>tt,ViewV2Type:()=>et,VirtualDocumentType:()=>W,WebhookActionType:()=>at,canGroupBy:()=>pr,getDocumentType:()=>Ar,getVirtualDocumentType:()=>Or,isAIConfig:()=>yr,isAppBackupMetadata:()=>br,isArraySearchOperator:()=>Ht,isBasicSearchOperator:()=>qt,isCloudAccount:()=>$t,isConfig:()=>fr,isConstantQuota:()=>Qt,isCreatePasswordAccount:()=>zt,isDidNotTriggerResponse:()=>Gr,isDocument:()=>Xt,isGoogleConfig:()=>xr,isLogicalSearchOperator:()=>Yt,isManyToMany:()=>dr,isManyToOne:()=>lr,isMonthlyQuota:()=>Vt,isNumeric:()=>sr,isOIDCConfig:()=>Ir,isOneToMany:()=>ur,isPasswordAccount:()=>Zt,isRangeSearchOperator:()=>Kt,isRelationshipField:()=>Er,isSCIMConfig:()=>Dr,isSMTPConfig:()=>_r,isSSOAccount:()=>tr,isSSOUser:()=>Nr,isSelfHostAccount:()=>er,isSettingsConfig:()=>Sr,isStaticQuota:()=>wt,isUser:()=>Ur,isVerifiableSSOProvider:()=>nr,prefixed:()=>gr,searchRowRequestValidator:()=>Fr});module.exports=Ft(vr);var q=(u=>(u.SUMMARISE_TEXT="SUMMARISE_TEXT",u.CLEAN_DATA="CLEAN_DATA",u.TRANSLATE="TRANSLATE",u.CATEGORISE_TEXT="CATEGORISE_TEXT",u.SENTIMENT_ANALYSIS="SENTIMENT_ANALYSIS",u.PROMPT="PROMPT",u.SEARCH_WEB="SEARCH_WEB",u))(q||{}),H=(n=>(n.MULTI_COLUMN="columns",n.COLUMN="column",n.BINDABLE_TEXT="prompt",n))(H||{});var M=(t=>(t.CLOUD="cloud",t.SELF="self",t))(M||{});var B=(e=>(e.USER_CREATED="user:created",e.USER_UPDATED="user:updated",e.USER_DELETED="user:deleted",e.USER_ONBOARDING_COMPLETE="user:onboarding:complete",e.USER_PERMISSION_ADMIN_ASSIGNED="user:admin:assigned",e.USER_PERMISSION_ADMIN_REMOVED="user:admin:removed",e.USER_PERMISSION_BUILDER_ASSIGNED="user:builder:assigned",e.USER_PERMISSION_BUILDER_REMOVED="user:builder:removed",e.USER_INVITED="user:invited",e.USER_INVITED_ACCEPTED="user:invite:accepted",e.USER_PASSWORD_FORCE_RESET="user:password:force:reset",e.USER_PASSWORD_UPDATED="user:password:updated",e.USER_PASSWORD_RESET_REQUESTED="user:password:reset:requested",e.USER_PASSWORD_RESET="user:password:reset",e.USER_DATA_COLLABORATION="user:data:collaboration",e.EMAIL_SMTP_CREATED="email:smtp:created",e.EMAIL_SMTP_UPDATED="email:smtp:updated",e.AI_CONFIG_CREATED="ai:config:created",e.AI_CONFIG_UPDATED="ai:config:updated",e.AUTH_SSO_CREATED="auth:sso:created",e.AUTH_SSO_UPDATED="auth:sso:updated",e.AUTH_SSO_ACTIVATED="auth:sso:activated",e.AUTH_SSO_DEACTIVATED="auth:sso:deactivated",e.AUTH_LOGIN="auth:login",e.AUTH_LOGOUT="auth:logout",e.ORG_NAME_UPDATED="org:info:name:updated",e.ORG_LOGO_UPDATED="org:info:logo:updated",e.ORG_PLATFORM_URL_UPDATED="org:platformurl:updated",e.INSTALLATION_VERSION_CHECKED="installation:version:checked",e.INSTALLATION_VERSION_UPGRADED="installation:version:upgraded",e.INSTALLATION_VERSION_DOWNGRADED="installation:version:downgraded",e.INSTALLATION_FIRST_STARTUP="installation:firstStartup",e.ANALYTICS_OPT_OUT="analytics:opt:out",e.ANALYTICS_OPT_IN="analytics:opt:in",e.APP_CREATED="app:created",e.APP_UPDATED="app:updated",e.APP_DELETED="app:deleted",e.APP_DUPLICATED="app:duplicated",e.APP_PUBLISHED="app:published",e.APP_UNPUBLISHED="app:unpublished",e.APP_TEMPLATE_IMPORTED="app:template:imported",e.APP_FILE_IMPORTED="app:file:imported",e.APP_VERSION_UPDATED="app:version:updated",e.APP_VERSION_REVERTED="app:version:reverted",e.APP_REVERTED="app:reverted",e.APP_EXPORTED="app:exported",e.ROLE_CREATED="role:created",e.ROLE_UPDATED="role:updated",e.ROLE_DELETED="role:deleted",e.ROLE_ASSIGNED="role:assigned",e.ROLE_UNASSIGNED="role:unassigned",e.SERVED_BUILDER="served:builder",e.SERVED_APP="served:app",e.SERVED_APP_PREVIEW="served:app:preview",e.DATASOURCE_CREATED="datasource:created",e.DATASOURCE_UPDATED="datasource:updated",e.DATASOURCE_DELETED="datasource:deleted",e.QUERY_CREATED="query:created",e.QUERY_UPDATED="query:updated",e.QUERY_DELETED="query:deleted",e.QUERY_IMPORT="query:import",e.QUERIES_RUN="queries:run",e.QUERY_PREVIEWED="query:previewed",e.TABLE_CREATED="table:created",e.TABLE_UPDATED="table:updated",e.TABLE_DELETED="table:deleted",e.TABLE_EXPORTED="table:exported",e.TABLE_IMPORTED="table:imported",e.TABLE_DATA_IMPORTED="table:data:imported",e.VIEW_CREATED="view:created",e.VIEW_UPDATED="view:updated",e.VIEW_DELETED="view:deleted",e.VIEW_EXPORTED="view:exported",e.VIEW_FILTER_CREATED="view:filter:created",e.VIEW_FILTER_UPDATED="view:filter:updated",e.VIEW_FILTER_DELETED="view:filter:deleted",e.VIEW_CALCULATION_CREATED="view:calculation:created",e.VIEW_CALCULATION_UPDATED="view:calculation:updated",e.VIEW_CALCULATION_DELETED="view:calculation:deleted",e.VIEW_JOIN_CREATED="view:join:created",e.ROWS_CREATED="rows:created",e.ROWS_IMPORTED="rows:imported",e.COMPONENT_CREATED="component:created",e.COMPONENT_DELETED="component:deleted",e.SCREEN_CREATED="screen:created",e.SCREEN_DELETED="screen:deleted",e.LAYOUT_CREATED="layout:created",e.LAYOUT_DELETED="layout:deleted",e.AUTOMATION_CREATED="automation:created",e.AUTOMATION_DELETED="automation:deleted",e.AUTOMATION_TESTED="automation:tested",e.AUTOMATIONS_RUN="automations:run",e.AUTOMATION_STEP_CREATED="automation:step:created",e.AUTOMATION_STEP_DELETED="automation:step:deleted",e.AUTOMATION_TRIGGER_UPDATED="automation:trigger:updated",e.LICENSE_PLAN_CHANGED="license:plan:changed",e.LICENSE_ACTIVATED="license:activated",e.LICENSE_PAYMENT_FAILED="license:payment:failed",e.LICENSE_PAYMENT_RECOVERED="license:payment:recovered",e.LICENSE_CHECKOUT_OPENED="license:checkout:opened",e.LICENSE_CHECKOUT_SUCCESS="license:checkout:success",e.LICENSE_PORTAL_OPENED="license:portal:opened",e.ACCOUNT_CREATED="account:created",e.ACCOUNT_DELETED="account:deleted",e.ACCOUNT_VERIFIED="account:verified",e.APP_BACKFILL_SUCCEEDED="app:backfill:succeeded",e.APP_BACKFILL_FAILED="app:backfill:failed",e.TENANT_BACKFILL_SUCCEEDED="tenant:backfill:succeeded",e.TENANT_BACKFILL_FAILED="tenant:backfill:failed",e.INSTALLATION_BACKFILL_SUCCEEDED="installation:backfill:succeeded",e.INSTALLATION_BACKFILL_FAILED="installation:backfill:failed",e.USER_GROUP_CREATED="user_group:created",e.USER_GROUP_UPDATED="user_group:updated",e.USER_GROUP_DELETED="user_group:deleted",e.USER_GROUP_USERS_ADDED="user_group:user_added",e.USER_GROUP_USERS_REMOVED="user_group:users_deleted",e.USER_GROUP_PERMISSIONS_EDITED="user_group:permissions_edited",e.USER_GROUP_ONBOARDING="user_group:onboarding_added",e.PLUGIN_INIT="plugin:init",e.PLUGIN_IMPORTED="plugin:imported",e.PLUGIN_DELETED="plugin:deleted",e.APP_BACKUP_RESTORED="app:backup:restored",e.APP_BACKUP_TRIGGERED="app:backup:triggered",e.ENVIRONMENT_VARIABLE_CREATED="environment_variable:created",e.ENVIRONMENT_VARIABLE_DELETED="environment_variable:deleted",e.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable:upgrade_panel_opened",e.AUDIT_LOGS_FILTERED="audit_log:filtered",e.AUDIT_LOGS_DOWNLOADED="audit_log:downloaded",e.ROW_ACTION_CREATED="row_action:created",e))(B||{}),K=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Gt=[...K],vt={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0};var X=(t=>(t.TENANT="tenant",t.INSTALLATION="installation",t))(X||{}),j=(n=>(n.USER="user",n.TENANT="tenant",n.INSTALLATION="installation",n))(j||{});var J=(m=>(m.FREE="free",m.PRO="pro",m.TEAM="team",m.PREMIUM="premium",m.PREMIUM_PLUS="premium_plus",m.PREMIUM_PLUS_TRIAL="premium_plus_trial",m.BUSINESS="business",m.ENTERPRISE_BASIC="enterprise_basic",m.ENTERPRISE_BASIC_TRIAL="enterprise_basic_trial",m.ENTERPRISE="enterprise",m))(J||{}),z=(t=>(t.MONTHLY="monthly",t.YEARLY="yearly",t))(z||{}),Z=(t=>(t.PER_USER="perUser",t.PER_CREATOR_PER_USER="per_creator_per_user",t))(Z||{});var $=(t=>(t.STATIC="static",t.MONTHLY="monthly",t))($||{}),ee=(t=>(t.USAGE="usage",t.CONSTANT="constant",t))(ee||{}),h=(u=>(u.ROWS="rows",u.APPS="apps",u.USERS="users",u.CREATORS="creators",u.USER_GROUPS="userGroups",u.PLUGINS="plugins",u.AI_CUSTOM_CONFIGS="aiCustomConfigs",u))(h||{}),F=(n=>(n.QUERIES="queries",n.AUTOMATIONS="automations",n.BUDIBASE_AI_CREDITS="budibaseAICredits",n))(F||{}),te=(t=>(t.AUTOMATION_LOG_RETENTION_DAYS="automationLogRetentionDays",t.APP_BACKUPS_RETENTION_DAYS="appBackupRetentionDays",t))(te||{}),wt=(r,i,t)=>r==="usage"&&i==="static",Vt=(r,i,t)=>r==="usage"&&i==="monthly",Qt=(r,i)=>r==="constant";var re=(T=>(T.USER_GROUPS="userGroups",T.APP_BACKUPS="appBackups",T.ENVIRONMENT_VARIABLES="environmentVariables",T.AUDIT_LOGS="auditLogs",T.ENFORCEABLE_SSO="enforceableSSO",T.BRANDING="branding",T.SCIM="scim",T.SYNC_AUTOMATIONS="syncAutomations",T.TRIGGER_AUTOMATION_RUN="triggerAutomationRun",T.APP_BUILDERS="appBuilders",T.OFFLINE="offline",T.EXPANDED_PUBLIC_API="expandedPublicApi",T.VIEW_PERMISSIONS="viewPermissions",T.VIEW_READONLY_COLUMNS="viewReadonlyColumns",T.BUDIBASE_AI="budibaseAI",T.AI_CUSTOM_CONFIGS="aiCustomConfigs",T))(re||{});var kt="--secret-value--",ne=(m=>(m.CREATE="CREATE",m.READ="READ",m.UPDATE="UPDATE",m.DELETE="DELETE",m.COUNT="COUNT",m.BULK_CREATE="BULK_CREATE",m.BULK_UPSERT="BULK_UPSERT",m.CREATE_TABLE="CREATE_TABLE",m.UPDATE_TABLE="UPDATE_TABLE",m.DELETE_TABLE="DELETE_TABLE",m))(ne||{}),Wt=["CREATE","READ","UPDATE","DELETE","BULK_CREATE","BULK_UPSERT"],oe=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(oe||{}),ie=(R=>(R.STRING="string",R.CODE="code",R.LONGFORM="longForm",R.BOOLEAN="boolean",R.NUMBER="number",R.PASSWORD="password",R.LIST="list",R.OBJECT="object",R.JSON="json",R.FILE="file",R.FIELD_GROUP="fieldGroup",R.SELECT="select",R))(ie||{}),ae=(A=>(A.POSTGRES="POSTGRES",A.DYNAMODB="DYNAMODB",A.MONGODB="MONGODB",A.ELASTICSEARCH="ELASTICSEARCH",A.COUCHDB="COUCHDB",A.SQL_SERVER="SQL_SERVER",A.S3="S3",A.AIRTABLE="AIRTABLE",A.MYSQL="MYSQL",A.ARANGODB="ARANGODB",A.REST="REST",A.ORACLE="ORACLE",A.GOOGLE_SHEETS="GOOGLE_SHEETS",A.FIRESTORE="FIRESTORE",A.REDIS="REDIS",A.SNOWFLAKE="SNOWFLAKE",A.BUDIBASE="BUDIBASE",A))(ae||{}),se=(t=>(t[t.INCLUDE=1]="INCLUDE",t[t.EXCLUDE=0]="EXCLUDE",t))(se||{}),pe=(d=>(d.STRING="string",d.FUZZY="fuzzy",d.RANGE="range",d.EQUAL="equal",d.NOT_EQUAL="notEqual",d.EMPTY="empty",d.NOT_EMPTY="notEmpty",d.ONE_OF="oneOf",d))(pe||{}),Ee=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ee||{}),de=(s=>(s.CREATE="create",s.READ="read",s.UPDATE="update",s.DELETE="delete",s))(de||{});var f=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(f||{}),S=(s=>(s.CONTAINS="contains",s.NOT_CONTAINS="notContains",s.CONTAINS_ANY="containsAny",s.ONE_OF="oneOf",s))(S||{}),_=(i=>(i.RANGE="range",i))(_||{}),x=(t=>(t.AND="$and",t.OR="$or",t))(x||{});function Yt(r){return Object.values(x).includes(r)}function qt(r){return Object.values(f).includes(r)}function Ht(r){return Object.values(S).includes(r)}function Kt(r){return Object.values(_).includes(r)}var G=(i=>(i.COMPLEX_ID_OPERATOR="_complexIdOperator",i))(G||{}),I=(t=>(t.RETURN_ALL="all",t.RETURN_NONE="none",t))(I||{}),ue=(t=>(t.ALL="all",t.ANY="any",t))(ue||{}),le=(o=>(o.MS_SQL="mssql",o.POSTGRES="pg",o.MY_SQL="mysql2",o.MARIADB="mariadb",o.ORACLE="oracledb",o.SQL_LITE="sqlite3",o))(le||{});var me=(t=>(t.API_KEY="api_key",t.COOKIE="cookie",t))(me||{});var ge=(o=>(o.TRY_ONCE="try_once",o.TRY_TWICE="try_twice",o.DEFAULT="default",o.DELAY_500="delay_500",o.CUSTOM="custom",o.AUTO_EXTEND="auto_extend",o))(ge||{}),ce=(d=>(d.MIGRATIONS="migrations",d.TRIGGER_QUOTA="trigger_quota",d.SYNC_ACCOUNT_LICENSE="sync_account_license",d.UPDATE_TENANTS_DOC="update_tenants_doc",d.PERSIST_WRITETHROUGH="persist_writethrough",d.QUOTA_USAGE_EVENT="quota_usage_event",d.APP_MIGRATION="app_migrations",d.PROCESS_USER_INVITE="process_user_invite",d))(ce||{});var Ae=(t=>(t.ROWS="rows",t.USER="user",t))(Ae||{}),Te=(t=>(t.ASCENDING="asc",t.DESCENDING="desc",t))(Te||{}),Xt=r=>typeof r=="object"&&r._id&&r._rev;var Re=(a=>(a.USER="user",a.HEADER="header",a.QUERY="query",a.SUBDOMAIN="subdomain",a.PATH="path",a))(Re||{});var Oe=(t=>(t.USE_ZOD_VALIDATOR="USE_ZOD_VALIDATOR",t.DIRECT_LOGIN_TO_ACCOUNT_PORTAL="DIRECT_LOGIN_TO_ACCOUNT_PORTAL",t))(Oe||{}),jt={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var fe=(t=>(t.PRODUCTION="production",t.DEVELOPMENT="development",t))(fe||{});var Se=(a=>(a.BACKUPS="backups",a.HOSTING="hosting",a.ANALYTICS="analytics",a.HELP="help",a.PLUGIN="plugins",a))(Se||{}),_e=(t=>(t.QUICK="quick",t.DIGITAL_OCEAN="do",t))(_e||{}),Jt={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xe=(s=>(s.READ="read",s.WRITE="write",s.EXECUTE="execute",s.ADMIN="admin",s))(xe||{}),Ie=(a=>(a.PUBLIC="public",a.READ_ONLY="read_only",a.WRITE="write",a.ADMIN="admin",a.POWER="power",a))(Ie||{}),De=(O=>(O.APP="app",O.TABLE="table",O.USER="user",O.AUTOMATION="automation",O.WEBHOOK="webhook",O.BUILDER="builder",O.CREATOR="creator",O.GLOBAL_BUILDER="globalBuilder",O.QUERY="query",O.VIEW="view",O.LEGACY_VIEW="legacy_view",O))(De||{}),ye=(n=>(n.EXPLICIT="EXPLICIT",n.INHERITED="INHERITED",n.BASE="BASE",n))(ye||{});var Ne=(n=>(n.CSV="csv",n.JSON="json",n.JSON_WITH_SCHEMA="jsonWithSchema",n))(Ne||{});var zt=r=>r.authType==="password",Zt=r=>r.authType==="password"&&r.hosting==="self",$t=r=>r.hosting==="cloud",er=r=>r.hosting==="self",tr=r=>r.authType==="sso",Ue=(t=>(t.GOOGLE="google",t.MICROSOFT="microsoft",t))(Ue||{}),Ce=(t=>(t.GOOGLE="google",t.MICROSOFT="microsoft",t))(Ce||{}),rr=["microsoft"];function nr(r){return rr.includes(r)}var Pe=(t=>(t.SSO="sso",t.PASSWORD="password",t))(Pe||{});var Le=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.ATTACHMENT="attachment",d))(Le||{}),be=(c=>(c.TABLE="table",c.ROW="row",c.ROWS="rows",c.WIDE="wide",c.QUERY="query",c.QUERY_PARAMS="queryParams",c.QUERY_LIMIT="queryLimit",c.LOOP_OPTION="loopOption",c.ITEM="item",c.CODE="code",c.FILTERS="filters",c.COLUMN="column",c.TRIGGER_SCHEMA="triggerSchema",c.CRON="cron",c.WEBHOOK_URL="webhookUrl",c.AUTOMATION="automation",c.AUTOMATION_FIELDS="automationFields",c.MULTI_ATTACHMENTS="multi_attachments",c.TRIGGER_FILTER="trigger_filter",c))(be||{}),v=(u=>(u.ROW_SAVED="ROW_SAVED",u.ROW_UPDATED="ROW_UPDATED",u.ROW_DELETED="ROW_DELETED",u.WEBHOOK="WEBHOOK",u.APP="APP",u.CRON="CRON",u.ROW_ACTION="ROW_ACTION",u))(v||{}),Me=(n=>(n.LOGIC="LOGIC",n.ACTION="ACTION",n.TRIGGER="TRIGGER",n))(Me||{}),w=(l=>(l.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",l.CREATE_ROW="CREATE_ROW",l.UPDATE_ROW="UPDATE_ROW",l.DELETE_ROW="DELETE_ROW",l.EXECUTE_BASH="EXECUTE_BASH",l.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",l.EXECUTE_SCRIPT="EXECUTE_SCRIPT",l.EXECUTE_QUERY="EXECUTE_QUERY",l.SERVER_LOG="SERVER_LOG",l.DELAY="DELAY",l.FILTER="FILTER",l.QUERY_ROWS="QUERY_ROWS",l.LOOP="LOOP",l.COLLECT="COLLECT",l.OPENAI="OPENAI",l.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",l.BRANCH="BRANCH",l.discord="discord",l.slack="slack",l.zapier="zapier",l.integromat="integromat",l.n8n="n8n",l))(w||{}),or=[...Object.values(w),...Object.values(v)],Be=(i=>(i.LOOPING="LOOPING",i))(Be||{}),he=(t=>(t.NO_ITERATIONS="no_iterations",t.MAX_ITERATIONS="max_iterations_reached",t))(he||{}),Fe=(a=>(a.SUCCESS="success",a.ERROR="error",a.STOPPED="stopped",a.STOPPED_ERROR="stopped_error",a.NO_CONDITION_MET="No branch condition met",a))(Fe||{}),Ge=(i=>(i.TRIGGER_FILTER_NOT_MET="Automation did not run. Filter conditions in trigger were not met.",i))(Ge||{}),ve=(u=>(u.ROW_SAVE="row:save",u.ROW_UPDATE="row:update",u.ROW_DELETE="row:delete",u.APP_TRIGGER="app:trigger",u.CRON_TRIGGER="cron:trigger",u.WEBHOOK_TRIGGER="web:trigger",u.ROW_ACTION="row:action",u))(ve||{}),we=(t=>(t.ARRAY="Array",t.STRING="String",t))(we||{});var Ve=(s=>(s.GPT_35_TURBO="gpt-3.5-turbo",s.GPT_4="gpt-4",s.GPT_4O="gpt-4o",s.GPT_4O_MINI="gpt-4o-mini",s))(Ve||{}),Qe=(a=>(a.POST="POST",a.GET="GET",a.PUT="PUT",a.DELETE="DELETE",a.PATCH="PATCH",a))(Qe||{});var ke=(t=>(t.BASIC="basic",t.BEARER="bearer",t))(ke||{});var We=(o=>(o.NONE="none",o.FORM_DATA="form",o.XML="xml",o.ENCODED="encoded",o.JSON="json",o.TEXT="text",o))(We||{}),Ye=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ye||{});var ir="bb_internal",qe=(t=>(t.EXTERNAL="external",t.INTERNAL="internal",t))(qe||{});var V=(g=>(g.STRING="string",g.LONGFORM="longform",g.OPTIONS="options",g.NUMBER="number",g.BOOLEAN="boolean",g.ARRAY="array",g.DATETIME="datetime",g.ATTACHMENTS="attachment",g.ATTACHMENT_SINGLE="attachment_single",g.LINK="link",g.FORMULA="formula",g.AUTO="auto",g.AI="ai",g.JSON="json",g.INTERNAL="internal",g.BARCODEQR="barcodeqr",g.SIGNATURE_SINGLE="signature_single",g.BIGINT="bigint",g.BB_REFERENCE="bb_reference",g.BB_REFERENCE_SINGLE="bb_reference_single",g))(V||{}),ar=["attachment_single","attachment","bb_reference","json","array"],He=["number","bigint"];function sr(r){return He.includes(r)}var Ke=["string","longform","options","number","boolean","datetime","bigint","ai"];function pr(r){return Ke.includes(r)}var Q=(n=>(n.ONE_TO_MANY="one-to-many",n.MANY_TO_ONE="many-to-one",n.MANY_TO_MANY="many-to-many",n))(Q||{}),Xe=(i=>(i.FOREIGN_KEY="foreign_key",i))(Xe||{}),je=(a=>(a.CREATED_BY="createdBy",a.CREATED_AT="createdAt",a.UPDATED_BY="updatedBy",a.UPDATED_AT="updatedAt",a.AUTO_ID="autoID",a))(je||{}),Je=(i=>(i.ARRAY="array",i))(Je||{}),ze=(n=>(n.STATIC="static",n.DYNAMIC="dynamic",n.AI="ai",n))(ze||{}),Ze=(t=>(t.USER="user",t.USERS="users",t))(Ze||{});function Er(r){return r.type==="link"}function dr(r){return r.relationshipType==="many-to-many"}function ur(r){return r.relationshipType==="one-to-many"}function lr(r){return r.relationshipType==="many-to-one"}var $e=(a=>(a.SUM="sum",a.AVG="avg",a.COUNT="count",a.MIN="min",a.MAX="max",a))($e||{}),et=(i=>(i.CALCULATION="calculation",i))(et||{}),tt=(n=>(n.SUM="sum",n.COUNT="count",n.STATISTICS="stats",n))(tt||{});var D="_",mr="\uFFF0",gr=r=>`${r}${D}`,k=(E=>(E.USER="us",E.GROUP="gr",E.WORKSPACE="workspace",E.CONFIG="config",E.TEMPLATE="template",E.APP="app",E.DEV="dev",E.APP_DEV="app_dev",E.APP_METADATA="app_metadata",E.ROLE="role",E.MIGRATIONS="migrations",E.DEV_INFO="devinfo",E.AUTOMATION_LOG="log_au",E.ACCOUNT_METADATA="acc_metadata",E.PLUGIN="plg",E.DATASOURCE="datasource",E.DATASOURCE_PLUS="datasource_plus",E.APP_BACKUP="backup",E.TABLE="ta",E.ROW="ro",E.AUTOMATION="au",E.LINK="li",E.WEBHOOK="wh",E.INSTANCE="inst",E.LAYOUT="layout",E.SCREEN="screen",E.QUERY="query",E.DEPLOYMENTS="deployments",E.METADATA="metadata",E.MEM_VIEW="view",E.USER_FLAG="flag",E.AUTOMATION_METADATA="meta_au",E.AUDIT_LOG="al",E.APP_MIGRATION_METADATA="_design/migrations",E.SCIM_LOG="scimlog",E.ROW_ACTIONS="ra",E))(k||{}),cr=Object.values(k).sort((r,i)=>i.length-r.length);function Ar(r){return cr.find(i=>r.startsWith(`${i}${D}`))}var Tr=["role","datasource","datasource_plus","ta","au","wh","screen","query","metadata","view","inst","layout"],rt=(i=>(i.USER_METADATA="ta_users",i))(rt||{}),W=(t=>(t.VIEW="view",t.ROW_ACTION="row_action",t))(W||{}),Rr=Object.values(W).sort((r,i)=>i.length-r.length);function Or(r){return Rr.find(i=>r.startsWith(`${i}${D}`))}var nt=(t=>(t.BACKUP="backup",t.RESTORE="restore",t))(nt||{}),ot=(s=>(s.STARTED="started",s.PENDING="pending",s.COMPLETE="complete",s.FAILED="failed",s))(ot||{}),it=(s=>(s.PUBLISH="publish",s.MANUAL="manual",s.SCHEDULED="scheduled",s.RESTORING="restoring",s))(it||{});var at=(i=>(i.AUTOMATION="automation",i))(at||{});var st=(a=>(a.REAL="REAL",a.TEXT="VARCHAR",a.INT="INTEGER",a.BLOB="BLOB",a.NUMERIC="NUMERIC",a))(st||{});var pt=(o=>(o.LIGHTEST="lightest",o.LIGHT="light",o.DARK="dark",o.DARKEST="darkest",o.NORD="nord",o.MIDNIGHT="midnight",o))(pt||{});var Et=(n=>(n.SUCCESS="SUCCESS",n.PENDING="PENDING",n.FAILURE="FAILURE",n))(Et||{});var dt=(t=>(t.AUTOMATION_TEST_INPUT="automationTestInput",t.AUTOMATION_TEST_HISTORY="automationTestHistory",t))(dt||{});var fr=r=>"type"in r&&"config"in r,Sr=r=>r.type==="settings",_r=r=>r.type==="smtp",xr=r=>r.type==="google",Ir=r=>r.type==="oidc",Dr=r=>r.type==="scim",yr=r=>r.type==="ai",ut=(d=>(d.SETTINGS="settings",d.ACCOUNT="account",d.SMTP="smtp",d.GOOGLE="google",d.OIDC="oidc",d.OIDC_LOGOS="logos_oidc",d.SCIM="scim",d.AI="ai",d))(ut||{});var lt=(t=>(t.OIDC="oidc",t.GOOGLE="google",t))(lt||{});function Nr(r){return!!r.providerType}var mt=(t=>(t.ACTIVE="active",t.INACTIVE="inactive",t))(mt||{});function Ur(r){return!!r.roles}var Y=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Y||{}),gt=(s=>(s.NPM="NPM",s.GITHUB="Github",s.URL="URL",s.FILE="File Upload",s))(gt||{}),Cr=Object.values(Y);var ct=(n=>(n.ROW_QUERIES="rowQueries",n.DATASOURCE_QUERIES="datasourceQueries",n.AUTOMATIONS="automations",n))(ct||{}),Pr=["rows","queries","automations"],Lr=["queries","automations"];var At=(i=>(i.APP_BACKUP="app_backup",i))(At||{}),Tt=(n=>(n.DAILY="daily",n.WEEKLY="weekly",n.MONTHLY="monthly",n))(Tt||{}),br=(r,i)=>r==="app_backup";var Mr="SYSTEM",Br="auditLog";var Rt=(t=>(t.BUILDER="builder",t.APP="app",t))(Rt||{});var y=(t=>(t.ASCENDING="ascending",t.DESCENDING="descending",t))(y||{}),N=(t=>(t.STRING="string",t.NUMBER="number",t))(N||{});var p=require("zod"),L=p.z.string().refine(r=>r!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Ot=p.z.record(L,p.z.string()),U=p.z.record(L,p.z.any()),C=p.z.record(L,p.z.union([p.z.any().array(),p.z.string()])),ft=p.z.lazy(()=>p.z.object({conditions:p.z.array(p.z.object(St))})),P=p.z.union([p.z.string(),p.z.number()]),St={string:Ot.optional(),fuzzy:Ot.optional(),range:p.z.record(L,p.z.union([p.z.object({high:P,low:P}),p.z.object({high:P}),p.z.object({low:P})])).optional(),equal:U.optional(),notEqual:U.optional(),empty:U.optional(),notEmpty:U.optional(),oneOf:C.optional(),contains:C.optional(),notContains:C.optional(),containsAny:C.optional(),$and:ft.optional(),$or:ft.optional()},hr=p.z.object({query:p.z.object({allOr:p.z.boolean().optional(),onEmptyFilter:p.z.nativeEnum(I).optional(),...St}).optional(),paginate:p.z.boolean().optional(),bookmark:p.z.union([p.z.string(),p.z.number()]).nullish(),limit:p.z.number().optional(),sort:p.z.string().nullish(),sortOrder:p.z.nativeEnum(y).optional(),sortType:p.z.nativeEnum(N).nullish(),version:p.z.string().optional(),disableEscaping:p.z.boolean().optional(),countRows:p.z.boolean().optional()}),Fr=hr;function Gr(r){return!!("message"in r&&r.message)}var _t=(i=>(i.DELETED="deleted",i))(_t||{});var xt=(i=>(i.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable_upgrade_panel_opened",i))(xt||{});var It=(o=>(o.CORE="core",o.BASE="base",o.PASSWORD_RECOVERY="password_recovery",o.INVITATION="invitation",o.WELCOME="welcome",o.CUSTOM="custom",o))(It||{});var Dt=(i=>(i.APP="app",i))(Dt||{});var yt=(t=>(t.WORKER="worker",t.APPS="apps",t))(yt||{}),Nt=(i=>(i.SQS_MISSING="sqs_missing",i))(Nt||{});var Ut=(o=>(o.ROW_SAVE="row:save",o.ROW_UPDATE="row:update",o.ROW_DELETE="row:delete",o.TABLE_SAVE="table:save",o.TABLE_UPDATED="table:updated",o.TABLE_DELETE="table:delete",o))(Ut||{});var Ct=(t=>(t.Text="Text",t.JavaScript="JavaScript",t))(Ct||{});var Pt=(n=>(n.Bindings="FlashOn",n.Evaluation="Play",n.Snippets="Code",n))(Pt||{});0&&(module.exports={AIOperationEnum,APP_QUOTA_NAMES,AUDIT_LOG_TYPE,AccountSSOProvider,AccountSSOProviderType,AnalyticsEvent,AppBackupStatus,AppBackupTrigger,AppBackupType,AppEnvironment,ArrayOperator,AsyncEvents,AuditLogResourceStatus,AuditLogSystemUser,AuditedEventFriendlyName,AuthType,AutoFieldSubType,AutoReason,AutomationActionStepId,AutomationCustomIOType,AutomationEventType,AutomationFeature,AutomationIOType,AutomationStatus,AutomationStepIdArray,AutomationStepStatus,AutomationStepType,AutomationStoppedReason,AutomationTriggerStepId,BBReferenceFieldSubType,BREAKDOWN_QUOTA_NAMES,BasicOperator,BindingMode,BodyType,BreakdownQuotaName,BuiltinPermissionID,CalculationType,CommandWord,ConfigType,ConstantQuotaName,DSPlusOperation,DatasourceFeature,DatasourceFieldType,DeploymentStatus,DocumentType,DocumentTypesToImport,EmailTemplatePurpose,EmptyFilterOption,Event,EventPublishType,EventType,Feature,FeatureFlag,FeatureFlagDefaults,FieldType,FilterType,FormulaType,GroupByTypes,GroupType,Hosting,HttpMethod,INTERNAL_TABLE_SOURCE_ID,IdentityType,IncludeRelationship,InitType,InternalSearchFilterOperator,InternalTable,JsonFieldSubType,JsonTypes,LockName,LockType,LogicalOperator,LoginMethod,LoopStepType,MaintenanceType,MetadataType,Model,MonthlyQuotaName,NumericTypes,Operation,OperationFieldTypeEnum,PASSWORD_REPLACEMENT,PLUGIN_TYPE_ARR,PermissionLevel,PermissionSource,PermissionType,PingSource,PlanModel,PlanType,PluginSource,PluginType,PriceDuration,QueryType,QuotaType,QuotaUsageType,RangeOperator,RelationshipType,RequestType,RestAuthType,RowExportFormat,RowOperations,SEPARATOR,SQLiteType,SSOProviderType,ScheduleRepeatPeriod,ScheduleType,SearchIndex,ServiceType,SidePanel,SortOption,SortOrder,SortType,SourceName,SqlClient,StaticQuotaName,TableSourceType,TemplateType,TenantResolutionStrategy,Theme,UILogicalOperator,UNICODE_MAX,UserGroupSyncEvents,UserStatus,ViewCalculation,ViewV2Type,VirtualDocumentType,WebhookActionType,canGroupBy,getDocumentType,getVirtualDocumentType,isAIConfig,isAppBackupMetadata,isArraySearchOperator,isBasicSearchOperator,isCloudAccount,isConfig,isConstantQuota,isCreatePasswordAccount,isDidNotTriggerResponse,isDocument,isGoogleConfig,isLogicalSearchOperator,isManyToMany,isManyToOne,isMonthlyQuota,isNumeric,isOIDCConfig,isOneToMany,isPasswordAccount,isRangeSearchOperator,isRelationshipField,isSCIMConfig,isSMTPConfig,isSSOAccount,isSSOUser,isSelfHostAccount,isSettingsConfig,isStaticQuota,isUser,isVerifiableSSOProvider,prefixed,searchRowRequestValidator});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/sdk/ai.ts", "../src/sdk/hosting.ts", "../src/sdk/events/event.ts", "../src/sdk/events/identification.ts", "../src/sdk/licensing/plan.ts", "../src/sdk/licensing/quota.ts", "../src/sdk/licensing/feature.ts", "../src/sdk/datasources.ts", "../src/sdk/search.ts", "../src/sdk/koa.ts", "../src/sdk/locks.ts", "../src/sdk/db.ts", "../src/sdk/middleware/tenancy.ts", "../src/sdk/featureFlag.ts", "../src/sdk/environmentVariables.ts", "../src/sdk/cli/constants.ts", "../src/sdk/permissions.ts", "../src/sdk/row.ts", "../src/documents/account/account.ts", "../src/documents/app/automation/automation.ts", "../src/documents/app/automation/StepInputsOutputs.ts", "../src/documents/app/datasource.ts", "../src/documents/app/query.ts", "../src/documents/app/table/table.ts", "../src/documents/app/row.ts", "../src/documents/app/table/constants.ts", "../src/documents/app/table/schema.ts", "../src/documents/app/view.ts", "../src/documents/document.ts", "../src/documents/app/backup.ts", "../src/documents/app/webhook.ts", "../src/documents/app/sqlite.ts", "../src/documents/app/theme.ts", "../src/documents/app/deployment.ts", "../src/documents/app/metadata.ts", "../src/documents/global/config.ts", "../src/documents/global/user.ts", "../src/documents/global/plugin.ts", "../src/documents/global/quotas.ts", "../src/documents/global/schedule.ts", "../src/documents/global/auditLogs.ts", "../src/api/web/analytics.ts", "../src/api/web/pagination.ts", "../src/api/web/app/rows/search.ts", "../src/api/web/app/automation.ts", "../src/api/web/global/auditLogs.ts", "../src/api/web/global/events.ts", "../src/api/web/global/email.ts", "../src/api/web/template.ts", "../src/core/installation.ts", "../src/core/events.ts", "../src/ui/bindings/binding.ts", "../src/ui/components/sidepanel.ts"],
|
|
4
|
-
"sourcesContent": ["export * from \"./documents\"\nexport * from \"./sdk\"\nexport * from \"./api\"\nexport * from \"./core\"\nexport * from \"./shared\"\nexport * from \"./ui\"\n", "export enum AIOperationEnum {\n SUMMARISE_TEXT = \"SUMMARISE_TEXT\",\n CLEAN_DATA = \"CLEAN_DATA\",\n TRANSLATE = \"TRANSLATE\",\n CATEGORISE_TEXT = \"CATEGORISE_TEXT\",\n SENTIMENT_ANALYSIS = \"SENTIMENT_ANALYSIS\",\n PROMPT = \"PROMPT\",\n SEARCH_WEB = \"SEARCH_WEB\",\n}\n\nexport enum OperationFieldTypeEnum {\n MULTI_COLUMN = \"columns\",\n COLUMN = \"column\",\n BINDABLE_TEXT = \"prompt\",\n}\n\nexport type OperationFieldsType = {\n [AIOperationEnum.SUMMARISE_TEXT]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n }\n [AIOperationEnum.CLEAN_DATA]: {\n column: OperationFieldTypeEnum.COLUMN\n }\n [AIOperationEnum.TRANSLATE]: {\n column: OperationFieldTypeEnum.COLUMN\n language: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.CATEGORISE_TEXT]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n categories: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.SENTIMENT_ANALYSIS]: {\n column: OperationFieldTypeEnum.COLUMN\n }\n [AIOperationEnum.PROMPT]: {\n prompt: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.SEARCH_WEB]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n }\n}\n\ntype BaseSchema = {\n operation: AIOperationEnum\n}\n\ntype SummariseTextSchema = BaseSchema & {\n operation: AIOperationEnum.SUMMARISE_TEXT\n columns: string[]\n}\n\ntype CleanDataSchema = BaseSchema & {\n operation: AIOperationEnum.CLEAN_DATA\n column: string\n}\n\ntype TranslateSchema = BaseSchema & {\n operation: AIOperationEnum.TRANSLATE\n column: string\n language: string\n}\n\ntype CategoriseTextSchema = BaseSchema & {\n operation: AIOperationEnum.CATEGORISE_TEXT\n columns: string[]\n categories: string[]\n}\n\ntype SentimentAnalysisSchema = BaseSchema & {\n operation: AIOperationEnum.SENTIMENT_ANALYSIS\n column: string\n}\n\ntype PromptSchema = BaseSchema & {\n operation: AIOperationEnum.PROMPT\n prompt: string\n}\n\ntype SearchWebSchema = BaseSchema & {\n operation: AIOperationEnum.SEARCH_WEB\n columns: string[]\n}\n\nexport type AIColumnSchema =\n | SummariseTextSchema\n | CleanDataSchema\n | TranslateSchema\n | CategoriseTextSchema\n | SentimentAnalysisSchema\n | PromptSchema\n | SearchWebSchema\n", "export enum Hosting {\n CLOUD = \"cloud\",\n SELF = \"self\",\n}\n", "import { Hosting } from \"../hosting\"\nimport { Group, Identity } from \"./identification\"\n\nexport enum Event {\n // USER\n USER_CREATED = \"user:created\",\n USER_UPDATED = \"user:updated\",\n USER_DELETED = \"user:deleted\",\n\n // USER / ONBOARDING\n USER_ONBOARDING_COMPLETE = \"user:onboarding:complete\",\n\n // USER / PERMISSIONS\n USER_PERMISSION_ADMIN_ASSIGNED = \"user:admin:assigned\",\n USER_PERMISSION_ADMIN_REMOVED = \"user:admin:removed\",\n USER_PERMISSION_BUILDER_ASSIGNED = \"user:builder:assigned\",\n USER_PERMISSION_BUILDER_REMOVED = \"user:builder:removed\",\n\n // USER / INVITE\n USER_INVITED = \"user:invited\",\n USER_INVITED_ACCEPTED = \"user:invite:accepted\",\n\n // USER / PASSWORD\n USER_PASSWORD_FORCE_RESET = \"user:password:force:reset\",\n USER_PASSWORD_UPDATED = \"user:password:updated\",\n USER_PASSWORD_RESET_REQUESTED = \"user:password:reset:requested\",\n USER_PASSWORD_RESET = \"user:password:reset\",\n\n // USER / COLLABORATION\n USER_DATA_COLLABORATION = \"user:data:collaboration\",\n\n // EMAIL\n EMAIL_SMTP_CREATED = \"email:smtp:created\",\n EMAIL_SMTP_UPDATED = \"email:smtp:updated\",\n\n // AI\n AI_CONFIG_CREATED = \"ai:config:created\",\n AI_CONFIG_UPDATED = \"ai:config:updated\",\n\n // AUTH\n AUTH_SSO_CREATED = \"auth:sso:created\",\n AUTH_SSO_UPDATED = \"auth:sso:updated\",\n AUTH_SSO_ACTIVATED = \"auth:sso:activated\",\n AUTH_SSO_DEACTIVATED = \"auth:sso:deactivated\",\n AUTH_LOGIN = \"auth:login\",\n AUTH_LOGOUT = \"auth:logout\",\n\n // ORG\n ORG_NAME_UPDATED = \"org:info:name:updated\",\n ORG_LOGO_UPDATED = \"org:info:logo:updated\",\n ORG_PLATFORM_URL_UPDATED = \"org:platformurl:updated\",\n\n // INSTALLATION\n INSTALLATION_VERSION_CHECKED = \"installation:version:checked\",\n INSTALLATION_VERSION_UPGRADED = \"installation:version:upgraded\",\n INSTALLATION_VERSION_DOWNGRADED = \"installation:version:downgraded\",\n INSTALLATION_FIRST_STARTUP = \"installation:firstStartup\",\n\n // ORG / ANALYTICS\n ANALYTICS_OPT_OUT = \"analytics:opt:out\",\n ANALYTICS_OPT_IN = \"analytics:opt:in\",\n\n // APP\n APP_CREATED = \"app:created\",\n APP_UPDATED = \"app:updated\",\n APP_DELETED = \"app:deleted\",\n APP_DUPLICATED = \"app:duplicated\",\n APP_PUBLISHED = \"app:published\",\n APP_UNPUBLISHED = \"app:unpublished\",\n APP_TEMPLATE_IMPORTED = \"app:template:imported\",\n APP_FILE_IMPORTED = \"app:file:imported\",\n APP_VERSION_UPDATED = \"app:version:updated\",\n APP_VERSION_REVERTED = \"app:version:reverted\",\n APP_REVERTED = \"app:reverted\",\n APP_EXPORTED = \"app:exported\",\n\n // ROLE\n ROLE_CREATED = \"role:created\",\n ROLE_UPDATED = \"role:updated\",\n ROLE_DELETED = \"role:deleted\",\n ROLE_ASSIGNED = \"role:assigned\",\n ROLE_UNASSIGNED = \"role:unassigned\",\n\n // SERVE\n SERVED_BUILDER = \"served:builder\",\n SERVED_APP = \"served:app\",\n SERVED_APP_PREVIEW = \"served:app:preview\",\n\n // DATASOURCE\n DATASOURCE_CREATED = \"datasource:created\",\n DATASOURCE_UPDATED = \"datasource:updated\",\n DATASOURCE_DELETED = \"datasource:deleted\",\n\n // QUERY\n QUERY_CREATED = \"query:created\",\n QUERY_UPDATED = \"query:updated\",\n QUERY_DELETED = \"query:deleted\",\n QUERY_IMPORT = \"query:import\",\n QUERIES_RUN = \"queries:run\",\n QUERY_PREVIEWED = \"query:previewed\",\n\n // TABLE\n TABLE_CREATED = \"table:created\",\n TABLE_UPDATED = \"table:updated\",\n TABLE_DELETED = \"table:deleted\",\n TABLE_EXPORTED = \"table:exported\",\n TABLE_IMPORTED = \"table:imported\",\n TABLE_DATA_IMPORTED = \"table:data:imported\",\n\n // VIEW\n VIEW_CREATED = \"view:created\",\n VIEW_UPDATED = \"view:updated\",\n VIEW_DELETED = \"view:deleted\",\n VIEW_EXPORTED = \"view:exported\",\n VIEW_FILTER_CREATED = \"view:filter:created\",\n VIEW_FILTER_UPDATED = \"view:filter:updated\",\n VIEW_FILTER_DELETED = \"view:filter:deleted\",\n VIEW_CALCULATION_CREATED = \"view:calculation:created\",\n VIEW_CALCULATION_UPDATED = \"view:calculation:updated\",\n VIEW_CALCULATION_DELETED = \"view:calculation:deleted\",\n VIEW_JOIN_CREATED = \"view:join:created\",\n\n // ROWS\n ROWS_CREATED = \"rows:created\",\n ROWS_IMPORTED = \"rows:imported\",\n\n // COMPONENT\n COMPONENT_CREATED = \"component:created\",\n COMPONENT_DELETED = \"component:deleted\",\n\n // SCREEN\n SCREEN_CREATED = \"screen:created\",\n SCREEN_DELETED = \"screen:deleted\",\n\n // LAYOUT\n LAYOUT_CREATED = \"layout:created\",\n LAYOUT_DELETED = \"layout:deleted\",\n\n // AUTOMATION\n AUTOMATION_CREATED = \"automation:created\",\n AUTOMATION_DELETED = \"automation:deleted\",\n AUTOMATION_TESTED = \"automation:tested\",\n AUTOMATIONS_RUN = \"automations:run\",\n AUTOMATION_STEP_CREATED = \"automation:step:created\",\n AUTOMATION_STEP_DELETED = \"automation:step:deleted\",\n AUTOMATION_TRIGGER_UPDATED = \"automation:trigger:updated\",\n\n // LICENSE\n LICENSE_PLAN_CHANGED = \"license:plan:changed\",\n LICENSE_ACTIVATED = \"license:activated\",\n LICENSE_PAYMENT_FAILED = \"license:payment:failed\",\n LICENSE_PAYMENT_RECOVERED = \"license:payment:recovered\",\n LICENSE_CHECKOUT_OPENED = \"license:checkout:opened\",\n LICENSE_CHECKOUT_SUCCESS = \"license:checkout:success\",\n LICENSE_PORTAL_OPENED = \"license:portal:opened\",\n\n // ACCOUNT\n ACCOUNT_CREATED = \"account:created\",\n ACCOUNT_DELETED = \"account:deleted\",\n ACCOUNT_VERIFIED = \"account:verified\",\n\n // BACKFILL\n APP_BACKFILL_SUCCEEDED = \"app:backfill:succeeded\",\n APP_BACKFILL_FAILED = \"app:backfill:failed\",\n TENANT_BACKFILL_SUCCEEDED = \"tenant:backfill:succeeded\",\n TENANT_BACKFILL_FAILED = \"tenant:backfill:failed\",\n INSTALLATION_BACKFILL_SUCCEEDED = \"installation:backfill:succeeded\",\n INSTALLATION_BACKFILL_FAILED = \"installation:backfill:failed\",\n\n // USER\n USER_GROUP_CREATED = \"user_group:created\",\n USER_GROUP_UPDATED = \"user_group:updated\",\n USER_GROUP_DELETED = \"user_group:deleted\",\n USER_GROUP_USERS_ADDED = \"user_group:user_added\",\n USER_GROUP_USERS_REMOVED = \"user_group:users_deleted\",\n USER_GROUP_PERMISSIONS_EDITED = \"user_group:permissions_edited\",\n USER_GROUP_ONBOARDING = \"user_group:onboarding_added\",\n\n // PLUGIN\n PLUGIN_INIT = \"plugin:init\",\n PLUGIN_IMPORTED = \"plugin:imported\",\n PLUGIN_DELETED = \"plugin:deleted\",\n\n // BACKUP\n APP_BACKUP_RESTORED = \"app:backup:restored\",\n APP_BACKUP_TRIGGERED = \"app:backup:triggered\",\n\n // ENVIRONMENT VARIABLE\n ENVIRONMENT_VARIABLE_CREATED = \"environment_variable:created\",\n ENVIRONMENT_VARIABLE_DELETED = \"environment_variable:deleted\",\n ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED = \"environment_variable:upgrade_panel_opened\",\n\n // AUDIT LOG\n AUDIT_LOGS_FILTERED = \"audit_log:filtered\",\n AUDIT_LOGS_DOWNLOADED = \"audit_log:downloaded\",\n\n // ROW ACTION\n ROW_ACTION_CREATED = \"row_action:created\",\n}\n\nexport const UserGroupSyncEvents: Event[] = [\n Event.USER_CREATED,\n Event.USER_UPDATED,\n Event.USER_DELETED,\n Event.USER_PERMISSION_ADMIN_ASSIGNED,\n Event.USER_PERMISSION_ADMIN_REMOVED,\n Event.USER_PERMISSION_BUILDER_ASSIGNED,\n Event.USER_PERMISSION_BUILDER_REMOVED,\n Event.USER_GROUP_CREATED,\n Event.USER_GROUP_UPDATED,\n Event.USER_GROUP_DELETED,\n Event.USER_GROUP_USERS_ADDED,\n Event.USER_GROUP_USERS_REMOVED,\n Event.USER_GROUP_PERMISSIONS_EDITED,\n]\n\nexport const AsyncEvents: Event[] = [...UserGroupSyncEvents]\n\n// all events that are not audited have been added to this record as undefined, this means\n// that Typescript can protect us against new events being added and auditing of those\n// events not being considered. This might be a little ugly, but provides a level of\n// Typescript build protection for the audit log feature, any new event also needs to be\n// added to this map, during which the developer will need to consider if it should be\n// a user facing event or not.\nexport const AuditedEventFriendlyName: Record<Event, string | undefined> = {\n // USER\n [Event.USER_CREATED]: `User \"{{ email }}\" created{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_UPDATED]: `User \"{{ email }}\" updated{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_DELETED]: `User \"{{ email }}\" deleted{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_PERMISSION_ADMIN_ASSIGNED]: `User \"{{ email }}\" admin role assigned`,\n [Event.USER_PERMISSION_ADMIN_REMOVED]: `User \"{{ email }}\" admin role removed`,\n [Event.USER_PERMISSION_BUILDER_ASSIGNED]: `User \"{{ email }}\" builder role assigned`,\n [Event.USER_PERMISSION_BUILDER_REMOVED]: `User \"{{ email }}\" builder role removed`,\n [Event.USER_INVITED]: `User \"{{ email }}\" invited`,\n [Event.USER_INVITED_ACCEPTED]: `User \"{{ email }}\" accepted invite`,\n [Event.USER_PASSWORD_UPDATED]: `User \"{{ email }}\" password updated`,\n [Event.USER_PASSWORD_RESET_REQUESTED]: `User \"{{ email }}\" password reset requested`,\n [Event.USER_PASSWORD_RESET]: `User \"{{ email }}\" password reset`,\n [Event.USER_GROUP_CREATED]: `User group \"{{ name }}\" created{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_UPDATED]: `User group \"{{ name }}\" updated{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_DELETED]: `User group \"{{ name }}\" deleted{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_USERS_ADDED]: `User group \"{{ name }}\" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_USERS_REMOVED]: `User group \"{{ name }}\" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_PERMISSIONS_EDITED]: `User group \"{{ name }}\" permissions edited`,\n [Event.USER_PASSWORD_FORCE_RESET]: undefined,\n [Event.USER_GROUP_ONBOARDING]: undefined,\n [Event.USER_ONBOARDING_COMPLETE]: undefined,\n [Event.USER_DATA_COLLABORATION]: undefined,\n\n // EMAIL\n [Event.EMAIL_SMTP_CREATED]: `Email configuration created`,\n [Event.EMAIL_SMTP_UPDATED]: `Email configuration updated`,\n\n // AI\n [Event.AI_CONFIG_CREATED]: `AI configuration created`,\n [Event.AI_CONFIG_UPDATED]: `AI configuration updated`,\n\n // AUTH\n [Event.AUTH_SSO_CREATED]: `SSO configuration created`,\n [Event.AUTH_SSO_UPDATED]: `SSO configuration updated`,\n [Event.AUTH_SSO_ACTIVATED]: `SSO configuration activated`,\n [Event.AUTH_SSO_DEACTIVATED]: `SSO configuration deactivated`,\n [Event.AUTH_LOGIN]: `User \"{{ email }}\" logged in`,\n [Event.AUTH_LOGOUT]: `User \"{{ email }}\" logged out`,\n\n // ORG\n [Event.ORG_NAME_UPDATED]: `Organisation name updated`,\n [Event.ORG_LOGO_UPDATED]: `Organisation logo updated`,\n [Event.ORG_PLATFORM_URL_UPDATED]: `Organisation platform URL updated`,\n\n // APP\n [Event.APP_CREATED]: `App \"{{ name }}\" created`,\n [Event.APP_UPDATED]: `App \"{{ name }}\" updated`,\n [Event.APP_DELETED]: `App \"{{ name }}\" deleted`,\n [Event.APP_DUPLICATED]: `App \"{{ name }}\" duplicated`,\n [Event.APP_PUBLISHED]: `App \"{{ name }}\" published`,\n [Event.APP_UNPUBLISHED]: `App \"{{ name }}\" unpublished`,\n [Event.APP_TEMPLATE_IMPORTED]: `App \"{{ name }}\" template imported`,\n [Event.APP_FILE_IMPORTED]: `App \"{{ name }}\" file imported`,\n [Event.APP_VERSION_UPDATED]: `App \"{{ name }}\" version updated`,\n [Event.APP_VERSION_REVERTED]: `App \"{{ name }}\" version reverted`,\n [Event.APP_REVERTED]: `App \"{{ name }}\" reverted`,\n [Event.APP_EXPORTED]: `App \"{{ name }}\" exported`,\n [Event.APP_BACKUP_RESTORED]: `App backup \"{{ name }}\" restored`,\n [Event.APP_BACKUP_TRIGGERED]: `App backup \"{{ name }}\" triggered`,\n\n // DATASOURCE\n [Event.DATASOURCE_CREATED]: `Datasource created`,\n [Event.DATASOURCE_UPDATED]: `Datasource updated`,\n [Event.DATASOURCE_DELETED]: `Datasource deleted`,\n\n // QUERY\n [Event.QUERY_CREATED]: `Query created`,\n [Event.QUERY_UPDATED]: `Query updated`,\n [Event.QUERY_DELETED]: `Query deleted`,\n [Event.QUERY_IMPORT]: `Query import`,\n [Event.QUERIES_RUN]: undefined,\n [Event.QUERY_PREVIEWED]: undefined,\n\n // TABLE\n [Event.TABLE_CREATED]: `Table \"{{ name }}\" created`,\n [Event.TABLE_UPDATED]: `Table \"{{ name }}\" updated`,\n [Event.TABLE_DELETED]: `Table \"{{ name }}\" deleted`,\n [Event.TABLE_EXPORTED]: `Table \"{{ name }}\" exported`,\n [Event.TABLE_IMPORTED]: `Table \"{{ name }}\" imported`,\n [Event.TABLE_DATA_IMPORTED]: `Data imported to table`,\n\n // ROWS\n [Event.ROWS_CREATED]: `Rows created`,\n [Event.ROWS_IMPORTED]: `Rows imported`,\n\n // AUTOMATION\n [Event.AUTOMATION_CREATED]: `Automation \"{{ name }}\" created`,\n [Event.AUTOMATION_DELETED]: `Automation \"{{ name }}\" deleted`,\n [Event.AUTOMATION_STEP_CREATED]: `Automation \"{{ name }}\" step added`,\n [Event.AUTOMATION_STEP_DELETED]: `Automation \"{{ name }}\" step removed`,\n [Event.AUTOMATION_TESTED]: undefined,\n [Event.AUTOMATIONS_RUN]: undefined,\n [Event.AUTOMATION_TRIGGER_UPDATED]: undefined,\n\n // SCREEN\n [Event.SCREEN_CREATED]: `Screen \"{{ name }}\" created`,\n [Event.SCREEN_DELETED]: `Screen \"{{ name }}\" deleted`,\n\n // COMPONENT\n [Event.COMPONENT_CREATED]: `Component created`,\n [Event.COMPONENT_DELETED]: `Component deleted`,\n\n // ENVIRONMENT VARIABLE\n [Event.ENVIRONMENT_VARIABLE_CREATED]: `Environment variable created`,\n [Event.ENVIRONMENT_VARIABLE_DELETED]: `Environment variable deleted`,\n [Event.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED]: undefined,\n\n // PLUGIN\n [Event.PLUGIN_IMPORTED]: `Plugin imported`,\n [Event.PLUGIN_DELETED]: `Plugin deleted`,\n [Event.PLUGIN_INIT]: undefined,\n\n // ROLE - NOT AUDITED\n [Event.ROLE_CREATED]: undefined,\n [Event.ROLE_UPDATED]: undefined,\n [Event.ROLE_DELETED]: undefined,\n [Event.ROLE_ASSIGNED]: undefined,\n [Event.ROLE_UNASSIGNED]: undefined,\n\n // LICENSE - NOT AUDITED\n [Event.LICENSE_PLAN_CHANGED]: undefined,\n [Event.LICENSE_ACTIVATED]: undefined,\n [Event.LICENSE_PAYMENT_FAILED]: undefined,\n [Event.LICENSE_PAYMENT_RECOVERED]: undefined,\n [Event.LICENSE_CHECKOUT_OPENED]: undefined,\n [Event.LICENSE_CHECKOUT_SUCCESS]: undefined,\n [Event.LICENSE_PORTAL_OPENED]: undefined,\n\n // ACCOUNT - NOT AUDITED\n [Event.ACCOUNT_CREATED]: undefined,\n [Event.ACCOUNT_DELETED]: undefined,\n [Event.ACCOUNT_VERIFIED]: undefined,\n\n // BACKFILL - NOT AUDITED\n [Event.APP_BACKFILL_SUCCEEDED]: undefined,\n [Event.APP_BACKFILL_FAILED]: undefined,\n [Event.TENANT_BACKFILL_SUCCEEDED]: undefined,\n [Event.TENANT_BACKFILL_FAILED]: undefined,\n [Event.INSTALLATION_BACKFILL_SUCCEEDED]: undefined,\n [Event.INSTALLATION_BACKFILL_FAILED]: undefined,\n\n // LAYOUT - NOT AUDITED\n [Event.LAYOUT_CREATED]: undefined,\n [Event.LAYOUT_DELETED]: undefined,\n\n // VIEW - NOT AUDITED\n [Event.VIEW_CREATED]: undefined,\n [Event.VIEW_UPDATED]: undefined,\n [Event.VIEW_DELETED]: undefined,\n [Event.VIEW_EXPORTED]: undefined,\n [Event.VIEW_FILTER_CREATED]: undefined,\n [Event.VIEW_FILTER_UPDATED]: undefined,\n [Event.VIEW_FILTER_DELETED]: undefined,\n [Event.VIEW_CALCULATION_CREATED]: undefined,\n [Event.VIEW_CALCULATION_UPDATED]: undefined,\n [Event.VIEW_CALCULATION_DELETED]: undefined,\n [Event.VIEW_JOIN_CREATED]: undefined,\n\n // SERVED - NOT AUDITED\n [Event.SERVED_BUILDER]: undefined,\n [Event.SERVED_APP]: undefined,\n [Event.SERVED_APP_PREVIEW]: undefined,\n\n // ANALYTICS - NOT AUDITED\n [Event.ANALYTICS_OPT_OUT]: undefined,\n [Event.ANALYTICS_OPT_IN]: undefined,\n\n // INSTALLATION - NOT AUDITED\n [Event.INSTALLATION_VERSION_CHECKED]: undefined,\n [Event.INSTALLATION_VERSION_UPGRADED]: undefined,\n [Event.INSTALLATION_VERSION_DOWNGRADED]: undefined,\n [Event.INSTALLATION_FIRST_STARTUP]: undefined,\n\n // AUDIT LOG - NOT AUDITED\n [Event.AUDIT_LOGS_FILTERED]: undefined,\n [Event.AUDIT_LOGS_DOWNLOADED]: undefined,\n\n // ROW ACTIONS - NOT AUDITED\n [Event.ROW_ACTION_CREATED]: undefined,\n}\n\n// properties added at the final stage of the event pipeline\nexport interface BaseEvent {\n version?: string\n service?: string\n environment?: string\n appId?: string\n installationId?: string\n tenantId?: string\n hosting?: Hosting\n // any props in the audited section will be removed before passing events\n // up out of system (purely for use with auditing)\n audited?: {\n [key: string]: any\n }\n}\n\nexport type TableExportFormat = \"json\" | \"csv\"\n\nexport type DocUpdateEvent = {\n id: string\n tenantId: string\n appId?: string\n}\n\nexport interface EventProcessor {\n processEvent(\n event: Event,\n identity: Identity,\n properties: any,\n timestamp?: string | number\n ): Promise<void>\n identify?(identity: Identity, timestamp?: string | number): Promise<void>\n identifyGroup?(group: Group, timestamp?: string | number): Promise<void>\n shutdown?(): void\n}\n", "import { Hosting } from \"..\"\n\n// GROUPS\n\nexport enum GroupType {\n TENANT = \"tenant\",\n INSTALLATION = \"installation\",\n}\n\nexport interface Group {\n id: string\n type: IdentityType\n environment: string\n hosting: Hosting\n}\n\nexport interface TenantGroup extends Group {\n // account level information is associated with the tenant group\n // as we don't have this at the user level\n profession?: string // only available in cloud\n companySize?: string // only available in cloud\n installationId: string\n}\n\nexport interface InstallationGroup extends Group {\n version: string\n}\n\n// IDENTITIES\n\nexport enum IdentityType {\n USER = \"user\",\n TENANT = \"tenant\",\n INSTALLATION = \"installation\",\n}\n\nexport interface HostInfo {\n ipAddress?: string\n userAgent?: string\n}\n\nexport interface Identity {\n id: string\n type: IdentityType\n hosting: Hosting\n environment: string\n installationId?: string\n tenantId?: string\n // usable - no unique format\n realTenantId?: string\n hostInfo?: HostInfo\n}\n\nexport interface UserIdentity extends Identity {\n verified: boolean\n accountHolder: boolean\n providerType?: string\n builder?: boolean\n admin?: boolean\n}\n", "export enum PlanType {\n FREE = \"free\",\n /** @deprecated */\n PRO = \"pro\",\n /** @deprecated */\n TEAM = \"team\",\n /** @deprecated */\n PREMIUM = \"premium\",\n PREMIUM_PLUS = \"premium_plus\",\n PREMIUM_PLUS_TRIAL = \"premium_plus_trial\",\n /** @deprecated */\n BUSINESS = \"business\",\n ENTERPRISE_BASIC = \"enterprise_basic\",\n ENTERPRISE_BASIC_TRIAL = \"enterprise_basic_trial\",\n ENTERPRISE = \"enterprise\",\n}\n\nexport enum PriceDuration {\n MONTHLY = \"monthly\",\n YEARLY = \"yearly\",\n}\n\nexport interface AvailablePlan {\n type: PlanType\n maxUsers: number\n prices: AvailablePrice[]\n}\n\nexport interface AvailablePrice {\n amount: number\n amountMonthly: number\n currency: string\n duration: PriceDuration\n priceId: string\n type?: string\n}\n\nexport enum PlanModel {\n PER_USER = \"perUser\",\n PER_CREATOR_PER_USER = \"per_creator_per_user\",\n}\n\nexport interface PurchasedPlan {\n type: PlanType\n model: PlanModel\n usesInvoicing: boolean\n price?: PurchasedPrice\n}\n\nexport interface PurchasedPrice extends AvailablePrice {\n /** @deprecated - now at the plan level via model */\n isPerUser: boolean\n}\n", "import { PlanType } from \".\"\n\nexport enum QuotaUsageType {\n STATIC = \"static\",\n MONTHLY = \"monthly\",\n}\n\nexport enum QuotaType {\n USAGE = \"usage\",\n CONSTANT = \"constant\",\n}\n\nexport enum StaticQuotaName {\n ROWS = \"rows\",\n APPS = \"apps\",\n USERS = \"users\",\n CREATORS = \"creators\",\n USER_GROUPS = \"userGroups\",\n PLUGINS = \"plugins\",\n AI_CUSTOM_CONFIGS = \"aiCustomConfigs\",\n}\n\nexport enum MonthlyQuotaName {\n QUERIES = \"queries\",\n AUTOMATIONS = \"automations\",\n BUDIBASE_AI_CREDITS = \"budibaseAICredits\",\n}\n\nexport enum ConstantQuotaName {\n AUTOMATION_LOG_RETENTION_DAYS = \"automationLogRetentionDays\",\n APP_BACKUPS_RETENTION_DAYS = \"appBackupRetentionDays\",\n}\n\nexport type MeteredQuotaName = StaticQuotaName | MonthlyQuotaName\nexport type QuotaName = StaticQuotaName | MonthlyQuotaName | ConstantQuotaName\n\nexport const isStaticQuota = (\n quotaType: QuotaType,\n usageType: QuotaUsageType,\n name: QuotaName\n): name is StaticQuotaName => {\n return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.STATIC\n}\n\nexport const isMonthlyQuota = (\n quotaType: QuotaType,\n usageType: QuotaUsageType,\n name: QuotaName\n): name is MonthlyQuotaName => {\n return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.MONTHLY\n}\n\nexport const isConstantQuota = (\n quotaType: QuotaType,\n name: QuotaName\n): name is ConstantQuotaName => {\n return quotaType === QuotaType.CONSTANT\n}\n\nexport type PlanQuotas = { [key in PlanType]: Quotas | undefined }\n\nexport type MonthlyQuotas = {\n [MonthlyQuotaName.QUERIES]: Quota\n [MonthlyQuotaName.AUTOMATIONS]: Quota\n [MonthlyQuotaName.BUDIBASE_AI_CREDITS]: Quota\n}\n\nexport type StaticQuotas = {\n [StaticQuotaName.ROWS]: Quota\n [StaticQuotaName.APPS]: Quota\n [StaticQuotaName.USERS]: Quota\n [StaticQuotaName.CREATORS]: Quota\n [StaticQuotaName.USER_GROUPS]: Quota\n [StaticQuotaName.PLUGINS]: Quota\n [StaticQuotaName.AI_CUSTOM_CONFIGS]: Quota\n}\n\nexport type ConstantQuotas = {\n [ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS]: Quota\n [ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS]: Quota\n}\n\nexport type Quotas = {\n [QuotaType.USAGE]: {\n [QuotaUsageType.MONTHLY]: MonthlyQuotas\n [QuotaUsageType.STATIC]: StaticQuotas\n }\n [QuotaType.CONSTANT]: ConstantQuotas\n}\n\nexport interface Quota {\n name: string\n value: number\n /**\n * Array of whole numbers (1-100) that dictate the percentage that this quota should trigger\n * at in relation to the corresponding usage inside budibase.\n *\n * Triggering results in a budibase installation sending a request to account-portal,\n * which can have subsequent effects such as sending emails to users.\n */\n triggers: number[]\n startDate?: number\n}\n", "import { PlanType } from \"./plan\"\n\nexport enum Feature {\n USER_GROUPS = \"userGroups\",\n APP_BACKUPS = \"appBackups\",\n ENVIRONMENT_VARIABLES = \"environmentVariables\",\n AUDIT_LOGS = \"auditLogs\",\n ENFORCEABLE_SSO = \"enforceableSSO\",\n BRANDING = \"branding\",\n SCIM = \"scim\",\n SYNC_AUTOMATIONS = \"syncAutomations\",\n TRIGGER_AUTOMATION_RUN = \"triggerAutomationRun\",\n APP_BUILDERS = \"appBuilders\",\n OFFLINE = \"offline\",\n EXPANDED_PUBLIC_API = \"expandedPublicApi\",\n // deprecated - no longer licensed\n VIEW_PERMISSIONS = \"viewPermissions\",\n VIEW_READONLY_COLUMNS = \"viewReadonlyColumns\",\n BUDIBASE_AI = \"budibaseAI\",\n AI_CUSTOM_CONFIGS = \"aiCustomConfigs\",\n}\n\nexport type PlanFeatures = { [key in PlanType]: Feature[] | undefined }\n", "import { Table, Row } from \"../documents\"\nimport { EnrichedQueryJson } from \"./search\"\n\nexport const PASSWORD_REPLACEMENT = \"--secret-value--\"\n\nexport enum Operation {\n CREATE = \"CREATE\",\n READ = \"READ\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n COUNT = \"COUNT\",\n BULK_CREATE = \"BULK_CREATE\",\n BULK_UPSERT = \"BULK_UPSERT\",\n CREATE_TABLE = \"CREATE_TABLE\",\n UPDATE_TABLE = \"UPDATE_TABLE\",\n DELETE_TABLE = \"DELETE_TABLE\",\n}\n\nexport const RowOperations = [\n Operation.CREATE,\n Operation.READ,\n Operation.UPDATE,\n Operation.DELETE,\n Operation.BULK_CREATE,\n Operation.BULK_UPSERT,\n]\n\nexport enum QueryType {\n SQL = \"sql\",\n JSON = \"json\",\n FIELDS = \"fields\",\n}\n\nexport enum DatasourceFieldType {\n STRING = \"string\",\n CODE = \"code\",\n LONGFORM = \"longForm\",\n BOOLEAN = \"boolean\",\n NUMBER = \"number\",\n PASSWORD = \"password\",\n LIST = \"list\",\n OBJECT = \"object\",\n JSON = \"json\",\n FILE = \"file\",\n FIELD_GROUP = \"fieldGroup\",\n SELECT = \"select\",\n}\n\nexport enum SourceName {\n POSTGRES = \"POSTGRES\",\n DYNAMODB = \"DYNAMODB\",\n MONGODB = \"MONGODB\",\n ELASTICSEARCH = \"ELASTICSEARCH\",\n COUCHDB = \"COUCHDB\",\n SQL_SERVER = \"SQL_SERVER\",\n S3 = \"S3\",\n AIRTABLE = \"AIRTABLE\",\n MYSQL = \"MYSQL\",\n ARANGODB = \"ARANGODB\",\n REST = \"REST\",\n ORACLE = \"ORACLE\",\n GOOGLE_SHEETS = \"GOOGLE_SHEETS\",\n FIRESTORE = \"FIRESTORE\",\n REDIS = \"REDIS\",\n SNOWFLAKE = \"SNOWFLAKE\",\n BUDIBASE = \"BUDIBASE\",\n}\n\nexport enum IncludeRelationship {\n INCLUDE = 1,\n EXCLUDE = 0,\n}\n\nexport enum FilterType {\n STRING = \"string\",\n FUZZY = \"fuzzy\",\n RANGE = \"range\",\n EQUAL = \"equal\",\n NOT_EQUAL = \"notEqual\",\n EMPTY = \"empty\",\n NOT_EMPTY = \"notEmpty\",\n ONE_OF = \"oneOf\",\n}\n\nexport enum DatasourceFeature {\n CONNECTION_CHECKING = \"connection\",\n FETCH_TABLE_NAMES = \"fetch_table_names\",\n EXPORT_SCHEMA = \"export_schema\",\n}\n\nexport interface StepDefinition {\n key: string\n template: string\n}\n\nexport interface QueryDefinition {\n type: QueryType\n displayName?: string\n readable?: boolean\n customisable?: boolean\n fields?: object\n urlDisplay?: boolean\n steps?: Array<StepDefinition>\n}\n\nexport interface ExtraQueryConfig {\n [key: string]: {\n displayName: string\n type: string\n required: boolean\n data?: object\n }\n}\n\ninterface DatasourceBasicFieldConfig {\n type: DatasourceFieldType\n display?: string\n required?: boolean\n default?: any\n deprecated?: boolean\n hidden?: string\n placeholder?: string\n}\n\ninterface DatasourceSelectFieldConfig extends DatasourceBasicFieldConfig {\n type: DatasourceFieldType.SELECT\n config: { options: string[] }\n}\n\ninterface DatasourceFieldGroupConfig extends DatasourceBasicFieldConfig {\n type: DatasourceFieldType.FIELD_GROUP\n config: {\n openByDefault?: boolean\n nestedFields?: boolean\n }\n}\n\ntype DatasourceFieldConfig =\n | DatasourceSelectFieldConfig\n | DatasourceFieldGroupConfig\n | DatasourceBasicFieldConfig\n\nexport interface DatasourceConfig {\n [key: string]: DatasourceFieldConfig & {\n fields?: DatasourceConfig\n }\n}\n\nexport interface Integration {\n docs: string\n plus?: boolean\n isSQL?: boolean\n auth?: { type: string }\n features?: Partial<Record<DatasourceFeature, boolean>>\n relationships?: boolean\n description: string\n friendlyName: string\n type?: string\n iconUrl?: string\n datasource: DatasourceConfig\n query: {\n [key: string]: QueryDefinition\n }\n extra?: ExtraQueryConfig\n}\n\nexport type ConnectionInfo = {\n connected: boolean\n error?: string\n}\n\nexport interface IntegrationBase {\n create?(query: any): Promise<any[] | any>\n read?(query: any): Promise<any[] | any>\n update?(query: any): Promise<any[] | any>\n delete?(query: any): Promise<any[] | any>\n testConnection?(): Promise<ConnectionInfo>\n getExternalSchema?(): Promise<string>\n defineTypeCastingFromSchema?(schema: {\n [key: string]: {\n name: string\n type: string\n }\n }): void\n}\n\nexport interface Schema {\n tables: Record<string, Table>\n errors: Record<string, string>\n}\n\n// return these when an operation occurred but we got no response\nexport enum DSPlusOperation {\n CREATE = \"create\",\n READ = \"read\",\n UPDATE = \"update\",\n DELETE = \"delete\",\n}\n\nexport type DatasourcePlusQueryResponse =\n | Row[]\n | Record<DSPlusOperation, boolean>[]\n | { total: number }[]\n | void\n\nexport interface DatasourcePlus extends IntegrationBase {\n // if the datasource supports the use of bindings directly (to protect against SQL injection)\n // this returns the format of the identifier\n getBindingIdentifier(): string\n getStringConcat(parts: string[]): string\n query(json: EnrichedQueryJson): Promise<DatasourcePlusQueryResponse>\n buildSchema(\n datasourceId: string,\n entities: Record<string, Table>\n ): Promise<Schema>\n getTableNames(): Promise<string[]>\n}\n", "import { Operation } from \"./datasources\"\nimport { Row, DocumentType, Table, Datasource } from \"../documents\"\nimport { SortOrder, SortType } from \"../api\"\nimport { Knex } from \"knex\"\nimport { Aggregation } from \"./row\"\n\nexport enum BasicOperator {\n EQUAL = \"equal\",\n NOT_EQUAL = \"notEqual\",\n EMPTY = \"empty\",\n NOT_EMPTY = \"notEmpty\",\n FUZZY = \"fuzzy\",\n STRING = \"string\",\n}\n\nexport enum ArrayOperator {\n CONTAINS = \"contains\",\n NOT_CONTAINS = \"notContains\",\n CONTAINS_ANY = \"containsAny\",\n ONE_OF = \"oneOf\",\n}\n\nexport enum RangeOperator {\n RANGE = \"range\",\n}\n\nexport enum LogicalOperator {\n AND = \"$and\",\n OR = \"$or\",\n}\n\nexport function isLogicalSearchOperator(\n value: string\n): value is LogicalOperator {\n return Object.values(LogicalOperator).includes(value as LogicalOperator)\n}\n\nexport function isBasicSearchOperator(value: string): value is BasicOperator {\n return Object.values(BasicOperator).includes(value as BasicOperator)\n}\n\nexport function isArraySearchOperator(value: string): value is ArrayOperator {\n return Object.values(ArrayOperator).includes(value as ArrayOperator)\n}\n\nexport function isRangeSearchOperator(value: string): value is RangeOperator {\n return Object.values(RangeOperator).includes(value as RangeOperator)\n}\n\nexport type SearchFilterOperator =\n | BasicOperator\n | ArrayOperator\n | RangeOperator\n | LogicalOperator\n\nexport enum InternalSearchFilterOperator {\n COMPLEX_ID_OPERATOR = \"_complexIdOperator\",\n}\n\ntype BasicFilter<T = any> = Record<string, T> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: never\n}\n\nexport type ArrayFilter = Record<string, any[]> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: {\n id: string[]\n values: string[]\n }\n}\n\ntype RangeFilter = Record<\n string,\n | {\n high: number | string\n low: number | string\n }\n | { high: number | string }\n | { low: number | string }\n> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: never\n}\n\ntype LogicalFilter = { conditions: SearchFilters[] }\n\nexport type AnySearchFilter = BasicFilter | ArrayFilter | RangeFilter\n\nexport interface SearchFilters {\n allOr?: boolean\n // TODO: this is just around for now - we need a better way to do or/and\n // allows just fuzzy to be or - all the fuzzy/like parameters\n fuzzyOr?: boolean\n onEmptyFilter?: EmptyFilterOption\n [BasicOperator.STRING]?: BasicFilter<string>\n [BasicOperator.FUZZY]?: BasicFilter<string>\n [RangeOperator.RANGE]?: RangeFilter\n [BasicOperator.EQUAL]?: BasicFilter\n [BasicOperator.NOT_EQUAL]?: BasicFilter\n [BasicOperator.EMPTY]?: BasicFilter\n [BasicOperator.NOT_EMPTY]?: BasicFilter\n [ArrayOperator.ONE_OF]?: ArrayFilter\n [ArrayOperator.CONTAINS]?: ArrayFilter\n [ArrayOperator.NOT_CONTAINS]?: ArrayFilter\n [ArrayOperator.CONTAINS_ANY]?: ArrayFilter\n // specific to SQS/SQLite search on internal tables this can be used\n // to make sure the documents returned are always filtered down to a\n // specific document type (such as just rows)\n documentType?: DocumentType\n\n [LogicalOperator.AND]?: LogicalFilter\n [LogicalOperator.OR]?: LogicalFilter\n}\n\nexport type SearchFilterKey = keyof Omit<\n SearchFilters,\n \"allOr\" | \"onEmptyFilter\" | \"fuzzyOr\" | \"documentType\"\n>\n\nexport type SearchQueryFields = Omit<SearchFilters, \"allOr\" | \"onEmptyFilter\">\n\nexport interface SortJson {\n [key: string]: {\n direction: SortOrder\n type?: SortType\n }\n}\n\nexport interface PaginationJson {\n limit: number\n page?: string | number\n offset?: number\n}\n\nexport interface RenameColumn {\n old: string\n updated: string\n}\n\nexport interface RelationshipsJson {\n through?: string\n from?: string\n to?: string\n fromPrimary?: string\n toPrimary?: string\n tableName: string\n column: string\n}\n\n// TODO - this can be combined with the above type\nexport interface ManyToManyRelationshipJson {\n through: string\n from: string\n to: string\n fromPrimary: string\n toPrimary: string\n tableName: string\n column: string\n}\n\nexport interface QueryJson {\n endpoint: {\n datasourceId: string | Datasource\n entityId: string | Table\n operation: Operation\n schema?: string\n }\n resource?: {\n fields: string[]\n aggregations?: Aggregation[]\n }\n filters?: SearchFilters\n sort?: SortJson\n paginate?: PaginationJson\n body?: Row | Row[]\n meta?: {\n renamed?: RenameColumn\n oldTable?: Table\n // can specify something that columns could be prefixed with\n columnPrefix?: string\n }\n extra?: {\n idFilter?: SearchFilters\n }\n relationships?: RelationshipsJson[]\n tableAliases?: Record<string, string>\n}\n\nexport interface EnrichedQueryJson extends Omit<QueryJson, \"endpoint\"> {\n operation: Operation\n table: Table\n tables: Record<string, Table>\n datasource?: Datasource\n schema?: string\n}\n\nexport interface QueryOptions {\n disableReturning?: boolean\n disableBindings?: boolean\n}\n\nexport type SqlQueryBinding = Knex.Value[]\n\nexport interface SqlQuery {\n sql: string\n bindings?: SqlQueryBinding\n}\n\nexport enum EmptyFilterOption {\n RETURN_ALL = \"all\",\n RETURN_NONE = \"none\",\n}\n\nexport enum UILogicalOperator {\n ALL = \"all\",\n ANY = \"any\",\n}\n\nexport enum SqlClient {\n MS_SQL = \"mssql\",\n POSTGRES = \"pg\",\n MY_SQL = \"mysql2\",\n MARIADB = \"mariadb\",\n ORACLE = \"oracledb\",\n SQL_LITE = \"sqlite3\",\n}\n", "import { Context, Request } from \"koa\"\nimport {\n User,\n Role,\n UserRoles,\n Account,\n ConfigType,\n Row,\n Table,\n UserBindings,\n} from \"../documents\"\nimport { FeatureFlag, License } from \"../sdk\"\nimport { Files } from \"formidable\"\nimport { EventType } from \"../core\"\nimport { UserAgentContext } from \"koa-useragent\"\n\nexport enum LoginMethod {\n API_KEY = \"api_key\",\n COOKIE = \"cookie\",\n}\n\nexport interface ContextUser extends Omit<User, \"roles\"> {\n globalId?: string\n license?: License\n userId?: string\n roleId?: string | null\n role?: Role\n roles?: UserRoles\n csrfToken?: string\n featureFlags?: FeatureFlag[]\n accountPortalAccess?: boolean\n providerType?: ConfigType\n account?: Account\n}\n\n/**\n * Add support for koa-body in context.\n */\nexport interface BBRequest<RequestBody> extends Request {\n body: RequestBody\n files?: Files\n}\n\n/**\n * Basic context with no user.\n */\nexport interface Ctx<RequestBody = any, ResponseBody = any> extends Context {\n request: BBRequest<RequestBody>\n body: ResponseBody\n userAgent: UserAgentContext[\"userAgent\"]\n state: { nonce?: string }\n}\n\n/**\n * Authenticated context.\n */\nexport interface UserCtx<RequestBody = any, ResponseBody = any>\n extends Ctx<RequestBody, ResponseBody> {\n user: ContextUser\n state: { nonce?: string }\n roleId?: string\n eventEmitter?: ContextEmitter\n loginMethod?: LoginMethod\n}\n\n/**\n * @deprecated: Use UserCtx / Ctx appropriately\n * Authenticated context.\n */\nexport interface BBContext extends Ctx {\n user?: ContextUser\n}\n\nexport interface ContextEmitter {\n emitRow(values: {\n eventName: EventType.ROW_SAVE\n appId: string\n row: Row\n table: Table\n user: UserBindings\n }): void\n emitRow(values: {\n eventName: EventType.ROW_UPDATE\n appId: string\n row: Row\n table: Table\n oldRow: Row\n user: UserBindings\n }): void\n emitRow(values: {\n eventName: EventType.ROW_DELETE\n appId: string\n row: Row\n user: UserBindings\n }): void\n emitTable(\n eventName: EventType.TABLE_SAVE | EventType.TABLE_DELETE,\n appId: string,\n table?: Table\n ): void\n}\n", "import Redlock from \"redlock\"\n\nexport enum LockType {\n /**\n * If this lock is already held the attempted operation will not be performed.\n * No retries will take place and no error will be thrown.\n */\n TRY_ONCE = \"try_once\",\n TRY_TWICE = \"try_twice\",\n DEFAULT = \"default\",\n DELAY_500 = \"delay_500\",\n CUSTOM = \"custom\",\n AUTO_EXTEND = \"auto_extend\",\n}\n\nexport enum LockName {\n MIGRATIONS = \"migrations\",\n TRIGGER_QUOTA = \"trigger_quota\",\n SYNC_ACCOUNT_LICENSE = \"sync_account_license\",\n UPDATE_TENANTS_DOC = \"update_tenants_doc\",\n PERSIST_WRITETHROUGH = \"persist_writethrough\",\n QUOTA_USAGE_EVENT = \"quota_usage_event\",\n APP_MIGRATION = \"app_migrations\",\n PROCESS_USER_INVITE = \"process_user_invite\",\n}\n\nexport type LockOptions = {\n /**\n * The lock type determines which client to use\n */\n type: LockType\n /**\n * The custom options to use when creating the redlock instance\n * type must be set to custom for the options to be applied\n */\n customOptions?: Redlock.Options\n /**\n * The name for the lock\n */\n name: LockName\n /**\n * The individual resource to lock. This is useful for locking around very specific identifiers, e.g. a document that is prone to conflicts\n */\n resource?: string\n /**\n * This is a system-wide lock - don't use tenancy in lock key\n */\n systemLock?: boolean\n} & (\n | {\n /**\n * The ttl to auto-expire the lock if not unlocked manually\n */\n ttl: number\n type: Exclude<LockType, LockType.AUTO_EXTEND>\n }\n | {\n type: LockType.AUTO_EXTEND\n onExtend?: () => void\n }\n)\n", "import type Nano from \"@budibase/nano\"\nimport {\n AllDocsResponse,\n AnyDocument,\n Document,\n RowValue,\n SqlQueryBinding,\n ViewTemplateOpts,\n} from \"../\"\nimport { Writable } from \"stream\"\nimport type PouchDB from \"pouchdb-find\"\n\nexport enum SearchIndex {\n ROWS = \"rows\",\n USER = \"user\",\n}\n\nexport type PouchOptions = {\n inMemory?: boolean\n replication?: boolean\n onDisk?: boolean\n find?: boolean\n}\n\nexport enum SortOption {\n ASCENDING = \"asc\",\n DESCENDING = \"desc\",\n}\n\nexport type IndexAnalyzer = {\n name: string\n default?: string\n fields?: Record<string, string>\n}\n\nexport type DBView = {\n name?: string\n map: string\n reduce?: string\n meta?: ViewTemplateOpts\n groupBy?: string\n}\n\nexport interface DesignDocument extends Document {\n // we use this static reference for all design documents\n _id: \"_design/database\"\n language?: string\n // CouchDB views\n views?: {\n [viewName: string]: DBView\n }\n // Lucene indexes\n indexes?: {\n [indexName: string]: {\n index: string\n analyzer?: string | IndexAnalyzer\n }\n }\n}\n\nexport type CouchFindOptions = {\n selector: PouchDB.Find.Selector\n fields?: string[]\n sort?: {\n [key: string]: SortOption\n }[]\n limit?: number\n skip?: number\n bookmark?: string\n}\n\nexport type DatabaseOpts = {\n skip_setup?: boolean\n}\n\nexport type DatabasePutOpts = {\n force?: boolean\n}\n\nexport type DatabaseCreateIndexOpts = {\n index: {\n fields: string[]\n name?: string | undefined\n ddoc?: string | undefined\n type?: string | undefined\n }\n}\n\nexport type DatabaseDeleteIndexOpts = {\n name: string\n ddoc: string\n type?: string | undefined\n}\n\ntype DBPrimitiveKey = string | number | {}\nexport type DatabaseKey = DBPrimitiveKey | DBPrimitiveKey[]\n\nexport type DatabaseQueryOpts = {\n include_docs?: boolean\n startkey?: DatabaseKey\n endkey?: DatabaseKey\n limit?: number\n skip?: number\n descending?: boolean\n key?: DatabaseKey\n keys?: DatabaseKey[]\n group?: boolean\n startkey_docid?: string\n}\n\nexport const isDocument = (doc: any): doc is Document => {\n return typeof doc === \"object\" && doc._id && doc._rev\n}\n\nexport interface DatabaseDumpOpts {\n filter?: (doc: AnyDocument) => boolean\n batch_size?: number\n batch_limit?: number\n style?: \"main_only\" | \"all_docs\"\n timeout?: number\n doc_ids?: string[]\n query_params?: any\n view?: string\n selector?: any\n}\n\nexport interface Database {\n name: string\n\n exists(): Promise<boolean>\n exists(docId: string): Promise<boolean>\n /**\n * @deprecated the plan is to get everything using `tryGet` instead, then rename\n * `tryGet` to `get`.\n */\n get<T extends Document>(id?: string): Promise<T>\n tryGet<T extends Document>(id?: string): Promise<T | undefined>\n getMultiple<T extends Document>(\n ids: string[],\n opts?: { allowMissing?: boolean; excludeDocs?: boolean }\n ): Promise<T[]>\n remove(idOrDoc: Document): Promise<Nano.DocumentDestroyResponse>\n remove(idOrDoc: string, rev?: string): Promise<Nano.DocumentDestroyResponse>\n bulkRemove(\n documents: Document[],\n opts?: { silenceErrors?: boolean }\n ): Promise<void>\n put(\n document: AnyDocument,\n opts?: DatabasePutOpts\n ): Promise<Nano.DocumentInsertResponse>\n bulkDocs(documents: AnyDocument[]): Promise<Nano.DocumentBulkResponse[]>\n sql<T extends Document>(\n sql: string,\n parameters?: SqlQueryBinding\n ): Promise<T[]>\n sqlPurgeDocument(docIds: string[] | string): Promise<void>\n sqlDiskCleanup(): Promise<void>\n allDocs<T extends Document | RowValue>(\n params: DatabaseQueryOpts\n ): Promise<AllDocsResponse<T>>\n query<T extends Document>(\n viewName: string,\n params: DatabaseQueryOpts\n ): Promise<AllDocsResponse<T>>\n destroy(): Promise<Nano.OkResponse>\n compact(): Promise<Nano.OkResponse>\n // these are all PouchDB related functions that are rarely used - in future\n // should be replaced by better typed/non-pouch implemented methods\n dump(stream: Writable, opts?: DatabaseDumpOpts): Promise<any>\n load(...args: any[]): Promise<any>\n createIndex(...args: any[]): Promise<any>\n deleteIndex(...args: any[]): Promise<any>\n getIndexes(...args: any[]): Promise<any>\n}\n\nexport interface DBError extends Error {\n status: number\n statusCode: number\n reason: string\n name: string\n errid: string\n error: string\n description: string\n}\n", "export interface GetTenantIdOptions {\n allowNoTenant?: boolean\n excludeStrategies?: TenantResolutionStrategy[]\n includeStrategies?: TenantResolutionStrategy[]\n}\n\nexport enum TenantResolutionStrategy {\n USER = \"user\",\n HEADER = \"header\",\n QUERY = \"query\",\n SUBDOMAIN = \"subdomain\",\n PATH = \"path\",\n}\n", "export enum FeatureFlag {\n USE_ZOD_VALIDATOR = \"USE_ZOD_VALIDATOR\",\n\n // Account-portal\n DIRECT_LOGIN_TO_ACCOUNT_PORTAL = \"DIRECT_LOGIN_TO_ACCOUNT_PORTAL\",\n}\n\nexport const FeatureFlagDefaults = {\n [FeatureFlag.USE_ZOD_VALIDATOR]: false,\n\n // Account-portal\n [FeatureFlag.DIRECT_LOGIN_TO_ACCOUNT_PORTAL]: false,\n}\n\nexport type FeatureFlags = typeof FeatureFlagDefaults\n", "export enum AppEnvironment {\n PRODUCTION = \"production\",\n DEVELOPMENT = \"development\",\n}\n", "import { Event } from \"../events\"\n\nexport enum CommandWord {\n BACKUPS = \"backups\",\n HOSTING = \"hosting\",\n ANALYTICS = \"analytics\",\n HELP = \"help\",\n PLUGIN = \"plugins\",\n}\n\nexport enum InitType {\n QUICK = \"quick\",\n DIGITAL_OCEAN = \"do\",\n}\n\nexport const AnalyticsEvent = {\n OptOut: \"analytics:opt:out\",\n OptIn: \"analytics:opt:in\",\n SelfHostInit: \"hosting:init\",\n PluginInit: Event.PLUGIN_INIT,\n}\n", "// used in resource permissions - permissions can be at one of these levels\n// endpoints will set what type of permission they require (e.g. searching requires READ)\nexport enum PermissionLevel {\n READ = \"read\",\n WRITE = \"write\",\n EXECUTE = \"execute\",\n ADMIN = \"admin\",\n}\n\n// used within the role, specifies base permissions\nexport enum BuiltinPermissionID {\n PUBLIC = \"public\",\n READ_ONLY = \"read_only\",\n WRITE = \"write\",\n ADMIN = \"admin\",\n POWER = \"power\",\n}\n\n// these are the global types, that govern the underlying default behaviour\nexport enum PermissionType {\n APP = \"app\",\n TABLE = \"table\",\n USER = \"user\",\n AUTOMATION = \"automation\",\n WEBHOOK = \"webhook\",\n BUILDER = \"builder\",\n CREATOR = \"creator\",\n GLOBAL_BUILDER = \"globalBuilder\",\n QUERY = \"query\",\n VIEW = \"view\",\n LEGACY_VIEW = \"legacy_view\",\n}\n\nexport enum PermissionSource {\n EXPLICIT = \"EXPLICIT\",\n INHERITED = \"INHERITED\",\n BASE = \"BASE\",\n}\n\nexport interface Permission {\n type: PermissionType\n level: PermissionLevel\n}\n\nexport interface BuiltinPermission {\n _id: BuiltinPermissionID\n name: string\n permissions: Permission[]\n}\n\nexport type BuiltinPermissions = {\n [key in keyof typeof BuiltinPermissionID]: {\n _id: (typeof BuiltinPermissionID)[key]\n name: string\n permissions: Permission[]\n }\n}\n", "import { SortOrder, SortType } from \"../api\"\nimport { SearchFilters } from \"./search\"\nimport { CalculationType, Row } from \"../documents\"\nimport { WithRequired } from \"../shared\"\n\nexport interface BaseAggregation {\n name: string\n}\n\nexport interface NumericAggregation extends BaseAggregation {\n calculationType:\n | CalculationType.AVG\n | CalculationType.MAX\n | CalculationType.MIN\n | CalculationType.SUM\n field: string\n}\n\nexport interface CountAggregation extends BaseAggregation {\n calculationType: CalculationType.COUNT\n field: string\n}\n\nexport interface CountDistinctAggregation extends CountAggregation {\n distinct: true\n}\n\nexport type Aggregation =\n | NumericAggregation\n | CountAggregation\n | CountDistinctAggregation\n\nexport interface SearchParams {\n tableId?: string\n viewId?: string\n query?: SearchFilters\n paginate?: boolean\n bookmark?: string | number\n limit?: number\n sort?: string\n sortOrder?: SortOrder\n sortType?: SortType\n version?: string\n disableEscaping?: boolean\n fields?: string[]\n indexer?: () => Promise<any>\n rows?: Row[]\n countRows?: boolean\n}\n\n// when searching for rows we want a more extensive search type that requires certain properties\nexport interface RowSearchParams\n extends WithRequired<SearchParams, \"tableId\" | \"query\"> {}\n\nexport interface SearchResponse<T> {\n rows: T[]\n hasNextPage?: boolean\n bookmark?: string | number\n totalRows?: number\n}\n\nexport enum RowExportFormat {\n CSV = \"csv\",\n JSON = \"json\",\n JSON_WITH_SCHEMA = \"jsonWithSchema\",\n}\n", "import { Feature, Hosting, License, PlanType, Quotas } from \"../../sdk\"\nimport { DeepPartial } from \"../../shared\"\nimport { QuotaUsage } from \"../global\"\n\nexport interface CreateAccount {\n email: string\n tenantId: string\n hosting: Hosting\n authType: AuthType\n accountName: string\n // optional fields - for sso based sign ups\n registrationStep?: string\n name?: string\n size?: string\n profession?: string\n}\n\nexport interface CreatePassswordAccount extends CreateAccount {\n password: string\n}\n\nexport const isCreatePasswordAccount = (\n account: CreateAccount\n): account is CreatePassswordAccount => account.authType === AuthType.PASSWORD\n\nexport interface LicenseOverrides {\n features?: Feature[]\n quotas?: DeepPartial<Quotas>\n}\n\nexport interface Account extends CreateAccount {\n // generated\n accountId: string\n createdAt: number\n // registration\n verified: boolean\n verificationSent: boolean\n // licensing\n planType?: PlanType\n license?: License\n installId?: string\n installTenantId?: string\n installVersion?: string\n stripeCustomerId?: string\n licenseKey?: string\n licenseKeyActivatedAt?: number\n licenseRequestedAt?: number\n licenseOverrides?: LicenseOverrides\n provider?: AccountSSOProvider\n providerType?: AccountSSOProviderType\n quotaUsage?: QuotaUsage\n offlineLicenseToken?: string\n tenantName?: string\n}\n\nexport interface PasswordAccount extends Account {\n password: string\n}\n\nexport const isPasswordAccount = (\n account: Account\n): account is PasswordAccount =>\n account.authType === AuthType.PASSWORD && account.hosting === Hosting.SELF\n\nexport interface CloudAccount extends Account {\n password?: string\n budibaseUserId: string\n}\n\nexport const isCloudAccount = (account: Account): account is CloudAccount =>\n account.hosting === Hosting.CLOUD\n\nexport const isSelfHostAccount = (account: Account) =>\n account.hosting === Hosting.SELF\n\nexport const isSSOAccount = (account: Account): account is SSOAccount =>\n account.authType === AuthType.SSO\n\nexport enum AccountSSOProviderType {\n GOOGLE = \"google\",\n MICROSOFT = \"microsoft\",\n}\n\nexport enum AccountSSOProvider {\n GOOGLE = \"google\",\n MICROSOFT = \"microsoft\",\n}\n\nconst verifiableSSOProviders: AccountSSOProvider[] = [\n AccountSSOProvider.MICROSOFT,\n]\nexport function isVerifiableSSOProvider(provider: AccountSSOProvider): boolean {\n return verifiableSSOProviders.includes(provider)\n}\n\nexport interface AccountSSO {\n ssoId?: string\n provider: AccountSSOProvider\n providerType: AccountSSOProviderType\n oauth2?: OAuthTokens\n}\n\nexport type SSOAccount = (Account | CloudAccount) & AccountSSO\n\nexport enum AuthType {\n SSO = \"sso\",\n PASSWORD = \"password\",\n}\n\nexport interface OAuthTokens {\n accessToken: string\n refreshToken: string\n}\n", "import { Document } from \"../../document\"\nimport { User } from \"../../global\"\nimport { ReadStream } from \"fs\"\nimport { Row } from \"../row\"\nimport { Table } from \"../table\"\nimport { AutomationStep, AutomationTrigger } from \"./schema\"\nimport { ContextEmitter } from \"../../../sdk\"\n\nexport enum AutomationIOType {\n OBJECT = \"object\",\n STRING = \"string\",\n BOOLEAN = \"boolean\",\n NUMBER = \"number\",\n ARRAY = \"array\",\n JSON = \"json\",\n DATE = \"date\",\n ATTACHMENT = \"attachment\",\n}\n\nexport enum AutomationCustomIOType {\n TABLE = \"table\",\n ROW = \"row\",\n ROWS = \"rows\",\n WIDE = \"wide\",\n QUERY = \"query\",\n QUERY_PARAMS = \"queryParams\",\n QUERY_LIMIT = \"queryLimit\",\n LOOP_OPTION = \"loopOption\",\n ITEM = \"item\",\n CODE = \"code\",\n FILTERS = \"filters\",\n COLUMN = \"column\",\n TRIGGER_SCHEMA = \"triggerSchema\",\n CRON = \"cron\",\n WEBHOOK_URL = \"webhookUrl\",\n AUTOMATION = \"automation\",\n AUTOMATION_FIELDS = \"automationFields\",\n MULTI_ATTACHMENTS = \"multi_attachments\",\n TRIGGER_FILTER = \"trigger_filter\",\n}\n\nexport enum AutomationTriggerStepId {\n ROW_SAVED = \"ROW_SAVED\",\n ROW_UPDATED = \"ROW_UPDATED\",\n ROW_DELETED = \"ROW_DELETED\",\n WEBHOOK = \"WEBHOOK\",\n APP = \"APP\",\n CRON = \"CRON\",\n ROW_ACTION = \"ROW_ACTION\",\n}\n\nexport enum AutomationStepType {\n LOGIC = \"LOGIC\",\n ACTION = \"ACTION\",\n TRIGGER = \"TRIGGER\",\n}\n\nexport enum AutomationActionStepId {\n SEND_EMAIL_SMTP = \"SEND_EMAIL_SMTP\",\n CREATE_ROW = \"CREATE_ROW\",\n UPDATE_ROW = \"UPDATE_ROW\",\n DELETE_ROW = \"DELETE_ROW\",\n EXECUTE_BASH = \"EXECUTE_BASH\",\n OUTGOING_WEBHOOK = \"OUTGOING_WEBHOOK\",\n EXECUTE_SCRIPT = \"EXECUTE_SCRIPT\",\n EXECUTE_QUERY = \"EXECUTE_QUERY\",\n SERVER_LOG = \"SERVER_LOG\",\n DELAY = \"DELAY\",\n FILTER = \"FILTER\",\n QUERY_ROWS = \"QUERY_ROWS\",\n LOOP = \"LOOP\",\n COLLECT = \"COLLECT\",\n OPENAI = \"OPENAI\",\n TRIGGER_AUTOMATION_RUN = \"TRIGGER_AUTOMATION_RUN\",\n BRANCH = \"BRANCH\",\n // these used to be lowercase step IDs, maintain for backwards compat\n discord = \"discord\",\n slack = \"slack\",\n zapier = \"zapier\",\n integromat = \"integromat\",\n n8n = \"n8n\",\n}\n\nexport interface EmailInvite {\n startTime: Date\n endTime: Date\n summary: string\n location?: string\n url?: string\n}\n\nexport interface EmailAttachment {\n url: string\n filename: string\n}\n\nexport interface SendEmailOpts {\n to?: string\n // workspaceId If finer grain controls being used then this will lookup config for workspace.\n workspaceId?: string\n // user If sending to an existing user the object can be provided, this is used in the context.\n user: User\n // from If sending from an address that is not what is configured in the SMTP config.\n from?: string\n // contents If sending a custom email then can supply contents which will be added to it.\n contents?: string\n // subject A custom subject can be specified if the config one is not desired.\n subject: string\n // info Pass in a structure of information to be stored alongside the invitation.\n info?: any\n cc?: boolean\n bcc?: boolean\n automation?: boolean\n invite?: EmailInvite\n attachments?: EmailAttachment[]\n}\n\nexport const AutomationStepIdArray = [\n ...Object.values(AutomationActionStepId),\n ...Object.values(AutomationTriggerStepId),\n]\n\nexport interface Automation extends Document {\n definition: {\n steps: AutomationStep[]\n trigger: AutomationTrigger\n // stepNames is used to lookup step names from their correspnding step ID.\n stepNames?: Record<string, string>\n }\n screenId?: string\n uiTree?: any\n appId: string\n live?: boolean\n name: string\n internal?: boolean\n type?: string\n disabled?: boolean\n testData?: {\n row?: Row\n meta: {\n [key: string]: unknown\n }\n id: string\n revision: string\n oldRow?: Row\n }\n}\n\ninterface BaseIOStructure {\n type?: AutomationIOType\n subtype?: AutomationIOType\n customType?: AutomationCustomIOType\n title?: string\n description?: string\n dependsOn?: string\n enum?: string[]\n pretty?: string[]\n properties?: {\n [key: string]: BaseIOStructure\n }\n required?: string[]\n readonly?: true\n}\n\nexport interface InputOutputBlock {\n properties: {\n [key: string]: BaseIOStructure\n }\n required?: string[]\n}\n\nexport enum AutomationFeature {\n LOOPING = \"LOOPING\",\n}\n\nexport enum AutomationStepStatus {\n NO_ITERATIONS = \"no_iterations\",\n MAX_ITERATIONS = \"max_iterations_reached\",\n}\n\nexport enum AutomationStatus {\n SUCCESS = \"success\",\n ERROR = \"error\",\n STOPPED = \"stopped\",\n STOPPED_ERROR = \"stopped_error\",\n NO_CONDITION_MET = \"No branch condition met\",\n}\n\nexport enum AutomationStoppedReason {\n TRIGGER_FILTER_NOT_MET = \"Automation did not run. Filter conditions in trigger were not met.\",\n}\n\nexport interface AutomationResults {\n automationId?: string\n status?: AutomationStatus\n trigger?: AutomationTrigger\n steps: {\n stepId: AutomationTriggerStepId | AutomationActionStepId\n inputs: {\n [key: string]: any\n }\n outputs: {\n [key: string]: any\n }\n }[]\n}\n\nexport interface DidNotTriggerResponse {\n outputs: {\n success: false\n status: AutomationStatus.STOPPED\n }\n message: AutomationStoppedReason.TRIGGER_FILTER_NOT_MET\n}\n\nexport interface AutomationLog extends AutomationResults, Document {\n automationName: string\n _rev?: string\n}\n\nexport interface AutomationLogPage {\n data: AutomationLog[]\n hasNextPage: boolean\n nextPage?: string\n}\n\nexport interface AutomationStepInputBase {\n context: Record<string, any>\n emitter: ContextEmitter\n appId: string\n apiKey?: string\n}\n\nexport type ActionImplementation<TInputs, TOutputs> = (\n params: {\n inputs: TInputs\n } & AutomationStepInputBase\n) => Promise<TOutputs>\nexport interface AutomationMetadata extends Document {\n errorCount?: number\n automationChainCount?: number\n}\n\nexport type AutomationAttachment = {\n url: string\n filename: string\n}\n\nexport type AutomationAttachmentContent = {\n filename: string\n content: ReadStream | NodeJS.ReadableStream\n}\n\nexport type BucketedContent = AutomationAttachmentContent & {\n bucket: string\n path: string\n}\n\nexport enum AutomationEventType {\n ROW_SAVE = \"row:save\",\n ROW_UPDATE = \"row:update\",\n ROW_DELETE = \"row:delete\",\n APP_TRIGGER = \"app:trigger\",\n CRON_TRIGGER = \"cron:trigger\",\n WEBHOOK_TRIGGER = \"web:trigger\",\n ROW_ACTION = \"row:action\",\n}\n\nexport type UpdatedRowEventEmitter = {\n row: Row\n oldRow: Row\n table: Table\n appId: string\n user: User\n}\n\nexport enum LoopStepType {\n ARRAY = \"Array\",\n STRING = \"String\",\n}\n", "import { SortOrder } from \"../../../api\"\nimport {\n SearchFilters,\n EmptyFilterOption,\n BasicOperator,\n LogicalOperator,\n} from \"../../../sdk\"\nimport { HttpMethod } from \"../query\"\nimport { Row } from \"../row\"\nimport { LoopStepType, EmailAttachment, AutomationResults } from \"./automation\"\nimport { AutomationStep, AutomationStepOutputs } from \"./schema\"\n\nexport type BaseAutomationOutputs = {\n success?: boolean\n response?: {\n [key: string]: any\n message?: string\n }\n}\nexport type ExternalAppStepOutputs = {\n httpStatus?: number\n response: string\n success: boolean\n}\n\nexport type BashStepInputs = {\n code: string\n}\n\nexport type BashStepOutputs = BaseAutomationOutputs & {\n stdout?: string\n}\n\nexport type CollectStepInputs = {\n collection: string\n}\n\nexport type CollectStepOutputs = BaseAutomationOutputs & {\n value?: any\n}\n\nexport type CreateRowStepInputs = {\n row: Row\n}\n\nexport type CreateRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n id?: string\n revision?: string\n}\n\nexport type DelayStepInputs = {\n time: number\n}\n\nexport type DelayStepOutputs = BaseAutomationOutputs\n\nexport type DeleteRowStepInputs = {\n tableId: string\n id: string\n revision?: string\n}\n\nexport type DeleteRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n}\n\nexport type DiscordStepInputs = {\n url: string\n username?: string\n avatar_url?: string\n content: string\n}\n\nexport type ExecuteQueryStepInputs = {\n query: {\n queryId: string\n }\n}\n\nexport type ExecuteQueryStepOutputs = BaseAutomationOutputs & {\n info?: any\n}\n\nexport type ExecuteScriptStepInputs = {\n code: string\n}\n\nexport type ExecuteScriptStepOutputs = BaseAutomationOutputs & {\n value?: string\n}\n\nexport type FilterStepInputs = {\n field: any\n condition: string\n value: any\n}\n\nexport type FilterStepOutputs = BaseAutomationOutputs & {\n result: boolean\n refValue?: any\n comparisonValue?: any\n}\n\nexport type LoopStepInputs = {\n option: LoopStepType\n binding: any\n iterations?: number\n failure?: string\n}\n\nexport type LoopStepOutputs = {\n items: AutomationStepOutputs[]\n success: boolean\n iterations: number\n}\n\nexport type BranchStepInputs = {\n branches: Branch[]\n children?: Record<string, AutomationStep[]>\n}\n\nexport type Branch = {\n id: any\n name: string\n condition: BranchSearchFilters\n}\n\nexport type BranchSearchFilters = Pick<\n SearchFilters,\n | BasicOperator.EQUAL\n | BasicOperator.NOT_EQUAL\n | LogicalOperator.AND\n | LogicalOperator.OR\n>\n\nexport type MakeIntegrationInputs = {\n url: string\n body: any\n}\n\nexport type n8nStepInputs = {\n url: string\n method: HttpMethod\n authorization: string\n body: any\n}\n\nexport type OpenAIStepInputs = {\n prompt: string\n model: Model\n}\n\nexport enum Model {\n GPT_35_TURBO = \"gpt-3.5-turbo\",\n // will only work with api keys that have access to the GPT4 API\n GPT_4 = \"gpt-4\",\n GPT_4O = \"gpt-4o\",\n GPT_4O_MINI = \"gpt-4o-mini\",\n}\n\nexport type OpenAIStepOutputs = Omit<BaseAutomationOutputs, \"response\"> & {\n response?: string | null\n}\n\nexport type QueryRowsStepInputs = {\n tableId: string\n filters?: SearchFilters\n \"filters-def\"?: any\n sortColumn?: string\n sortOrder?: SortOrder\n limit?: number\n onEmptyFilter?: EmptyFilterOption\n}\n\nexport type QueryRowsStepOutputs = BaseAutomationOutputs & {\n rows?: Row[]\n}\n\nexport type SmtpEmailStepInputs = {\n to: string\n from: string\n subject: string\n contents: string\n cc: string\n bcc: string\n addInvite?: boolean\n startTime: Date\n endTime: Date\n summary: string\n location?: string\n url?: string\n attachments?: EmailAttachment[]\n}\n\nexport type SmtpEmailStepOutputs = BaseAutomationOutputs\nexport type ServerLogStepInputs = {\n text: string\n}\n\nexport type ServerLogStepOutputs = BaseAutomationOutputs & {\n message: string\n}\nexport type SlackStepInputs = {\n url: string\n text: string\n}\n\nexport type TriggerAutomationStepInputs = {\n automation: {\n automationId: string\n }\n timeout: number\n}\n\nexport type TriggerAutomationStepOutputs = BaseAutomationOutputs & {\n value?: AutomationResults[\"steps\"]\n}\n\nexport type UpdateRowStepInputs = {\n meta: Record<string, any>\n row: Row\n rowId: string\n}\n\nexport type UpdateRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n id?: string\n revision?: string\n}\n\nexport type ZapierStepInputs = {\n url: string\n body: any\n}\n\nexport type ZapierStepOutputs = Omit<ExternalAppStepOutputs, \"response\"> & {\n response: string\n}\nenum RequestType {\n POST = \"POST\",\n GET = \"GET\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n PATCH = \"PATCH\",\n}\n\nexport type OutgoingWebhookStepInputs = {\n requestMethod: RequestType\n url: string\n requestBody: string\n headers: string\n}\n\nexport type AppActionTriggerInputs = {\n fields: object\n}\n\nexport type AppActionTriggerOutputs = {\n fields: object\n}\n\nexport type CronTriggerInputs = {\n cron: string\n}\n\nexport type CronTriggerOutputs = {\n timestamp: number\n}\n\nexport type RowDeletedTriggerInputs = {\n tableId: string\n}\n\nexport type RowDeletedTriggerOutputs = {\n row: Row\n}\n\nexport type RowCreatedTriggerInputs = {\n tableId: string\n filters?: SearchFilters\n}\n\nexport type RowCreatedTriggerOutputs = {\n row: Row\n id: string\n revision: string\n}\n\nexport type RowUpdatedTriggerInputs = {\n tableId: string\n filters?: SearchFilters\n}\n\nexport type RowUpdatedTriggerOutputs = {\n row: Row\n id: string\n revision?: string\n}\n\nexport type WebhookTriggerInputs = {\n schemaUrl: string\n triggerUrl: string\n}\n\nexport type WebhookTriggerOutputs = {\n fields: Record<string, any>\n}\n", "import { Document } from \"../document\"\nimport { SourceName } from \"../../sdk\"\nimport { Table } from \"./table\"\n\nexport interface Datasource extends Document {\n type: string\n name?: string\n source: SourceName\n // this is a googlesheets specific property which\n // can be found in the GSheets schema - pertains to SSO creds\n auth?: { type: string }\n // the config is defined by the schema\n config?: Record<string, any>\n plus?: boolean\n isSQL?: boolean\n entities?: Record<string, Table>\n}\n\nexport enum RestAuthType {\n BASIC = \"basic\",\n BEARER = \"bearer\",\n}\n\nexport interface RestBasicAuthConfig {\n username: string\n password: string\n}\n\nexport interface RestBearerAuthConfig {\n token: string\n}\n\nexport interface RestAuthConfig {\n _id: string\n name: string\n type: RestAuthType\n config: RestBasicAuthConfig | RestBearerAuthConfig\n}\n\nexport interface DynamicVariable {\n name: string\n queryId: string\n value: string\n}\n\nexport interface RestConfig {\n url: string\n rejectUnauthorized?: boolean\n downloadImages?: boolean\n defaultHeaders?: {\n [key: string]: any\n }\n legacyHttpParser?: boolean\n authConfigs?: RestAuthConfig[]\n staticVariables?: {\n [key: string]: string\n }\n dynamicVariables?: DynamicVariable[]\n}\n", "import { Document } from \"../document\"\nimport { Row } from \"./row\"\n\nexport interface QuerySchema {\n name?: string\n type: string\n subtype?: string\n}\n\nexport interface Query extends Document {\n datasourceId: string\n name: string\n parameters: QueryParameter[]\n fields: RestQueryFields | any\n transformer: string | null\n schema: Record<string, QuerySchema | string>\n nestedSchemaFields?: Record<string, Record<string, QuerySchema | string>>\n readable: boolean\n queryVerb: string\n // flag to state whether the default bindings are empty strings (old behaviour) or null\n nullDefaultSupport?: boolean\n}\n\nexport interface QueryPreview extends Omit<Query, \"_id\"> {\n queryId?: string\n}\n\nexport interface QueryParameter {\n name: string\n default: string\n}\n\nexport interface QueryResponse {\n rows: Row[]\n keys: string[]\n info: any\n extra: any\n pagination: any\n}\n\nexport enum BodyType {\n NONE = \"none\",\n FORM_DATA = \"form\",\n XML = \"xml\",\n ENCODED = \"encoded\",\n JSON = \"json\",\n TEXT = \"text\",\n}\n\nexport interface RestQueryFields {\n path?: string\n queryString?: string\n headers?: { [key: string]: any }\n disabledHeaders?: { [key: string]: any }\n requestBody?: any\n bodyType?: BodyType\n method?: string\n authConfigId?: string\n pagination?: PaginationConfig\n paginationValues?: PaginationValues\n}\n\nexport interface PaginationConfig {\n type: string\n location: string\n pageParam: string\n sizeParam?: string\n responseParam?: string\n}\n\nexport interface PaginationValues {\n page?: string | number\n limit?: number\n}\n\nexport enum HttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PATCH = \"PATCH\",\n PUT = \"PUT\",\n HEAD = \"HEAD\",\n DELETE = \"DELETE\",\n}\n", "import { Document } from \"../../document\"\nimport { View, ViewV2 } from \"../view\"\nimport { RenameColumn } from \"../../../sdk\"\nimport { TableSchema } from \"./schema\"\n\nexport const INTERNAL_TABLE_SOURCE_ID = \"bb_internal\"\n\nexport enum TableSourceType {\n EXTERNAL = \"external\",\n INTERNAL = \"internal\",\n}\n\nexport interface Table extends Document {\n type: \"table\"\n sourceType: TableSourceType\n views?: { [key: string]: View | ViewV2 }\n name: string\n originalName?: string\n sourceId: string\n primary?: string[]\n schema: TableSchema\n primaryDisplay?: string\n relatedFormula?: string[]\n constrained?: string[]\n sql?: boolean\n indexes?: { [key: string]: any }\n created?: boolean\n rowHeight?: number\n}\n\nexport interface TableRequest extends Table {\n _rename?: RenameColumn\n created?: boolean\n}\n", "import { Document } from \"../document\"\n\nexport enum FieldType {\n /**\n * a primitive type, stores a string, called Text within Budibase. This is one of the default\n * types of Budibase, if an external type is not fully understood, we will treat it as text.\n */\n STRING = \"string\",\n /**\n * similar to string type, called Long Form Text within Budibase. This is mainly a frontend\n * orientated type which enables a larger text input area. This can also be used\n * in conjunction with the 'useRichText' option to support a markdown editor/viewer.\n */\n LONGFORM = \"longform\",\n /**\n * similar to string type, called Options within Budibase. This works very similarly to\n * the string type within the backend, but is validated to a list of options. This will\n * display a <select> input within the builder/client.\n */\n OPTIONS = \"options\",\n /**\n * a primitive type, stores a number, as a floating point, called Number within Budibase.\n * this type will always represent numbers as reals/floating point - there is no integer only\n * type within Budibase.\n */\n NUMBER = \"number\",\n /**\n * a primitive type, stores a boolean, called Boolean within Budibase. This is often represented\n * as a toggle or checkbox within forms/grids.\n */\n BOOLEAN = \"boolean\",\n /**\n * a JSON type, this type is always an array of strings, called Multi-select within Budibase.\n * This type can be compared to the options type, as it functions similarly, but allows picking\n * multiple options rather than a single option.\n */\n ARRAY = \"array\",\n /**\n * a string type, this is always a string when input/returned from the API, called Date/Time within\n * Budibase. We utilise ISO date strings for representing dates, this type has a range of subtypes\n * to restrict it to date only, time only and ignore timezone capabilities.\n */\n DATETIME = \"datetime\",\n /**\n * a JSON type, an array of metadata about files held in object storage, called Attachment List within\n * Budibase. To utilise this type there is an API for uploading files to Budibase, which returns metadata\n * that can be stored against columns of this type. Currently this is not supported on external databases.\n */\n ATTACHMENTS = \"attachment\",\n /**\n * a JSON type, similar to the attachments type, called Attachment within Budibase. This type functions\n * much the same as the attachment list, but only holds a single attachment metadata as an object.\n * This simplifies the binding experience of using this column type.\n */\n ATTACHMENT_SINGLE = \"attachment_single\",\n /**\n * a complex type, called Relationships within Budibase. This is the most complex type of Budibase,\n * nothing should be stored against rows under link columns; this type simply represents the\n * relationship between tables as part of the table schema. When rows are input to the Budibase API\n * relationships to be made are represented as a list of row IDs to link. When rows are returned\n * from the Budibase API it will contain a list of row IDs and display column values of the related rows.\n */\n LINK = \"link\",\n /**\n * a complex type, called Formulas within Budibase. This type has two variants, static and dynamic, with\n * static only being supported against internal tables. Dynamic formulas calculate a provided HBS/JS binding\n * based on the row context and enrich it when rows are being returned from the API. Static bindings calculate\n * this when rows are being stored, so that the formula output can be searched upon within the DB.\n */\n FORMULA = \"formula\",\n /**\n * a complex type, called Auto Column within Budibase. This type has a few variants, with options such as a\n * date for created at/updated at, an auto ID column with auto-increments as rows are saved and a user\n * relationship type which stores the created by/updated by user details. These subtypes all depend on the\n * date, number of link types respectively. There is one case where these will be executed in the browser,\n * that is part of the initial formula definition, the formula will be live evaluated in the browser.\n */\n AUTO = \"auto\",\n /**\n * A complex type, called an AI column within Budibase. This type is only supported against internal tables\n * and calculates the output based on a chosen operation (summarise text, translation etc) which passes to\n * the configured Budibase Large Language Model to retrieve the output and write it back into the row.\n * AI fields function in a similar fashion to static formulas, and possess many of the same characteristics.\n */\n AI = \"ai\",\n /**\n * a JSON type, called JSON within Budibase. This type allows any arbitrary JSON to be input to this column\n * type, which will be represented as a JSON object in the row. This type depends on a schema being\n * provided to make the JSON searchable/bindable, the JSON cannot be fully dynamic.\n */\n JSON = \"json\",\n /**\n * @deprecated an internal type, this is an old deprecated type which is no longer used - still represented to note it\n * could appear in very old tables.\n */\n INTERNAL = \"internal\",\n /**\n * a string type, called Barcode/QR within Budibase. This type is used to denote to forms to that this column\n * should be filled in using a camera to read a barcode, there is a form component which will be used when this\n * type is found. The column will contain the contents of any barcode scanned.\n */\n BARCODEQR = \"barcodeqr\",\n /**\n * a JSON type, called Signature within Budibase. This type functions much the same as ATTACHMENTS but restricted\n * only to signatures.\n */\n SIGNATURE_SINGLE = \"signature_single\",\n /**\n * a string type, this allows representing very large integers, but they are held/managed within Budibase as\n * strings. When stored in external databases Budibase will attempt to use a real big integer type and depend\n * on the database parsing the string to this type as part of saving.\n */\n BIGINT = \"bigint\",\n /**\n * a JSON type, called Users within Budibase. It will hold an array of strings. This type is used to represent a link to an internal Budibase\n * resource, like a user or group, today only users are supported. This type will be represented as an\n * array of internal resource IDs (e.g. user IDs) within the row - this ID list will be enriched with\n * the full resources when rows are returned from the API. The full resources can be input to the API, or\n * an array of resource IDs, the API will squash these down and validate them before saving the row.\n */\n BB_REFERENCE = \"bb_reference\",\n /**\n * a string type, called User within Budibase. Same logic as `bb_reference`, storing a single id as string instead of an array\n */\n BB_REFERENCE_SINGLE = \"bb_reference_single\",\n}\n\nexport const JsonTypes = [\n FieldType.ATTACHMENT_SINGLE,\n FieldType.ATTACHMENTS,\n // only BB_REFERENCE is JSON, it's an array, BB_REFERENCE_SINGLE is a string type\n FieldType.BB_REFERENCE,\n FieldType.JSON,\n FieldType.ARRAY,\n]\n\nexport type FormulaResponseType =\n | FieldType.STRING\n | FieldType.NUMBER\n | FieldType.BOOLEAN\n | FieldType.DATETIME\n\nexport const NumericTypes = [FieldType.NUMBER, FieldType.BIGINT]\n\nexport function isNumeric(type: FieldType) {\n return NumericTypes.includes(type)\n}\n\nexport const GroupByTypes = [\n FieldType.STRING,\n FieldType.LONGFORM,\n FieldType.OPTIONS,\n FieldType.NUMBER,\n FieldType.BOOLEAN,\n FieldType.DATETIME,\n FieldType.BIGINT,\n FieldType.AI,\n]\n\nexport function canGroupBy(type: FieldType) {\n return GroupByTypes.includes(type)\n}\n\nexport interface RowAttachment {\n size: number\n name: string\n extension: string\n key?: string\n // Populated on read\n url?: string\n}\n\nexport interface Row extends Document {\n type?: string\n tableId?: string\n _viewId?: string\n [key: string]: any\n}\n", "import { FieldType } from \"../row\"\n\nexport enum RelationshipType {\n ONE_TO_MANY = \"one-to-many\",\n MANY_TO_ONE = \"many-to-one\",\n MANY_TO_MANY = \"many-to-many\",\n}\n\nexport enum AutoReason {\n FOREIGN_KEY = \"foreign_key\",\n}\n\nexport type FieldSubType =\n | AutoFieldSubType\n | JsonFieldSubType\n | BBReferenceFieldSubType\n\nexport enum AutoFieldSubType {\n CREATED_BY = \"createdBy\",\n CREATED_AT = \"createdAt\",\n UPDATED_BY = \"updatedBy\",\n UPDATED_AT = \"updatedAt\",\n AUTO_ID = \"autoID\",\n}\n\nexport enum JsonFieldSubType {\n ARRAY = \"array\",\n}\n\nexport enum FormulaType {\n STATIC = \"static\",\n DYNAMIC = \"dynamic\",\n AI = \"ai\",\n}\n\nexport enum BBReferenceFieldSubType {\n USER = \"user\",\n /** @deprecated this should not be used anymore, left here in order to support the existing usages */\n USERS = \"users\",\n}\n\nexport type SupportedSqlTypes =\n | FieldType.STRING\n | FieldType.BARCODEQR\n | FieldType.LONGFORM\n | FieldType.OPTIONS\n | FieldType.DATETIME\n | FieldType.NUMBER\n | FieldType.BOOLEAN\n | FieldType.FORMULA\n | FieldType.BIGINT\n | FieldType.BB_REFERENCE\n | FieldType.BB_REFERENCE_SINGLE\n | FieldType.LINK\n | FieldType.ARRAY\n", "// all added by grid/table when defining the\n// column size, position and whether it can be viewed\nimport { FieldType, FormulaResponseType } from \"../row\"\nimport {\n AutoFieldSubType,\n AutoReason,\n BBReferenceFieldSubType,\n FormulaType,\n JsonFieldSubType,\n RelationshipType,\n} from \"./constants\"\nimport { AIOperationEnum } from \"../../../sdk/ai\"\n\nexport interface UIFieldMetadata {\n order?: number\n width?: number\n visible?: boolean\n icon?: string\n}\n\ninterface BaseRelationshipFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.LINK\n main?: boolean\n fieldName: string\n tableId: string\n tableRev?: string\n subtype?: AutoFieldSubType.CREATED_BY | AutoFieldSubType.UPDATED_BY\n}\n\n// External tables use junction tables, internal tables don't require them\ntype ManyToManyJunctionTableMetadata =\n | {\n through: string\n throughFrom: string\n throughTo: string\n }\n | {\n through?: never\n throughFrom?: never\n throughTo?: never\n }\n\nexport type ManyToManyRelationshipFieldMetadata =\n BaseRelationshipFieldMetadata & {\n relationshipType: RelationshipType.MANY_TO_MANY\n } & ManyToManyJunctionTableMetadata\n\nexport interface OneToManyRelationshipFieldMetadata\n extends BaseRelationshipFieldMetadata {\n relationshipType: RelationshipType.ONE_TO_MANY\n foreignKey?: string\n}\nexport interface ManyToOneRelationshipFieldMetadata\n extends BaseRelationshipFieldMetadata {\n relationshipType: RelationshipType.MANY_TO_ONE\n foreignKey?: string\n}\nexport type RelationshipFieldMetadata =\n | ManyToManyRelationshipFieldMetadata\n | OneToManyRelationshipFieldMetadata\n | ManyToOneRelationshipFieldMetadata\n\nexport interface AutoColumnFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.AUTO\n autocolumn: true\n subtype: AutoFieldSubType\n lastID?: number\n // if the column was turned to an auto-column for SQL, explains why (primary, foreign etc)\n autoReason?: AutoReason\n}\n\nexport interface NumberFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.NUMBER\n subtype?: AutoFieldSubType.AUTO_ID\n lastID?: number\n autoReason?: AutoReason.FOREIGN_KEY\n // used specifically when Budibase generates external tables, this denotes if a number field\n // is a foreign key used for a many-to-many relationship\n meta?: {\n toTable: string\n toKey: string\n }\n default?: string\n}\n\nexport interface JsonFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.JSON\n subtype?: JsonFieldSubType.ARRAY\n default?: string\n}\n\nexport interface DateFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.DATETIME\n ignoreTimezones?: boolean\n timeOnly?: boolean\n dateOnly?: boolean\n subtype?: AutoFieldSubType.CREATED_AT | AutoFieldSubType.UPDATED_AT\n default?: string\n}\n\nexport interface LongFormFieldMetadata extends BaseFieldSchema {\n type: FieldType.LONGFORM\n useRichText?: boolean | null\n default?: string\n}\n\nexport interface StringFieldMetadata extends BaseFieldSchema {\n type: FieldType.STRING\n default?: string\n}\n\nexport interface FormulaFieldMetadata extends BaseFieldSchema {\n type: FieldType.FORMULA\n formula: string\n formulaType?: FormulaType\n responseType?: FormulaResponseType\n}\n\nexport interface AIFieldMetadata extends BaseFieldSchema {\n type: FieldType.AI\n operation: AIOperationEnum\n columns?: string[]\n column?: string\n categories?: string\n prompt?: string\n language?: string\n}\n\nexport interface BBReferenceFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.BB_REFERENCE\n subtype: BBReferenceFieldSubType\n relationshipType?: RelationshipType\n default?: string[]\n}\nexport interface BBReferenceSingleFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.BB_REFERENCE_SINGLE\n subtype: Exclude<BBReferenceFieldSubType, BBReferenceFieldSubType.USERS>\n default?: string\n}\n\nexport interface AttachmentFieldMetadata extends BaseFieldSchema {\n type: FieldType.ATTACHMENTS\n}\n\nexport interface FieldConstraints {\n type?: string\n email?: boolean\n inclusion?: string[]\n length?: {\n minimum?: string | number | null\n maximum?: string | number | null\n message?: string\n }\n numericality?: {\n greaterThanOrEqualTo: string | null\n lessThanOrEqualTo: string | null\n }\n presence?:\n | boolean\n | {\n allowEmpty?: boolean\n }\n datetime?: {\n latest: string\n earliest: string\n }\n}\n\nexport interface OptionsFieldMetadata extends BaseFieldSchema {\n type: FieldType.OPTIONS\n constraints: FieldConstraints & {\n inclusion: string[]\n }\n default?: string\n}\n\nexport interface ArrayFieldMetadata extends BaseFieldSchema {\n type: FieldType.ARRAY\n constraints: FieldConstraints & {\n type: JsonFieldSubType.ARRAY\n inclusion: string[]\n }\n default?: string[]\n}\n\nexport interface BooleanFieldMetadata extends BaseFieldSchema {\n type: FieldType.BOOLEAN\n default?: string\n}\n\nexport interface BigIntFieldMetadata extends BaseFieldSchema {\n type: FieldType.BIGINT\n default?: string\n}\n\ninterface BaseFieldSchema extends UIFieldMetadata {\n type: FieldType\n name: string\n sortable?: boolean\n // only used by external databases, to denote the real type\n externalType?: string\n constraints?: FieldConstraints\n autocolumn?: boolean\n autoReason?: AutoReason.FOREIGN_KEY\n subtype?: never\n}\n\ninterface OtherFieldMetadata extends BaseFieldSchema {\n type: Exclude<\n FieldType,\n | FieldType.DATETIME\n | FieldType.LINK\n | FieldType.AUTO\n | FieldType.FORMULA\n | FieldType.AI\n | FieldType.NUMBER\n | FieldType.LONGFORM\n | FieldType.BB_REFERENCE\n | FieldType.BB_REFERENCE_SINGLE\n | FieldType.ATTACHMENTS\n | FieldType.STRING\n | FieldType.ARRAY\n | FieldType.OPTIONS\n | FieldType.BOOLEAN\n | FieldType.BIGINT\n | FieldType.JSON\n >\n}\n\nexport type FieldSchema =\n | OtherFieldMetadata\n | DateFieldMetadata\n | RelationshipFieldMetadata\n | AutoColumnFieldMetadata\n | FormulaFieldMetadata\n | AIFieldMetadata\n | NumberFieldMetadata\n | LongFormFieldMetadata\n | StringFieldMetadata\n | BBReferenceFieldMetadata\n | JsonFieldMetadata\n | AttachmentFieldMetadata\n | BBReferenceSingleFieldMetadata\n | ArrayFieldMetadata\n | OptionsFieldMetadata\n | BooleanFieldMetadata\n | BigIntFieldMetadata\n\nexport interface TableSchema {\n [key: string]: FieldSchema\n}\n\nexport function isRelationshipField(\n field: FieldSchema\n): field is RelationshipFieldMetadata {\n return field.type === FieldType.LINK\n}\n\nexport function isManyToMany(\n field: RelationshipFieldMetadata\n): field is ManyToManyRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.MANY_TO_MANY\n}\n\nexport function isOneToMany(\n field: RelationshipFieldMetadata\n): field is OneToManyRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.ONE_TO_MANY\n}\n\nexport function isManyToOne(\n field: RelationshipFieldMetadata\n): field is ManyToOneRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.MANY_TO_ONE\n}\n", "import { LegacyFilter, UISearchFilter, SortOrder, SortType } from \"../../api\"\nimport { UIFieldMetadata } from \"./table\"\nimport { Document } from \"../document\"\nimport { DBView, SearchFilters } from \"../../sdk\"\n\nexport type ViewTemplateOpts = {\n field: string\n tableId: string\n groupBy?: string\n filters: ViewFilter[]\n schema: any\n calculation?: string\n groupByMulti?: boolean\n}\n\nexport interface InMemoryView extends Document {\n view: DBView\n name: string\n tableId: string\n groupBy?: string\n}\n\nexport interface View {\n name?: string\n tableId: string\n field?: string\n filters: ViewFilter[]\n schema: ViewSchema\n calculation?: ViewCalculation\n map?: string\n reduce?: any\n meta?: ViewTemplateOpts\n groupBy?: string\n}\n\nexport interface BasicViewFieldMetadata extends UIFieldMetadata {\n readonly?: boolean\n columns?: Record<string, RelationSchemaField>\n}\n\nexport interface RelationSchemaField extends UIFieldMetadata {\n readonly?: boolean\n}\n\nexport interface NumericCalculationFieldMetadata\n extends BasicViewFieldMetadata {\n calculationType:\n | CalculationType.MIN\n | CalculationType.MAX\n | CalculationType.SUM\n | CalculationType.AVG\n field: string\n}\n\nexport interface CountCalculationFieldMetadata extends BasicViewFieldMetadata {\n calculationType: CalculationType.COUNT\n field: string\n}\n\nexport interface CountDistinctCalculationFieldMetadata\n extends CountCalculationFieldMetadata {\n distinct: true\n}\n\nexport type ViewCalculationFieldMetadata =\n | NumericCalculationFieldMetadata\n | CountCalculationFieldMetadata\n | CountDistinctCalculationFieldMetadata\n\nexport type ViewFieldMetadata =\n | BasicViewFieldMetadata\n | ViewCalculationFieldMetadata\n\nexport enum CalculationType {\n SUM = \"sum\",\n AVG = \"avg\",\n COUNT = \"count\",\n MIN = \"min\",\n MAX = \"max\",\n}\n\nexport enum ViewV2Type {\n CALCULATION = \"calculation\",\n}\n\nexport interface ViewV2 {\n version: 2\n id: string\n name: string\n type?: ViewV2Type\n primaryDisplay?: string\n tableId: string\n query?: LegacyFilter[] | SearchFilters\n // duplicate to store UI information about filters\n queryUI?: UISearchFilter\n sort?: {\n field: string\n order?: SortOrder\n type?: SortType\n }\n schema?: ViewV2Schema\n rowHeight?: number\n}\n\nexport interface PublicAPIView extends Omit<ViewV2, \"query\" | \"queryUI\"> {\n query?: UISearchFilter\n}\n\nexport type ViewV2Schema = Record<string, ViewFieldMetadata>\n\nexport type ViewSchema = ViewCountOrSumSchema | ViewStatisticsSchema\n\nexport interface ViewCountOrSumSchema {\n field: string\n value: string\n}\n\n/**\n e.g:\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n }\n */\nexport interface ViewStatisticsSchema {\n [key: string]: {\n type: string\n }\n}\n\nexport interface ViewFilter {\n value?: any\n condition: string\n key: string\n conjunction?: string\n}\n\nexport enum ViewCalculation {\n SUM = \"sum\",\n COUNT = \"count\",\n STATISTICS = \"stats\",\n}\n", "export const SEPARATOR = \"_\"\nexport const UNICODE_MAX = \"\\ufff0\"\n\nexport const prefixed = (type: DocumentType) => `${type}${SEPARATOR}`\n\nexport enum DocumentType {\n USER = \"us\",\n GROUP = \"gr\",\n WORKSPACE = \"workspace\",\n CONFIG = \"config\",\n TEMPLATE = \"template\",\n APP = \"app\",\n DEV = \"dev\",\n APP_DEV = \"app_dev\",\n APP_METADATA = \"app_metadata\",\n ROLE = \"role\",\n MIGRATIONS = \"migrations\",\n DEV_INFO = \"devinfo\",\n AUTOMATION_LOG = \"log_au\",\n ACCOUNT_METADATA = \"acc_metadata\",\n PLUGIN = \"plg\",\n DATASOURCE = \"datasource\",\n DATASOURCE_PLUS = \"datasource_plus\",\n APP_BACKUP = \"backup\",\n TABLE = \"ta\",\n ROW = \"ro\",\n AUTOMATION = \"au\",\n LINK = \"li\",\n WEBHOOK = \"wh\",\n INSTANCE = \"inst\",\n LAYOUT = \"layout\",\n SCREEN = \"screen\",\n QUERY = \"query\",\n DEPLOYMENTS = \"deployments\",\n METADATA = \"metadata\",\n MEM_VIEW = \"view\",\n USER_FLAG = \"flag\",\n AUTOMATION_METADATA = \"meta_au\",\n AUDIT_LOG = \"al\",\n APP_MIGRATION_METADATA = \"_design/migrations\",\n SCIM_LOG = \"scimlog\",\n ROW_ACTIONS = \"ra\",\n}\n\n// Because DocumentTypes can overlap, we need to make sure that we search\n// longest first to ensure we get the correct type.\nconst sortedDocumentTypes = Object.values(DocumentType).sort(\n (a, b) => b.length - a.length // descending\n)\nexport function getDocumentType(id: string): DocumentType | undefined {\n return sortedDocumentTypes.find(docType =>\n id.startsWith(`${docType}${SEPARATOR}`)\n )\n}\n\n// these are the core documents that make up the data, design\n// and automation sections of an app. This excludes any internal\n// rows as we shouldn't import data.\nexport const DocumentTypesToImport: DocumentType[] = [\n DocumentType.ROLE,\n DocumentType.DATASOURCE,\n DocumentType.DATASOURCE_PLUS,\n DocumentType.TABLE,\n DocumentType.AUTOMATION,\n DocumentType.WEBHOOK,\n DocumentType.SCREEN,\n DocumentType.QUERY,\n DocumentType.METADATA,\n DocumentType.MEM_VIEW,\n // Deprecated but still copied\n DocumentType.INSTANCE,\n DocumentType.LAYOUT,\n]\n\nexport enum InternalTable {\n USER_METADATA = \"ta_users\",\n}\n\n// these documents don't really exist, they are part of other\n// documents or enriched into existence as part of get requests\nexport enum VirtualDocumentType {\n VIEW = \"view\",\n ROW_ACTION = \"row_action\",\n}\n\n// Because VirtualDocumentTypes can overlap, we need to make sure that we search\n// longest first to ensure we get the correct type.\nconst sortedVirtualDocumentTypes = Object.values(VirtualDocumentType).sort(\n (a, b) => b.length - a.length // descending\n)\nexport function getVirtualDocumentType(\n id: string\n): VirtualDocumentType | undefined {\n return sortedVirtualDocumentTypes.find(docType =>\n id.startsWith(`${docType}${SEPARATOR}`)\n )\n}\n\nexport interface Document {\n _id?: string\n _rev?: string\n createdAt?: string | number\n updatedAt?: string\n}\n\nexport interface AnyDocument extends Document {\n [key: string]: any\n}\n", "import { Document } from \"../document\"\nimport { User } from \"../../\"\n\nexport enum AppBackupType {\n BACKUP = \"backup\",\n RESTORE = \"restore\",\n}\n\nexport enum AppBackupStatus {\n STARTED = \"started\",\n PENDING = \"pending\",\n COMPLETE = \"complete\",\n FAILED = \"failed\",\n}\n\nexport enum AppBackupTrigger {\n PUBLISH = \"publish\",\n MANUAL = \"manual\",\n SCHEDULED = \"scheduled\",\n RESTORING = \"restoring\",\n}\n\nexport interface AppBackupContents {\n datasources: string[]\n screens: string[]\n automations: string[]\n}\n\nexport interface AppBackupMetadata {\n appId: string\n trigger?: AppBackupTrigger\n type: AppBackupType\n status: AppBackupStatus\n name?: string\n createdBy?: string | User\n timestamp: string\n finishedAt?: string\n startedAt?: string\n contents?: AppBackupContents\n}\n\nexport interface AppBackup extends Document, AppBackupMetadata {\n _id: string\n filename?: string\n}\n\nexport type AppBackupFetchOpts = {\n trigger?: AppBackupTrigger\n type?: AppBackupType\n limit?: number\n page?: string\n paginate?: boolean\n startDate?: string\n endDate?: string\n}\n\nexport interface AppBackupQueueData {\n appId: string\n docId: string\n docRev: string\n export?: {\n trigger: AppBackupTrigger\n name?: string\n createdBy?: string\n }\n import?: {\n backupId: string\n nameForBackup: string\n createdBy?: string\n }\n}\n", "import { Document } from \"../document\"\nimport { JSONSchema7 } from \"json-schema\"\n\nexport enum WebhookActionType {\n AUTOMATION = \"automation\",\n}\n\nexport interface Webhook extends Document {\n live: boolean\n name: string\n action: {\n type: WebhookActionType\n target: string\n }\n bodySchema?: JSONSchema7\n}\n", "export enum SQLiteType {\n REAL = \"REAL\",\n TEXT = \"VARCHAR\",\n INT = \"INTEGER\",\n BLOB = \"BLOB\",\n NUMERIC = \"NUMERIC\",\n}\n\nexport type SQLiteTable = Record<\n string,\n SQLiteType | { field: string; type: SQLiteType }\n>\n\nexport type SQLiteTables = Record<\n string,\n {\n fields: SQLiteTable\n }\n>\n\nexport interface SQLiteDefinition {\n _id: string\n _rev: string\n language: string\n sql: {\n tables: SQLiteTables\n options: {\n table_name: string\n }\n }\n}\n\nexport interface PreSaveSQLiteDefinition\n extends Omit<SQLiteDefinition, \"_rev\"> {\n _rev?: string\n}\n", "export enum Theme {\n LIGHTEST = \"lightest\",\n LIGHT = \"light\",\n DARK = \"dark\",\n DARKEST = \"darkest\",\n NORD = \"nord\",\n MIDNIGHT = \"midnight\",\n}\n\nexport type ThemeMeta = {\n id: string\n name: string\n base?: Theme\n}\n", "export enum DeploymentStatus {\n SUCCESS = \"SUCCESS\",\n PENDING = \"PENDING\",\n FAILURE = \"FAILURE\",\n}\n\nexport interface DeploymentDoc {\n _id: string\n verification: any\n status?: DeploymentStatus\n history?: Record<\n string,\n {\n _id: string\n appId: string\n status?: DeploymentStatus\n updatedAt: number\n }\n >\n err?: any\n appUrl?: string\n}\n", "export enum MetadataType {\n AUTOMATION_TEST_INPUT = \"automationTestInput\",\n AUTOMATION_TEST_HISTORY = \"automationTestHistory\",\n}\n", "import { Document } from \"../document\"\n\nexport interface Config<T = any> extends Document {\n type: ConfigType\n config: T\n}\n\nexport interface SMTPInnerConfig {\n port: number\n host: string\n from: string\n subject?: string\n secure: boolean\n auth?: {\n user: string\n pass: string\n }\n connectionTimeout?: any\n}\n\nexport interface SMTPConfig extends Config<SMTPInnerConfig> {}\n\n/**\n * Accessible only via pro.\n */\nexport interface SettingsBrandingConfig {\n faviconUrl?: string\n faviconUrlEtag?: string\n emailBrandingEnabled?: boolean\n testimonialsEnabled?: boolean\n platformTitle?: string\n loginHeading?: string\n loginButton?: string\n metaDescription?: string\n metaImageUrl?: string\n metaTitle?: string\n}\n\nexport interface SettingsInnerConfig {\n platformUrl?: string\n company?: string\n logoUrl?: string // Populated on read\n docsUrl?: string\n logoUrlEtag?: string\n uniqueTenantId?: string\n analyticsEnabled?: boolean\n isSSOEnforced?: boolean\n}\n\nexport interface SettingsConfig extends Config<SettingsInnerConfig> {}\n\nexport type SSOConfigType = ConfigType.GOOGLE | ConfigType.OIDC\nexport type SSOConfig = GoogleInnerConfig | OIDCInnerConfig\n\nexport interface GoogleInnerConfig {\n clientID: string\n clientSecret: string\n activated: boolean\n /**\n * @deprecated read only\n */\n callbackURL?: string\n}\n\nexport interface GoogleConfig extends Config<GoogleInnerConfig> {}\n\nexport interface OIDCStrategyConfiguration {\n issuer: string\n authorizationURL: string\n tokenURL: string\n userInfoURL: string\n clientID: string\n clientSecret: string\n callbackURL: string\n}\n\nexport interface OIDCConfigs {\n configs: OIDCInnerConfig[]\n}\n\nexport interface OIDCLogosInnerConfig {\n [key: string]: string\n}\n\nexport interface OIDCLogosConfig extends Config<OIDCLogosInnerConfig> {}\n\nexport interface OIDCInnerConfig {\n configUrl: string\n clientID: string\n clientSecret: string\n logo: string\n name: string\n uuid: string\n activated: boolean\n scopes: string[]\n}\n\nexport interface OIDCConfig extends Config<OIDCConfigs> {}\n\nexport interface OIDCWellKnownConfig {\n issuer: string\n authorization_endpoint: string\n token_endpoint: string\n userinfo_endpoint: string\n}\n\nexport interface SCIMInnerConfig {\n enabled: boolean\n}\n\nexport interface SCIMConfig extends Config<SCIMInnerConfig> {}\n\nexport type AIProvider = \"OpenAI\" | \"Anthropic\" | \"TogetherAI\" | \"Custom\"\n\nexport interface AIInnerConfig {\n [key: string]: {\n provider: AIProvider\n isDefault: boolean\n name: string\n active: boolean\n baseUrl?: string\n apiKey?: string\n defaultModel?: string\n }\n}\n\nexport interface AIConfig extends Config<AIInnerConfig> {}\n\nexport const isConfig = (config: Object): config is Config =>\n \"type\" in config && \"config\" in config\n\nexport const isSettingsConfig = (config: Config): config is SettingsConfig =>\n config.type === ConfigType.SETTINGS\n\nexport const isSMTPConfig = (config: Config): config is SMTPConfig =>\n config.type === ConfigType.SMTP\n\nexport const isGoogleConfig = (config: Config): config is GoogleConfig =>\n config.type === ConfigType.GOOGLE\n\nexport const isOIDCConfig = (config: Config): config is OIDCConfig =>\n config.type === ConfigType.OIDC\n\nexport const isSCIMConfig = (config: Config): config is SCIMConfig =>\n config.type === ConfigType.SCIM\n\nexport const isAIConfig = (config: Config): config is AIConfig =>\n config.type === ConfigType.AI\n\nexport enum ConfigType {\n SETTINGS = \"settings\",\n ACCOUNT = \"account\",\n SMTP = \"smtp\",\n GOOGLE = \"google\",\n OIDC = \"oidc\",\n OIDC_LOGOS = \"logos_oidc\",\n SCIM = \"scim\",\n AI = \"ai\",\n}\n", "import { Document } from \"../document\"\n\n// SSO\n\nexport interface SSOProfileJson {\n email?: string\n picture?: string\n}\n\nexport interface OAuth2 {\n accessToken: string\n refreshToken?: string\n}\n\nexport enum SSOProviderType {\n OIDC = \"oidc\",\n GOOGLE = \"google\",\n}\n\nexport interface UserSSO {\n provider: string // the individual provider e.g. Okta, Auth0, Google\n providerType: SSOProviderType\n oauth2?: OAuth2\n profile?: {\n displayName?: string\n name?: {\n givenName?: string\n familyName?: string\n }\n }\n}\n\nexport type SSOUser = User & UserSSO\n\nexport function isSSOUser(user: User): user is SSOUser {\n return !!(user as SSOUser).providerType\n}\n\n// USER\n\nexport interface UserIdentifier {\n userId: string\n email: string\n}\n\nexport interface User extends Document {\n tenantId: string\n email: string\n userId?: string\n firstName?: string\n lastName?: string\n forceResetPassword?: boolean\n roles: UserRoles\n builder?: {\n global?: boolean\n apps?: string[]\n creator?: boolean\n }\n admin?: {\n global: boolean\n }\n password?: string\n status?: UserStatus\n createdAt?: number // override the default createdAt behaviour - users sdk historically set this to Date.now()\n userGroups?: string[]\n onboardedAt?: string\n freeTrialConfirmedAt?: string\n tours?: Record<string, Date>\n scimInfo?: { isSync: true } & Record<string, any>\n appFavourites?: string[]\n ssoId?: string\n appSort?: string\n budibaseAccess?: boolean\n accountPortalAccess?: boolean\n}\n\nexport interface UserBindings extends Document {\n firstName?: string\n lastName?: string\n email?: string\n status?: string\n roleId?: string | null\n globalId?: string\n userId?: string\n}\n\nexport enum UserStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n}\n\n// specifies a map of app ID to role ID\nexport type UserRoles = Record<string, string>\n\n// UTILITY TYPES\n\nexport interface BuilderUser extends User {\n builder: {\n global?: boolean\n apps?: string[]\n }\n}\n\nexport interface AdminUser extends User {\n admin: {\n global: boolean\n }\n builder: {\n global: boolean\n }\n}\n\nexport interface AdminOnlyUser extends User {\n admin: {\n global: boolean\n }\n}\n\nexport function isUser(user: object): user is User {\n return !!(user as User).roles\n}\n", "import { Document } from \"../document\"\n\nexport enum PluginType {\n DATASOURCE = \"datasource\",\n COMPONENT = \"component\",\n AUTOMATION = \"automation\",\n}\n\nexport enum PluginSource {\n NPM = \"NPM\",\n GITHUB = \"Github\",\n URL = \"URL\",\n FILE = \"File Upload\",\n}\nexport interface KoaFile {\n path: string | null\n name: string | null\n}\n\nexport interface Plugin extends Document {\n description: string\n name: string\n version: string\n source: PluginSource\n package: { [key: string]: any }\n hash: string\n schema: {\n type: PluginType\n [key: string]: any\n }\n iconFileName?: string\n // Populated on read\n jsUrl?: string\n // Populated on read\n iconUrl?: string\n}\n\nexport const PLUGIN_TYPE_ARR = Object.values(PluginType)\n", "import { MonthlyQuotaName, StaticQuotaName } from \"../../sdk\"\n\nexport enum BreakdownQuotaName {\n ROW_QUERIES = \"rowQueries\",\n DATASOURCE_QUERIES = \"datasourceQueries\",\n AUTOMATIONS = \"automations\",\n}\n\nexport const APP_QUOTA_NAMES = [\n StaticQuotaName.ROWS,\n MonthlyQuotaName.QUERIES,\n MonthlyQuotaName.AUTOMATIONS,\n]\n\nexport const BREAKDOWN_QUOTA_NAMES = [\n MonthlyQuotaName.QUERIES,\n MonthlyQuotaName.AUTOMATIONS,\n]\n\nexport interface UsageBreakdown {\n parent: MonthlyQuotaName\n values: {\n [key: string]: number\n }\n}\n\nexport type QuotaTriggers = {\n [key: string]: string | undefined\n}\n\nexport interface StaticUsage {\n [StaticQuotaName.APPS]: number\n [StaticQuotaName.PLUGINS]: number\n [StaticQuotaName.USERS]: number\n [StaticQuotaName.CREATORS]: number\n [StaticQuotaName.USER_GROUPS]: number\n [StaticQuotaName.ROWS]: number\n [StaticQuotaName.AI_CUSTOM_CONFIGS]: number\n triggers: {\n [key in StaticQuotaName]?: QuotaTriggers\n }\n}\n\nexport interface MonthlyUsage {\n [MonthlyQuotaName.QUERIES]: number\n [MonthlyQuotaName.AUTOMATIONS]: number\n [MonthlyQuotaName.BUDIBASE_AI_CREDITS]: number\n triggers: {\n [key in MonthlyQuotaName]?: QuotaTriggers\n }\n breakdown?: {\n [key in BreakdownQuotaName]?: UsageBreakdown\n }\n}\n\nexport interface BaseQuotaUsage {\n usageQuota: StaticUsage\n monthly: {\n [key: string]: MonthlyUsage\n }\n}\n\nexport interface QuotaUsage extends BaseQuotaUsage {\n _id: string\n _rev?: string\n quotaReset: string\n apps?: {\n [key: string]: BaseQuotaUsage\n }\n}\n\nexport type SetUsageValues = {\n total: number\n app?: number\n breakdown?: number\n triggers?: QuotaTriggers\n}\n\nexport type UsageValues = {\n total: number\n app?: number\n breakdown?: number\n}\n", "import { Document } from \"../document\"\n\nexport enum ScheduleType {\n APP_BACKUP = \"app_backup\",\n}\n\nexport enum ScheduleRepeatPeriod {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport interface Schedule extends Document {\n type: ScheduleType\n name: string\n startDate: string\n repeat: ScheduleRepeatPeriod\n metadata: ScheduleMetadata\n}\n\nexport type ScheduleMetadata = AppBackupScheduleMetadata\n\nexport const isAppBackupMetadata = (\n type: ScheduleType,\n metadata: ScheduleMetadata\n): metadata is AppBackupScheduleMetadata => {\n return type === ScheduleType.APP_BACKUP\n}\n\nexport interface AppBackupScheduleMetadata {\n apps: string[]\n}\n", "import { Document } from \"../document\"\nimport { Event } from \"../../sdk\"\n\nexport const AuditLogSystemUser = \"SYSTEM\"\nexport const AUDIT_LOG_TYPE = \"auditLog\"\n\nexport type FallbackInfo = {\n appName?: string\n email?: string\n}\n\nexport interface AuditLogDoc extends Document {\n appId?: string\n event: Event\n userId: string\n timestamp: string\n metadata: any\n name: string\n type?: \"auditLog\"\n fallback?: FallbackInfo\n}\n", "export enum PingSource {\n BUILDER = \"builder\",\n APP = \"app\",\n}\n\nexport interface AnalyticsEnabledResponse {\n enabled: boolean\n}\n\nexport interface AnalyticsPingRequest {\n source: PingSource\n timezone: string\n embedded?: boolean\n}\nexport interface AnalyticsPingResponse {\n message: string\n source?: PingSource\n}\n", "export enum SortOrder {\n ASCENDING = \"ascending\",\n DESCENDING = \"descending\",\n}\n\nexport enum SortType {\n STRING = \"string\",\n NUMBER = \"number\",\n}\n\nexport interface BasicPaginationRequest {\n bookmark?: string\n}\n\nexport interface PaginationRequest extends BasicPaginationRequest {\n limit?: number\n sort?: {\n order: SortOrder\n column: string\n type: SortType\n }\n}\n\nexport interface PaginationResponse {\n bookmark: string | number | undefined\n hasNextPage?: boolean\n totalRows?: number\n}\n", "import {\n ArrayOperator,\n BasicOperator,\n EmptyFilterOption,\n InternalSearchFilterOperator,\n LogicalOperator,\n RangeOperator,\n SearchFilterKey,\n} from \"../../../../sdk\"\nimport { Row } from \"../../../../documents\"\nimport {\n PaginationResponse,\n SortOrder,\n SortType,\n} from \"../../../../api/web/pagination\"\nimport { z } from \"zod\"\n\nconst fieldKey = z\n .string()\n .refine(s => s !== InternalSearchFilterOperator.COMPLEX_ID_OPERATOR, {\n message: `Key '${InternalSearchFilterOperator.COMPLEX_ID_OPERATOR}' is not allowed`,\n })\n\nconst stringBasicFilter = z.record(fieldKey, z.string())\nconst basicFilter = z.record(fieldKey, z.any())\nconst arrayFilter = z.record(fieldKey, z.union([z.any().array(), z.string()]))\nconst logicFilter = z.lazy(() =>\n z.object({\n conditions: z.array(z.object(queryFilterValidation)),\n })\n)\n\nconst stringOrNumber = z.union([z.string(), z.number()])\n\nconst queryFilterValidation: Record<SearchFilterKey, z.ZodTypeAny> = {\n [BasicOperator.STRING]: stringBasicFilter.optional(),\n [BasicOperator.FUZZY]: stringBasicFilter.optional(),\n [RangeOperator.RANGE]: z\n .record(\n fieldKey,\n z.union([\n z.object({ high: stringOrNumber, low: stringOrNumber }),\n z.object({ high: stringOrNumber }),\n z.object({ low: stringOrNumber }),\n ])\n )\n .optional(),\n [BasicOperator.EQUAL]: basicFilter.optional(),\n [BasicOperator.NOT_EQUAL]: basicFilter.optional(),\n [BasicOperator.EMPTY]: basicFilter.optional(),\n [BasicOperator.NOT_EMPTY]: basicFilter.optional(),\n [ArrayOperator.ONE_OF]: arrayFilter.optional(),\n [ArrayOperator.CONTAINS]: arrayFilter.optional(),\n [ArrayOperator.NOT_CONTAINS]: arrayFilter.optional(),\n [ArrayOperator.CONTAINS_ANY]: arrayFilter.optional(),\n [LogicalOperator.AND]: logicFilter.optional(),\n [LogicalOperator.OR]: logicFilter.optional(),\n}\n\nconst searchRowRequest = z.object({\n query: z\n .object({\n allOr: z.boolean().optional(),\n onEmptyFilter: z.nativeEnum(EmptyFilterOption).optional(),\n ...queryFilterValidation,\n })\n .optional(),\n paginate: z.boolean().optional(),\n bookmark: z.union([z.string(), z.number()]).nullish(),\n limit: z.number().optional(),\n sort: z.string().nullish(),\n sortOrder: z.nativeEnum(SortOrder).optional(),\n sortType: z.nativeEnum(SortType).nullish(),\n version: z.string().optional(),\n disableEscaping: z.boolean().optional(),\n countRows: z.boolean().optional(),\n})\n\nexport const searchRowRequestValidator = searchRowRequest\n\nexport type SearchRowRequest = z.infer<typeof searchRowRequest>\nexport type SearchViewRowRequest = Pick<\n SearchRowRequest,\n | \"sort\"\n | \"sortOrder\"\n | \"sortType\"\n | \"limit\"\n | \"bookmark\"\n | \"paginate\"\n | \"query\"\n | \"countRows\"\n>\n\nexport interface SearchRowResponse {\n rows: Row[]\n}\n\nexport interface PaginatedSearchRowResponse\n extends SearchRowResponse,\n PaginationResponse {}\n", "import {\n Automation,\n AutomationActionStepId,\n AutomationLogPage,\n AutomationResults,\n AutomationStatus,\n AutomationStepDefinition,\n AutomationTriggerDefinition,\n AutomationTriggerStepId,\n DidNotTriggerResponse,\n Row,\n} from \"../../../documents\"\nimport { DocumentDestroyResponse } from \"@budibase/nano\"\n\nexport type GetAutomationTriggerDefinitionsResponse = Record<\n keyof typeof AutomationTriggerStepId,\n AutomationTriggerDefinition\n>\n\nexport type GetAutomationActionDefinitionsResponse = Record<\n keyof typeof AutomationActionStepId,\n AutomationStepDefinition\n>\n\nexport interface GetAutomationStepDefinitionsResponse {\n trigger: GetAutomationTriggerDefinitionsResponse\n action: GetAutomationActionDefinitionsResponse\n}\n\nexport interface DeleteAutomationResponse extends DocumentDestroyResponse {}\n\nexport interface FetchAutomationResponse {\n automations: Automation[]\n}\n\nexport interface FindAutomationResponse extends Automation {}\n\nexport interface UpdateAutomationRequest extends Automation {}\nexport interface UpdateAutomationResponse {\n message: string\n automation: Automation\n}\n\nexport interface CreateAutomationRequest extends Automation {}\nexport interface CreateAutomationResponse {\n message: string\n automation: Automation\n}\n\nexport interface SearchAutomationLogsRequest {\n startDate?: string\n status?: AutomationStatus\n automationId?: string\n page?: string\n}\nexport interface SearchAutomationLogsResponse extends AutomationLogPage {}\n\nexport interface ClearAutomationLogRequest {\n automationId: string\n appId: string\n}\nexport interface ClearAutomationLogResponse {\n message: string\n}\n\nexport interface TriggerAutomationRequest {\n fields: Record<string, any>\n // time in seconds\n timeout: number\n}\nexport type TriggerAutomationResponse = Record<string, any> | undefined\n\nexport interface TestAutomationRequest {\n id?: string\n revision?: string\n fields: Record<string, any>\n row?: Row\n oldRow?: Row\n}\nexport type TestAutomationResponse = AutomationResults | DidNotTriggerResponse\n\nexport function isDidNotTriggerResponse(\n response: TestAutomationResponse\n): response is DidNotTriggerResponse {\n return !!(\"message\" in response && response.message)\n}\n", "import { Event } from \"../../../sdk\"\nimport { PaginationResponse, BasicPaginationRequest } from \"../\"\nimport { User, App } from \"../../../\"\n\nexport interface AuditLogSearchParams {\n userIds?: string[]\n appIds?: string[]\n events?: Event[]\n startDate?: string\n endDate?: string\n fullSearch?: string\n bookmark?: string\n}\n\nexport interface DownloadAuditLogsRequest extends AuditLogSearchParams {}\n\nexport interface SearchAuditLogsRequest\n extends BasicPaginationRequest,\n AuditLogSearchParams {}\n\nexport enum AuditLogResourceStatus {\n DELETED = \"deleted\",\n}\n\nexport type DeletedResourceInfo = {\n _id: string\n status: AuditLogResourceStatus\n email?: string\n name?: string\n}\n\nexport interface AuditLogEnriched {\n app?: App | DeletedResourceInfo\n user: User | DeletedResourceInfo\n event: Event\n timestamp: string\n name: string\n metadata: any\n}\n\nexport interface SearchAuditLogsResponse extends PaginationResponse {\n data: AuditLogEnriched[]\n}\n\nexport interface DefinitionsAuditLogsResponse {\n events: Record<string, string>\n}\n", "export enum EventPublishType {\n ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED = \"environment_variable_upgrade_panel_opened\",\n}\n\nexport interface PostEventPublishRequest {\n type: EventPublishType\n}\nexport interface PostEventPublishResponse {\n message: string\n}\n", "import { EmailAttachment, EmailInvite } from \"../../../documents\"\n\nexport enum EmailTemplatePurpose {\n CORE = \"core\",\n BASE = \"base\",\n PASSWORD_RECOVERY = \"password_recovery\",\n INVITATION = \"invitation\",\n WELCOME = \"welcome\",\n CUSTOM = \"custom\",\n}\n\nexport interface SendEmailRequest {\n workspaceId?: string\n email: string\n userId: string\n purpose: EmailTemplatePurpose\n contents?: string\n from?: string\n subject: string\n cc?: boolean\n bcc?: boolean\n automation?: boolean\n invite?: EmailInvite\n attachments?: EmailAttachment[]\n}\nexport interface SendEmailResponse extends Record<string, any> {\n message: string\n}\n", "export enum TemplateType {\n APP = \"app\",\n}\n\nexport interface TemplateMetadata {\n background: string\n icon: string\n category: string\n description: string\n name: string\n url: string\n type: TemplateType\n key: string\n image: string\n}\n\nexport type FetchTemplateResponse = TemplateMetadata[]\n\nexport interface DownloadTemplateResponse {\n message: string\n}\n", "export enum ServiceType {\n WORKER = \"worker\",\n APPS = \"apps\",\n}\n\nexport enum MaintenanceType {\n SQS_MISSING = \"sqs_missing\",\n}\n", "export const enum EventType {\n ROW_SAVE = \"row:save\",\n ROW_UPDATE = \"row:update\",\n ROW_DELETE = \"row:delete\",\n TABLE_SAVE = \"table:save\",\n TABLE_UPDATED = \"table:updated\",\n TABLE_DELETE = \"table:delete\",\n}\n", "export interface BindingCompletion {\n section: {\n name: string\n }\n label: string\n}\n\nexport interface EnrichedBinding {\n runtimeBinding: string\n readableBinding: string\n type?: null | string\n}\n\nexport enum BindingMode {\n Text = \"Text\",\n JavaScript = \"JavaScript\",\n}\n\nexport type CaretPositionFn = () => { start: number; end: number }\n\nexport type InsertAtPositionFn = (_: {\n start: number\n end?: number\n value: string\n cursor?: { anchor: number }\n}) => void\n\nexport interface UIBinding {\n tableId?: string\n fieldSchema?: {\n name: string\n tableId: string\n type: string\n subtype?: string\n prefixKeys?: string\n }\n component?: string\n providerId: string\n readableBinding?: string\n runtimeBinding?: string\n}\n", "export enum SidePanel {\n Bindings = \"FlashOn\",\n Evaluation = \"Play\",\n Snippets = \"Code\",\n}\n"],
|
|
5
|
-
"mappings": "mbAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,qBAAAE,EAAA,oBAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,2BAAAC,GAAA,mBAAAC,GAAA,oBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,mBAAAC,GAAA,kBAAAC,EAAA,gBAAAC,GAAA,2BAAAC,GAAA,uBAAAC,GAAA,6BAAAC,GAAA,aAAAC,GAAA,qBAAAC,GAAA,eAAAC,GAAA,2BAAAC,EAAA,2BAAAC,GAAA,wBAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,qBAAAC,GAAA,0BAAAC,GAAA,yBAAAC,GAAA,uBAAAC,GAAA,4BAAAC,GAAA,4BAAAC,EAAA,4BAAAC,GAAA,0BAAAC,GAAA,kBAAAC,EAAA,gBAAAC,GAAA,aAAAC,GAAA,uBAAAC,GAAA,wBAAAC,GAAA,oBAAAC,GAAA,gBAAAC,GAAA,eAAAC,GAAA,sBAAAC,GAAA,oBAAAC,GAAA,sBAAAC,GAAA,wBAAAC,GAAA,qBAAAC,GAAA,iBAAAC,EAAA,0BAAAC,GAAA,yBAAAC,GAAA,sBAAAC,EAAA,UAAAC,EAAA,qBAAAC,GAAA,cAAAC,GAAA,YAAAC,GAAA,gBAAAC,GAAA,wBAAAC,GAAA,cAAAC,EAAA,eAAAC,GAAA,gBAAAC,GAAA,iBAAAC,GAAA,cAAAC,EAAA,YAAAC,EAAA,eAAAC,GAAA,6BAAAC,GAAA,iBAAAC,EAAA,wBAAAC,GAAA,aAAAC,GAAA,iCAAAC,EAAA,kBAAAC,GAAA,qBAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,oBAAAC,EAAA,gBAAAC,GAAA,iBAAAC,GAAA,oBAAAC,GAAA,iBAAAC,GAAA,UAAAC,GAAA,qBAAAC,EAAA,iBAAAC,GAAA,cAAAC,GAAA,2BAAAC,EAAA,yBAAAC,GAAA,oBAAAC,GAAA,oBAAAC,GAAA,qBAAAC,GAAA,mBAAAC,GAAA,eAAAC,GAAA,cAAAC,EAAA,aAAAC,EAAA,iBAAAC,GAAA,eAAAC,EAAA,kBAAAC,EAAA,cAAAC,GAAA,cAAAC,GAAA,mBAAAC,EAAA,kBAAAC,EAAA,qBAAAC,EAAA,iBAAAC,GAAA,oBAAAC,GAAA,kBAAAC,GAAA,cAAAC,EAAA,eAAAC,GAAA,oBAAAC,GAAA,yBAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,cAAAC,EAAA,aAAAC,EAAA,eAAAC,GAAA,cAAAC,GAAA,oBAAAC,EAAA,oBAAAC,GAAA,iBAAAC,GAAA,6BAAAC,GAAA,UAAAC,GAAA,sBAAAC,GAAA,gBAAAC,GAAA,wBAAAC,EAAA,eAAAC,GAAA,oBAAAC,GAAA,eAAAC,GAAA,wBAAAC,EAAA,sBAAAC,GAAA,eAAAC,GAAA,oBAAAC,GAAA,2BAAAC,GAAA,eAAAC,GAAA,wBAAAC,GAAA,0BAAAC,GAAA,0BAAAC,GAAA,mBAAAC,GAAA,aAAAC,GAAA,oBAAAC,GAAA,4BAAAC,GAAA,4BAAAC,GAAA,eAAAC,GAAA,mBAAAC,GAAA,4BAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,mBAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,sBAAAC,GAAA,0BAAAC,GAAA,wBAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,cAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,WAAAC,GAAA,4BAAAC,GAAA,aAAAC,GAAA,8BAAAC,KAAA,eAAAC,GAAAnK,ICAO,IAAKoK,OACVA,EAAA,eAAiB,iBACjBA,EAAA,WAAa,aACbA,EAAA,UAAY,YACZA,EAAA,gBAAkB,kBAClBA,EAAA,mBAAqB,qBACrBA,EAAA,OAAS,SACTA,EAAA,WAAa,aAPHA,OAAA,IAUAC,OACVA,EAAA,aAAe,UACfA,EAAA,OAAS,SACTA,EAAA,cAAgB,SAHNA,OAAA,ICVL,IAAKC,OACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OAFGA,OAAA,ICGL,IAAKC,OAEVA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eAGfA,EAAA,yBAA2B,2BAG3BA,EAAA,+BAAiC,sBACjCA,EAAA,8BAAgC,qBAChCA,EAAA,iCAAmC,wBACnCA,EAAA,gCAAkC,uBAGlCA,EAAA,aAAe,eACfA,EAAA,sBAAwB,uBAGxBA,EAAA,0BAA4B,4BAC5BA,EAAA,sBAAwB,wBACxBA,EAAA,8BAAgC,gCAChCA,EAAA,oBAAsB,sBAGtBA,EAAA,wBAA0B,0BAG1BA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBAGrBA,EAAA,kBAAoB,oBACpBA,EAAA,kBAAoB,oBAGpBA,EAAA,iBAAmB,mBACnBA,EAAA,iBAAmB,mBACnBA,EAAA,mBAAqB,qBACrBA,EAAA,qBAAuB,uBACvBA,EAAA,WAAa,aACbA,EAAA,YAAc,cAGdA,EAAA,iBAAmB,wBACnBA,EAAA,iBAAmB,wBACnBA,EAAA,yBAA2B,0BAG3BA,EAAA,6BAA+B,+BAC/BA,EAAA,8BAAgC,gCAChCA,EAAA,gCAAkC,kCAClCA,EAAA,2BAA6B,4BAG7BA,EAAA,kBAAoB,oBACpBA,EAAA,iBAAmB,mBAGnBA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAClBA,EAAA,sBAAwB,wBACxBA,EAAA,kBAAoB,oBACpBA,EAAA,oBAAsB,sBACtBA,EAAA,qBAAuB,uBACvBA,EAAA,aAAe,eACfA,EAAA,aAAe,eAGfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAGlBA,EAAA,eAAiB,iBACjBA,EAAA,WAAa,aACbA,EAAA,mBAAqB,qBAGrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBAGrBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,aAAe,eACfA,EAAA,YAAc,cACdA,EAAA,gBAAkB,kBAGlBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBACjBA,EAAA,oBAAsB,sBAGtBA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,oBAAsB,sBACtBA,EAAA,oBAAsB,sBACtBA,EAAA,oBAAsB,sBACtBA,EAAA,yBAA2B,2BAC3BA,EAAA,yBAA2B,2BAC3BA,EAAA,yBAA2B,2BAC3BA,EAAA,kBAAoB,oBAGpBA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAGhBA,EAAA,kBAAoB,oBACpBA,EAAA,kBAAoB,oBAGpBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBAGjBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBAGjBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,kBAAoB,oBACpBA,EAAA,gBAAkB,kBAClBA,EAAA,wBAA0B,0BAC1BA,EAAA,wBAA0B,0BAC1BA,EAAA,2BAA6B,6BAG7BA,EAAA,qBAAuB,uBACvBA,EAAA,kBAAoB,oBACpBA,EAAA,uBAAyB,yBACzBA,EAAA,0BAA4B,4BAC5BA,EAAA,wBAA0B,0BAC1BA,EAAA,yBAA2B,2BAC3BA,EAAA,sBAAwB,wBAGxBA,EAAA,gBAAkB,kBAClBA,EAAA,gBAAkB,kBAClBA,EAAA,iBAAmB,mBAGnBA,EAAA,uBAAyB,yBACzBA,EAAA,oBAAsB,sBACtBA,EAAA,0BAA4B,4BAC5BA,EAAA,uBAAyB,yBACzBA,EAAA,gCAAkC,kCAClCA,EAAA,6BAA+B,+BAG/BA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,uBAAyB,wBACzBA,EAAA,yBAA2B,2BAC3BA,EAAA,8BAAgC,gCAChCA,EAAA,sBAAwB,8BAGxBA,EAAA,YAAc,cACdA,EAAA,gBAAkB,kBAClBA,EAAA,eAAiB,iBAGjBA,EAAA,oBAAsB,sBACtBA,EAAA,qBAAuB,uBAGvBA,EAAA,6BAA+B,+BAC/BA,EAAA,6BAA+B,+BAC/BA,EAAA,0CAA4C,4CAG5CA,EAAA,oBAAsB,qBACtBA,EAAA,sBAAwB,uBAGxBA,EAAA,mBAAqB,qBAlMXA,OAAA,IAqMCC,EAA+B,CAC1C,eACA,eACA,eACA,sBACA,qBACA,wBACA,uBACA,qBACA,qBACA,qBACA,wBACA,2BACA,+BACF,EAEaC,GAAuB,CAAC,GAAGD,CAAmB,EAQ9CE,GAA8D,CAExE,eAAqB,4DACrB,eAAqB,4DACrB,eAAqB,4DACrB,sBAAuC,yCACvC,qBAAsC,wCACtC,wBAAyC,2CACzC,uBAAwC,0CACxC,eAAqB,6BACrB,uBAA8B,qCAC9B,wBAA8B,sCAC9B,gCAAsC,8CACtC,sBAA4B,oCAC5B,qBAA2B,iEAC3B,qBAA2B,iEAC3B,qBAA2B,iEAC3B,wBAA+B,iFAC/B,2BAAiC,mFACjC,gCAAsC,6CACtC,4BAAkC,OAClC,8BAA8B,OAC9B,2BAAiC,OACjC,0BAAgC,OAGhC,qBAA2B,8BAC3B,qBAA2B,8BAG3B,oBAA0B,2BAC1B,oBAA0B,2BAG1B,mBAAyB,4BACzB,mBAAyB,4BACzB,qBAA2B,8BAC3B,uBAA6B,gCAC7B,aAAmB,+BACnB,cAAoB,gCAGpB,wBAAyB,4BACzB,wBAAyB,4BACzB,0BAAiC,oCAGjC,cAAoB,2BACpB,cAAoB,2BACpB,cAAoB,2BACpB,iBAAuB,8BACvB,gBAAsB,6BACtB,kBAAwB,+BACxB,wBAA8B,qCAC9B,oBAA0B,iCAC1B,sBAA4B,mCAC5B,uBAA6B,oCAC7B,eAAqB,4BACrB,eAAqB,4BACrB,sBAA4B,mCAC5B,uBAA6B,oCAG7B,qBAA2B,qBAC3B,qBAA2B,qBAC3B,qBAA2B,qBAG3B,gBAAsB,gBACtB,gBAAsB,gBACtB,gBAAsB,gBACtB,eAAqB,eACrB,cAAoB,OACpB,kBAAwB,OAGxB,gBAAsB,6BACtB,gBAAsB,6BACtB,gBAAsB,6BACtB,iBAAuB,8BACvB,iBAAuB,8BACvB,sBAA4B,yBAG5B,eAAqB,eACrB,gBAAsB,gBAGtB,qBAA2B,kCAC3B,qBAA2B,kCAC3B,0BAAgC,qCAChC,0BAAgC,uCAChC,oBAA0B,OAC1B,kBAAwB,OACxB,6BAAmC,OAGnC,iBAAuB,8BACvB,iBAAuB,8BAGvB,oBAA0B,oBAC1B,oBAA0B,oBAG1B,+BAAqC,+BACrC,+BAAqC,+BACrC,4CAAkD,OAGlD,kBAAwB,kBACxB,iBAAuB,iBACvB,cAAoB,OAGpB,eAAqB,OACrB,eAAqB,OACrB,eAAqB,OACrB,gBAAsB,OACtB,kBAAwB,OAGxB,uBAA6B,OAC7B,oBAA0B,OAC1B,yBAA+B,OAC/B,4BAAkC,OAClC,0BAAgC,OAChC,2BAAiC,OACjC,wBAA8B,OAG9B,kBAAwB,OACxB,kBAAwB,OACxB,mBAAyB,OAGzB,yBAA+B,OAC/B,sBAA4B,OAC5B,4BAAkC,OAClC,yBAA+B,OAC/B,kCAAwC,OACxC,+BAAqC,OAGrC,iBAAuB,OACvB,iBAAuB,OAGvB,eAAqB,OACrB,eAAqB,OACrB,eAAqB,OACrB,gBAAsB,OACtB,sBAA4B,OAC5B,sBAA4B,OAC5B,sBAA4B,OAC5B,2BAAiC,OACjC,2BAAiC,OACjC,2BAAiC,OACjC,oBAA0B,OAG1B,iBAAuB,OACvB,aAAmB,OACnB,qBAA2B,OAG3B,oBAA0B,OAC1B,mBAAyB,OAGzB,+BAAqC,OACrC,gCAAsC,OACtC,kCAAwC,OACxC,4BAAmC,OAGnC,qBAA4B,OAC5B,uBAA8B,OAG9B,qBAA2B,MAC9B,ECjZO,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,eAFLA,OAAA,IA0BAC,OACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,aAAe,eAHLA,OAAA,IC9BL,IAAKC,OACVA,EAAA,KAAO,OAEPA,EAAA,IAAM,MAENA,EAAA,KAAO,OAEPA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,mBAAqB,qBAErBA,EAAA,SAAW,WACXA,EAAA,iBAAmB,mBACnBA,EAAA,uBAAyB,yBACzBA,EAAA,WAAa,aAdHA,OAAA,IAiBAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SAFCA,OAAA,IAoBAC,OACVA,EAAA,SAAW,UACXA,EAAA,qBAAuB,uBAFbA,OAAA,ICnCL,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UAFAA,OAAA,IAKAC,QACVA,EAAA,MAAQ,QACRA,EAAA,SAAW,WAFDA,QAAA,IAKAC,OACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,kBAAoB,kBAPVA,OAAA,IAUAC,OACVA,EAAA,QAAU,UACVA,EAAA,YAAc,cACdA,EAAA,oBAAsB,oBAHZA,OAAA,IAMAC,QACVA,EAAA,8BAAgC,6BAChCA,EAAA,2BAA6B,yBAFnBA,QAAA,IAQCC,GAAgB,CAC3BC,EACAC,EACAC,IAEOF,IAAc,SAAmBC,IAAc,SAG3CE,GAAiB,CAC5BH,EACAC,EACAC,IAEOF,IAAc,SAAmBC,IAAc,UAG3CG,GAAkB,CAC7BJ,EACAE,IAEOF,IAAc,WCtDhB,IAAKK,QACVA,EAAA,YAAc,aACdA,EAAA,YAAc,aACdA,EAAA,sBAAwB,uBACxBA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,iBAAmB,kBACnBA,EAAA,uBAAyB,uBACzBA,EAAA,aAAe,cACfA,EAAA,QAAU,UACVA,EAAA,oBAAsB,oBAEtBA,EAAA,iBAAmB,kBACnBA,EAAA,sBAAwB,sBACxBA,EAAA,YAAc,aACdA,EAAA,kBAAoB,kBAjBVA,QAAA,ICCL,IAAMC,GAAuB,mBAExBC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eAVLA,QAAA,IAaCC,GAAgB,CAC3B,SACA,OACA,SACA,SACA,cACA,aACF,EAEYC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,OAAS,SAHCA,QAAA,IAMAC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,YAAc,aACdA,EAAA,OAAS,SAZCA,QAAA,IAeAC,QACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAChBA,EAAA,QAAU,UACVA,EAAA,WAAa,aACbA,EAAA,GAAK,KACLA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,cAAgB,gBAChBA,EAAA,UAAY,YACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,YACZA,EAAA,SAAW,WAjBDA,QAAA,IAoBAC,QACVA,IAAA,QAAU,GAAV,UACAA,IAAA,QAAU,GAAV,UAFUA,QAAA,IAKAC,QACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,OAAS,QARCA,QAAA,IAWAC,QACVA,EAAA,oBAAsB,aACtBA,EAAA,kBAAoB,oBACpBA,EAAA,cAAgB,gBAHNA,QAAA,IA4GAC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SAJCA,QAAA,IC1LL,IAAKC,OACVA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,OAAS,SANCA,OAAA,IASAC,OACVA,EAAA,SAAW,WACXA,EAAA,aAAe,cACfA,EAAA,aAAe,cACfA,EAAA,OAAS,QAJCA,OAAA,IAOAC,OACVA,EAAA,MAAQ,QADEA,OAAA,IAIAC,OACVA,EAAA,IAAM,OACNA,EAAA,GAAK,MAFKA,OAAA,IAKL,SAASC,GACdC,EAC0B,CAC1B,OAAO,OAAO,OAAOF,CAAe,EAAE,SAASE,CAAwB,CACzE,CAEO,SAASC,GAAsBD,EAAuC,CAC3E,OAAO,OAAO,OAAOL,CAAa,EAAE,SAASK,CAAsB,CACrE,CAEO,SAASE,GAAsBF,EAAuC,CAC3E,OAAO,OAAO,OAAOJ,CAAa,EAAE,SAASI,CAAsB,CACrE,CAEO,SAASG,GAAsBH,EAAuC,CAC3E,OAAO,OAAO,OAAOH,CAAa,EAAE,SAASG,CAAsB,CACrE,CAQO,IAAKI,OACVA,EAAA,oBAAsB,qBADZA,OAAA,IAuJAC,OACVA,EAAA,WAAa,MACbA,EAAA,YAAc,OAFJA,OAAA,IAKAC,QACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MAFIA,QAAA,IAKAC,QACVA,EAAA,OAAS,QACTA,EAAA,SAAW,KACXA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,WACTA,EAAA,SAAW,UANDA,QAAA,ICxML,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SAFCA,QAAA,ICdL,IAAKC,QAKVA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,YAAc,cAVJA,QAAA,IAaAC,QACVA,EAAA,WAAa,aACbA,EAAA,cAAgB,gBAChBA,EAAA,qBAAuB,uBACvBA,EAAA,mBAAqB,qBACrBA,EAAA,qBAAuB,uBACvBA,EAAA,kBAAoB,oBACpBA,EAAA,cAAgB,iBAChBA,EAAA,oBAAsB,sBARZA,QAAA,ICHL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OAFGA,QAAA,IAYAC,QACVA,EAAA,UAAY,MACZA,EAAA,WAAa,OAFHA,QAAA,IAsFCC,GAAcC,GAClB,OAAOA,GAAQ,UAAYA,EAAI,KAAOA,EAAI,KCzG5C,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,UAAY,YACZA,EAAA,KAAO,OALGA,QAAA,ICNL,IAAKC,QACVA,EAAA,kBAAoB,oBAGpBA,EAAA,+BAAiC,iCAJvBA,QAAA,IAOCC,GAAsB,CAChC,kBAAgC,GAGhC,+BAA6C,EAChD,ECZO,IAAKC,QACVA,EAAA,WAAa,aACbA,EAAA,YAAc,cAFJA,QAAA,ICEL,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,KAAO,OACPA,EAAA,OAAS,UALCA,QAAA,IAQAC,QACVA,EAAA,MAAQ,QACRA,EAAA,cAAgB,KAFNA,QAAA,IAKCC,GAAiB,CAC5B,OAAQ,oBACR,MAAO,mBACP,aAAc,eACd,wBACF,EClBO,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,MAAQ,QAJEA,QAAA,IAQAC,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QALEA,QAAA,IASAC,QACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,eAAiB,gBACjBA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,YAAc,cAXJA,QAAA,IAcAC,QACVA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,KAAO,OAHGA,QAAA,IC4BL,IAAKC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,iBAAmB,iBAHTA,QAAA,ICxCL,IAAMC,GACXC,GACsCA,EAAQ,WAAa,WAoChDC,GACXD,GAEAA,EAAQ,WAAa,YAAqBA,EAAQ,iBAOvCE,GAAkBF,GAC7BA,EAAQ,kBAEGG,GAAqBH,GAChCA,EAAQ,iBAEGI,GAAgBJ,GAC3BA,EAAQ,WAAa,MAEXK,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YAFFA,QAAA,IAKAC,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YAFFA,QAAA,IAKNC,GAA+C,CACnD,WACF,EACO,SAASC,GAAwBC,EAAuC,CAC7E,OAAOF,GAAuB,SAASE,CAAQ,CACjD,CAWO,IAAKC,QACVA,EAAA,IAAM,MACNA,EAAA,SAAW,WAFDA,QAAA,IChGL,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,WAAa,aARHA,QAAA,IAWAC,QACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,aAAe,cACfA,EAAA,YAAc,aACdA,EAAA,YAAc,aACdA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,eAAiB,gBACjBA,EAAA,KAAO,OACPA,EAAA,YAAc,aACdA,EAAA,WAAa,aACbA,EAAA,kBAAoB,mBACpBA,EAAA,kBAAoB,oBACpBA,EAAA,eAAiB,iBAnBPA,QAAA,IAsBAC,OACVA,EAAA,UAAY,YACZA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,WAAa,aAPHA,OAAA,IAUAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAHAA,QAAA,IAMAC,OACVA,EAAA,gBAAkB,kBAClBA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,aAAe,eACfA,EAAA,iBAAmB,mBACnBA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBAChBA,EAAA,WAAa,aACbA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,WAAa,aACbA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,uBAAyB,yBACzBA,EAAA,OAAS,SAETA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,WAAa,aACbA,EAAA,IAAM,MAvBIA,OAAA,IA4DCC,GAAwB,CACnC,GAAG,OAAO,OAAOD,CAAsB,EACvC,GAAG,OAAO,OAAOF,CAAuB,CAC1C,EAmDYI,QACVA,EAAA,QAAU,UADAA,QAAA,IAIAC,QACVA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,yBAFPA,QAAA,IAKAC,QACVA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAChBA,EAAA,iBAAmB,0BALTA,QAAA,IAQAC,QACVA,EAAA,uBAAyB,qEADfA,QAAA,IAsEAC,QACVA,EAAA,SAAW,WACXA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,gBAAkB,cAClBA,EAAA,WAAa,aAPHA,QAAA,IAkBAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAFCA,QAAA,IC3HL,IAAKC,QACVA,EAAA,aAAe,gBAEfA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,YAAc,cALJA,QAAA,ICvIL,IAAKC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAFCA,QAAA,ICsBL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,UAAY,OACZA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OANGA,QAAA,IAmCAC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,OAAS,SANCA,QAAA,ICtEL,IAAMC,GAA2B,cAE5BC,QACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WAFDA,QAAA,ICLL,IAAKC,OAKVA,EAAA,OAAS,SAMTA,EAAA,SAAW,WAMXA,EAAA,QAAU,UAMVA,EAAA,OAAS,SAKTA,EAAA,QAAU,UAMVA,EAAA,MAAQ,QAMRA,EAAA,SAAW,WAMXA,EAAA,YAAc,aAMdA,EAAA,kBAAoB,oBAQpBA,EAAA,KAAO,OAOPA,EAAA,QAAU,UAQVA,EAAA,KAAO,OAOPA,EAAA,GAAK,KAMLA,EAAA,KAAO,OAKPA,EAAA,SAAW,WAMXA,EAAA,UAAY,YAKZA,EAAA,iBAAmB,mBAMnBA,EAAA,OAAS,SAQTA,EAAA,aAAe,eAIfA,EAAA,oBAAsB,sBA1HZA,OAAA,IA6HCC,GAAY,CACvB,oBACA,aAEA,eACA,OACA,OACF,EAQaC,GAAe,CAAC,SAAkB,QAAgB,EAExD,SAASC,GAAUC,EAAiB,CACzC,OAAOF,GAAa,SAASE,CAAI,CACnC,CAEO,IAAMC,GAAe,CAC1B,SACA,WACA,UACA,SACA,UACA,WACA,SACA,IACF,EAEO,SAASC,GAAWF,EAAiB,CAC1C,OAAOC,GAAa,SAASD,CAAI,CACnC,CC/JO,IAAKG,OACVA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,aAAe,eAHLA,OAAA,IAMAC,QACVA,EAAA,YAAc,cADJA,QAAA,IASAC,QACVA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,QAAU,SALAA,QAAA,IAQAC,QACVA,EAAA,MAAQ,QADEA,QAAA,IAIAC,QACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,GAAK,KAHKA,QAAA,IAMAC,QACVA,EAAA,KAAO,OAEPA,EAAA,MAAQ,QAHEA,QAAA,IC6NL,SAASC,GACdC,EACoC,CACpC,OAAOA,EAAM,aACf,CAEO,SAASC,GACdD,EAC8C,CAC9C,OAAOA,EAAM,iCACf,CAEO,SAASE,GACdF,EAC6C,CAC7C,OAAOA,EAAM,gCACf,CAEO,SAASG,GACdH,EAC6C,CAC7C,OAAOA,EAAM,gCACf,CC7MO,IAAKI,QACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,IAAM,MALIA,QAAA,IAQAC,QACVA,EAAA,YAAc,cADJA,QAAA,IA0DAC,QACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,WAAa,QAHHA,QAAA,IC3IL,IAAMC,EAAY,IACZC,GAAc,SAEdC,GAAYC,GAAuB,GAAGA,CAAI,GAAGH,CAAS,GAEvDI,OACVA,EAAA,KAAO,KACPA,EAAA,MAAQ,KACRA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,SAAW,UACXA,EAAA,eAAiB,SACjBA,EAAA,iBAAmB,eACnBA,EAAA,OAAS,MACTA,EAAA,WAAa,aACbA,EAAA,gBAAkB,kBAClBA,EAAA,WAAa,SACbA,EAAA,MAAQ,KACRA,EAAA,IAAM,KACNA,EAAA,WAAa,KACbA,EAAA,KAAO,KACPA,EAAA,QAAU,KACVA,EAAA,SAAW,OACXA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,SAAW,OACXA,EAAA,UAAY,OACZA,EAAA,oBAAsB,UACtBA,EAAA,UAAY,KACZA,EAAA,uBAAyB,qBACzBA,EAAA,SAAW,UACXA,EAAA,YAAc,KApCJA,OAAA,IAyCNC,GAAsB,OAAO,OAAOD,CAAY,EAAE,KACtD,CAACE,EAAGC,IAAMA,EAAE,OAASD,EAAE,MACzB,EACO,SAASE,GAAgBC,EAAsC,CACpE,OAAOJ,GAAoB,KAAKK,GAC9BD,EAAG,WAAW,GAAGC,CAAO,GAAGV,CAAS,EAAE,CACxC,CACF,CAKO,IAAMW,GAAwC,CACnD,OACA,aACA,kBACA,KACA,KACA,KACA,SACA,QACA,WACA,OAEA,OACA,QACF,EAEYC,QACVA,EAAA,cAAgB,WADNA,QAAA,IAMAC,OACVA,EAAA,KAAO,OACPA,EAAA,WAAa,aAFHA,OAAA,IAONC,GAA6B,OAAO,OAAOD,CAAmB,EAAE,KACpE,CAACP,EAAGC,IAAMA,EAAE,OAASD,EAAE,MACzB,EACO,SAASS,GACdN,EACiC,CACjC,OAAOK,GAA2B,KAAKJ,GACrCD,EAAG,WAAW,GAAGC,CAAO,GAAGV,CAAS,EAAE,CACxC,CACF,CC7FO,IAAKgB,QACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UAFAA,QAAA,IAKAC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,OAAS,SAJCA,QAAA,IAOAC,QACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,UAAY,YAJFA,QAAA,ICZL,IAAKC,QACVA,EAAA,WAAa,aADHA,QAAA,ICHL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,UACPA,EAAA,IAAM,UACNA,EAAA,KAAO,OACPA,EAAA,QAAU,UALAA,QAAA,ICAL,IAAKC,QACVA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,SAAW,WANDA,QAAA,ICAL,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UAHAA,QAAA,ICAL,IAAKC,QACVA,EAAA,sBAAwB,sBACxBA,EAAA,wBAA0B,wBAFhBA,QAAA,ICgIL,IAAMC,GAAYC,GACvB,SAAUA,GAAU,WAAYA,EAErBC,GAAoBD,GAC/BA,EAAO,OAAS,WAELE,GAAgBF,GAC3BA,EAAO,OAAS,OAELG,GAAkBH,GAC7BA,EAAO,OAAS,SAELI,GAAgBJ,GAC3BA,EAAO,OAAS,OAELK,GAAgBL,GAC3BA,EAAO,OAAS,OAELM,GAAcN,GACzBA,EAAO,OAAS,KAENO,QACVA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,KAAO,OACPA,EAAA,GAAK,KARKA,QAAA,ICvIL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SAFCA,QAAA,IAoBL,SAASC,GAAUC,EAA6B,CACrD,MAAO,CAAC,CAAEA,EAAiB,YAC7B,CAkDO,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WAFDA,QAAA,IAgCL,SAASC,GAAOF,EAA4B,CACjD,MAAO,CAAC,CAAEA,EAAc,KAC1B,CCtHO,IAAKG,OACVA,EAAA,WAAa,aACbA,EAAA,UAAY,YACZA,EAAA,WAAa,aAHHA,OAAA,IAMAC,QACVA,EAAA,IAAM,MACNA,EAAA,OAAS,SACTA,EAAA,IAAM,MACNA,EAAA,KAAO,cAJGA,QAAA,IA6BCC,GAAkB,OAAO,OAAOF,CAAU,ECnChD,IAAKG,QACVA,EAAA,YAAc,aACdA,EAAA,mBAAqB,oBACrBA,EAAA,YAAc,cAHJA,QAAA,IAMCC,GAAkB,+BAI/B,EAEaC,GAAwB,wBAGrC,ECfO,IAAKC,QACVA,EAAA,WAAa,aADHA,QAAA,IAIAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAHAA,QAAA,IAgBCC,GAAsB,CACjCC,EACAC,IAEOD,IAAS,aCvBX,IAAME,GAAqB,SACrBC,GAAiB,WCJvB,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,IAAM,MAFIA,QAAA,ICAL,IAAKC,OACVA,EAAA,UAAY,YACZA,EAAA,WAAa,aAFHA,OAAA,IAKAC,OACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SAFCA,OAAA,ICUZ,IAAAC,EAAkB,eAEZC,EAAW,IACd,OAAO,EACP,OAAOC,GAAKA,yBAAwD,CACnE,iDACF,CAAC,EAEGC,GAAoB,IAAE,OAAOF,EAAU,IAAE,OAAO,CAAC,EACjDG,EAAc,IAAE,OAAOH,EAAU,IAAE,IAAI,CAAC,EACxCI,EAAc,IAAE,OAAOJ,EAAU,IAAE,MAAM,CAAC,IAAE,IAAI,EAAE,MAAM,EAAG,IAAE,OAAO,CAAC,CAAC,CAAC,EACvEK,GAAc,IAAE,KAAK,IACzB,IAAE,OAAO,CACP,WAAY,IAAE,MAAM,IAAE,OAAOC,EAAqB,CAAC,CACrD,CAAC,CACH,EAEMC,EAAiB,IAAE,MAAM,CAAC,IAAE,OAAO,EAAG,IAAE,OAAO,CAAC,CAAC,EAEjDD,GAA+D,CAClE,OAAuBJ,GAAkB,SAAS,EAClD,MAAsBA,GAAkB,SAAS,EACjD,MAAsB,IACpB,OACCF,EACA,IAAE,MAAM,CACN,IAAE,OAAO,CAAE,KAAMO,EAAgB,IAAKA,CAAe,CAAC,EACtD,IAAE,OAAO,CAAE,KAAMA,CAAe,CAAC,EACjC,IAAE,OAAO,CAAE,IAAKA,CAAe,CAAC,CAClC,CAAC,CACH,EACC,SAAS,EACX,MAAsBJ,EAAY,SAAS,EAC3C,SAA0BA,EAAY,SAAS,EAC/C,MAAsBA,EAAY,SAAS,EAC3C,SAA0BA,EAAY,SAAS,EAC/C,MAAuBC,EAAY,SAAS,EAC5C,SAAyBA,EAAY,SAAS,EAC9C,YAA6BA,EAAY,SAAS,EAClD,YAA6BA,EAAY,SAAS,EAClD,KAAsBC,GAAY,SAAS,EAC3C,IAAqBA,GAAY,SAAS,CAC7C,EAEMG,GAAmB,IAAE,OAAO,CAChC,MAAO,IACJ,OAAO,CACN,MAAO,IAAE,QAAQ,EAAE,SAAS,EAC5B,cAAe,IAAE,WAAWC,CAAiB,EAAE,SAAS,EACxD,GAAGH,EACL,CAAC,EACA,SAAS,EACZ,SAAU,IAAE,QAAQ,EAAE,SAAS,EAC/B,SAAU,IAAE,MAAM,CAAC,IAAE,OAAO,EAAG,IAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EACpD,MAAO,IAAE,OAAO,EAAE,SAAS,EAC3B,KAAM,IAAE,OAAO,EAAE,QAAQ,EACzB,UAAW,IAAE,WAAWI,CAAS,EAAE,SAAS,EAC5C,SAAU,IAAE,WAAWC,CAAQ,EAAE,QAAQ,EACzC,QAAS,IAAE,OAAO,EAAE,SAAS,EAC7B,gBAAiB,IAAE,QAAQ,EAAE,SAAS,EACtC,UAAW,IAAE,QAAQ,EAAE,SAAS,CAClC,CAAC,EAEYC,GAA4BJ,GCGlC,SAASK,GACdC,EACmC,CACnC,MAAO,CAAC,EAAE,YAAaA,GAAYA,EAAS,QAC9C,CCjEO,IAAKC,QACVA,EAAA,QAAU,UADAA,QAAA,ICpBL,IAAKC,QACVA,EAAA,0CAA4C,4CADlCA,QAAA,ICEL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,kBAAoB,oBACpBA,EAAA,WAAa,aACbA,EAAA,QAAU,UACVA,EAAA,OAAS,SANCA,QAAA,ICFL,IAAKC,QACVA,EAAA,IAAM,MADIA,QAAA,ICAL,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAFGA,QAAA,IAKAC,QACVA,EAAA,YAAc,cADJA,QAAA,ICLL,IAAWC,QAChBA,EAAA,SAAW,WACXA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,cAAgB,gBAChBA,EAAA,aAAe,eANCA,QAAA,ICaX,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,WAAa,aAFHA,QAAA,ICbL,IAAKC,QACVA,EAAA,SAAW,UACXA,EAAA,WAAa,OACbA,EAAA,SAAW,OAHDA,QAAA",
|
|
6
|
-
"names": ["src_exports", "__export", "AIOperationEnum", "APP_QUOTA_NAMES", "AUDIT_LOG_TYPE", "AccountSSOProvider", "AccountSSOProviderType", "AnalyticsEvent", "AppBackupStatus", "AppBackupTrigger", "AppBackupType", "AppEnvironment", "ArrayOperator", "AsyncEvents", "AuditLogResourceStatus", "AuditLogSystemUser", "AuditedEventFriendlyName", "AuthType", "AutoFieldSubType", "AutoReason", "AutomationActionStepId", "AutomationCustomIOType", "AutomationEventType", "AutomationFeature", "AutomationIOType", "AutomationStatus", "AutomationStepIdArray", "AutomationStepStatus", "AutomationStepType", "AutomationStoppedReason", "AutomationTriggerStepId", "BBReferenceFieldSubType", "BREAKDOWN_QUOTA_NAMES", "BasicOperator", "BindingMode", "BodyType", "BreakdownQuotaName", "BuiltinPermissionID", "CalculationType", "CommandWord", "ConfigType", "ConstantQuotaName", "DSPlusOperation", "DatasourceFeature", "DatasourceFieldType", "DeploymentStatus", "DocumentType", "DocumentTypesToImport", "EmailTemplatePurpose", "EmptyFilterOption", "Event", "EventPublishType", "EventType", "Feature", "FeatureFlag", "FeatureFlagDefaults", "FieldType", "FilterType", "FormulaType", "GroupByTypes", "GroupType", "Hosting", "HttpMethod", "INTERNAL_TABLE_SOURCE_ID", "IdentityType", "IncludeRelationship", "InitType", "InternalSearchFilterOperator", "InternalTable", "JsonFieldSubType", "JsonTypes", "LockName", "LockType", "LogicalOperator", "LoginMethod", "LoopStepType", "MaintenanceType", "MetadataType", "Model", "MonthlyQuotaName", "NumericTypes", "Operation", "OperationFieldTypeEnum", "PASSWORD_REPLACEMENT", "PLUGIN_TYPE_ARR", "PermissionLevel", "PermissionSource", "PermissionType", "PingSource", "PlanModel", "PlanType", "PluginSource", "PluginType", "PriceDuration", "QueryType", "QuotaType", "QuotaUsageType", "RangeOperator", "RelationshipType", "RestAuthType", "RowExportFormat", "RowOperations", "SEPARATOR", "SQLiteType", "SSOProviderType", "ScheduleRepeatPeriod", "ScheduleType", "SearchIndex", "ServiceType", "SidePanel", "SortOption", "SortOrder", "SortType", "SourceName", "SqlClient", "StaticQuotaName", "TableSourceType", "TemplateType", "TenantResolutionStrategy", "Theme", "UILogicalOperator", "UNICODE_MAX", "UserGroupSyncEvents", "UserStatus", "ViewCalculation", "ViewV2Type", "VirtualDocumentType", "WebhookActionType", "canGroupBy", "getDocumentType", "getVirtualDocumentType", "isAIConfig", "isAppBackupMetadata", "isArraySearchOperator", "isBasicSearchOperator", "isCloudAccount", "isConfig", "isConstantQuota", "isCreatePasswordAccount", "isDidNotTriggerResponse", "isDocument", "isGoogleConfig", "isLogicalSearchOperator", "isManyToMany", "isManyToOne", "isMonthlyQuota", "isNumeric", "isOIDCConfig", "isOneToMany", "isPasswordAccount", "isRangeSearchOperator", "isRelationshipField", "isSCIMConfig", "isSMTPConfig", "isSSOAccount", "isSSOUser", "isSelfHostAccount", "isSettingsConfig", "isStaticQuota", "isUser", "isVerifiableSSOProvider", "prefixed", "searchRowRequestValidator", "__toCommonJS", "AIOperationEnum", "OperationFieldTypeEnum", "Hosting", "Event", "UserGroupSyncEvents", "AsyncEvents", "AuditedEventFriendlyName", "GroupType", "IdentityType", "PlanType", "PriceDuration", "PlanModel", "QuotaUsageType", "QuotaType", "StaticQuotaName", "MonthlyQuotaName", "ConstantQuotaName", "isStaticQuota", "quotaType", "usageType", "name", "isMonthlyQuota", "isConstantQuota", "Feature", "PASSWORD_REPLACEMENT", "Operation", "RowOperations", "QueryType", "DatasourceFieldType", "SourceName", "IncludeRelationship", "FilterType", "DatasourceFeature", "DSPlusOperation", "BasicOperator", "ArrayOperator", "RangeOperator", "LogicalOperator", "isLogicalSearchOperator", "value", "isBasicSearchOperator", "isArraySearchOperator", "isRangeSearchOperator", "InternalSearchFilterOperator", "EmptyFilterOption", "UILogicalOperator", "SqlClient", "LoginMethod", "LockType", "LockName", "SearchIndex", "SortOption", "isDocument", "doc", "TenantResolutionStrategy", "FeatureFlag", "FeatureFlagDefaults", "AppEnvironment", "CommandWord", "InitType", "AnalyticsEvent", "PermissionLevel", "BuiltinPermissionID", "PermissionType", "PermissionSource", "RowExportFormat", "isCreatePasswordAccount", "account", "isPasswordAccount", "isCloudAccount", "isSelfHostAccount", "isSSOAccount", "AccountSSOProviderType", "AccountSSOProvider", "verifiableSSOProviders", "isVerifiableSSOProvider", "provider", "AuthType", "AutomationIOType", "AutomationCustomIOType", "AutomationTriggerStepId", "AutomationStepType", "AutomationActionStepId", "AutomationStepIdArray", "AutomationFeature", "AutomationStepStatus", "AutomationStatus", "AutomationStoppedReason", "AutomationEventType", "LoopStepType", "Model", "RestAuthType", "BodyType", "HttpMethod", "INTERNAL_TABLE_SOURCE_ID", "TableSourceType", "FieldType", "JsonTypes", "NumericTypes", "isNumeric", "type", "GroupByTypes", "canGroupBy", "RelationshipType", "AutoReason", "AutoFieldSubType", "JsonFieldSubType", "FormulaType", "BBReferenceFieldSubType", "isRelationshipField", "field", "isManyToMany", "isOneToMany", "isManyToOne", "CalculationType", "ViewV2Type", "ViewCalculation", "SEPARATOR", "UNICODE_MAX", "prefixed", "type", "DocumentType", "sortedDocumentTypes", "a", "b", "getDocumentType", "id", "docType", "DocumentTypesToImport", "InternalTable", "VirtualDocumentType", "sortedVirtualDocumentTypes", "getVirtualDocumentType", "AppBackupType", "AppBackupStatus", "AppBackupTrigger", "WebhookActionType", "SQLiteType", "Theme", "DeploymentStatus", "MetadataType", "isConfig", "config", "isSettingsConfig", "isSMTPConfig", "isGoogleConfig", "isOIDCConfig", "isSCIMConfig", "isAIConfig", "ConfigType", "SSOProviderType", "isSSOUser", "user", "UserStatus", "isUser", "PluginType", "PluginSource", "PLUGIN_TYPE_ARR", "BreakdownQuotaName", "APP_QUOTA_NAMES", "BREAKDOWN_QUOTA_NAMES", "ScheduleType", "ScheduleRepeatPeriod", "isAppBackupMetadata", "type", "metadata", "AuditLogSystemUser", "AUDIT_LOG_TYPE", "PingSource", "SortOrder", "SortType", "import_zod", "fieldKey", "s", "stringBasicFilter", "basicFilter", "arrayFilter", "logicFilter", "queryFilterValidation", "stringOrNumber", "searchRowRequest", "EmptyFilterOption", "SortOrder", "SortType", "searchRowRequestValidator", "isDidNotTriggerResponse", "response", "AuditLogResourceStatus", "EventPublishType", "EmailTemplatePurpose", "TemplateType", "ServiceType", "MaintenanceType", "EventType", "BindingMode", "SidePanel"]
|
|
4
|
+
"sourcesContent": ["export * from \"./documents\"\nexport * from \"./sdk\"\nexport * from \"./api\"\nexport * from \"./core\"\nexport * from \"./shared\"\nexport * from \"./ui\"\n", "export enum AIOperationEnum {\n SUMMARISE_TEXT = \"SUMMARISE_TEXT\",\n CLEAN_DATA = \"CLEAN_DATA\",\n TRANSLATE = \"TRANSLATE\",\n CATEGORISE_TEXT = \"CATEGORISE_TEXT\",\n SENTIMENT_ANALYSIS = \"SENTIMENT_ANALYSIS\",\n PROMPT = \"PROMPT\",\n SEARCH_WEB = \"SEARCH_WEB\",\n}\n\nexport enum OperationFieldTypeEnum {\n MULTI_COLUMN = \"columns\",\n COLUMN = \"column\",\n BINDABLE_TEXT = \"prompt\",\n}\n\nexport type OperationFieldsType = {\n [AIOperationEnum.SUMMARISE_TEXT]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n }\n [AIOperationEnum.CLEAN_DATA]: {\n column: OperationFieldTypeEnum.COLUMN\n }\n [AIOperationEnum.TRANSLATE]: {\n column: OperationFieldTypeEnum.COLUMN\n language: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.CATEGORISE_TEXT]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n categories: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.SENTIMENT_ANALYSIS]: {\n column: OperationFieldTypeEnum.COLUMN\n }\n [AIOperationEnum.PROMPT]: {\n prompt: OperationFieldTypeEnum.BINDABLE_TEXT\n }\n [AIOperationEnum.SEARCH_WEB]: {\n columns: OperationFieldTypeEnum.MULTI_COLUMN\n }\n}\n\ntype BaseSchema = {\n operation: AIOperationEnum\n}\n\ntype SummariseTextSchema = BaseSchema & {\n operation: AIOperationEnum.SUMMARISE_TEXT\n columns: string[]\n}\n\ntype CleanDataSchema = BaseSchema & {\n operation: AIOperationEnum.CLEAN_DATA\n column: string\n}\n\ntype TranslateSchema = BaseSchema & {\n operation: AIOperationEnum.TRANSLATE\n column: string\n language: string\n}\n\ntype CategoriseTextSchema = BaseSchema & {\n operation: AIOperationEnum.CATEGORISE_TEXT\n columns: string[]\n categories: string[]\n}\n\ntype SentimentAnalysisSchema = BaseSchema & {\n operation: AIOperationEnum.SENTIMENT_ANALYSIS\n column: string\n}\n\ntype PromptSchema = BaseSchema & {\n operation: AIOperationEnum.PROMPT\n prompt: string\n}\n\ntype SearchWebSchema = BaseSchema & {\n operation: AIOperationEnum.SEARCH_WEB\n columns: string[]\n}\n\nexport type AIColumnSchema =\n | SummariseTextSchema\n | CleanDataSchema\n | TranslateSchema\n | CategoriseTextSchema\n | SentimentAnalysisSchema\n | PromptSchema\n | SearchWebSchema\n", "export enum Hosting {\n CLOUD = \"cloud\",\n SELF = \"self\",\n}\n", "import { Hosting } from \"../hosting\"\nimport { Group, Identity } from \"./identification\"\n\nexport enum Event {\n // USER\n USER_CREATED = \"user:created\",\n USER_UPDATED = \"user:updated\",\n USER_DELETED = \"user:deleted\",\n\n // USER / ONBOARDING\n USER_ONBOARDING_COMPLETE = \"user:onboarding:complete\",\n\n // USER / PERMISSIONS\n USER_PERMISSION_ADMIN_ASSIGNED = \"user:admin:assigned\",\n USER_PERMISSION_ADMIN_REMOVED = \"user:admin:removed\",\n USER_PERMISSION_BUILDER_ASSIGNED = \"user:builder:assigned\",\n USER_PERMISSION_BUILDER_REMOVED = \"user:builder:removed\",\n\n // USER / INVITE\n USER_INVITED = \"user:invited\",\n USER_INVITED_ACCEPTED = \"user:invite:accepted\",\n\n // USER / PASSWORD\n USER_PASSWORD_FORCE_RESET = \"user:password:force:reset\",\n USER_PASSWORD_UPDATED = \"user:password:updated\",\n USER_PASSWORD_RESET_REQUESTED = \"user:password:reset:requested\",\n USER_PASSWORD_RESET = \"user:password:reset\",\n\n // USER / COLLABORATION\n USER_DATA_COLLABORATION = \"user:data:collaboration\",\n\n // EMAIL\n EMAIL_SMTP_CREATED = \"email:smtp:created\",\n EMAIL_SMTP_UPDATED = \"email:smtp:updated\",\n\n // AI\n AI_CONFIG_CREATED = \"ai:config:created\",\n AI_CONFIG_UPDATED = \"ai:config:updated\",\n\n // AUTH\n AUTH_SSO_CREATED = \"auth:sso:created\",\n AUTH_SSO_UPDATED = \"auth:sso:updated\",\n AUTH_SSO_ACTIVATED = \"auth:sso:activated\",\n AUTH_SSO_DEACTIVATED = \"auth:sso:deactivated\",\n AUTH_LOGIN = \"auth:login\",\n AUTH_LOGOUT = \"auth:logout\",\n\n // ORG\n ORG_NAME_UPDATED = \"org:info:name:updated\",\n ORG_LOGO_UPDATED = \"org:info:logo:updated\",\n ORG_PLATFORM_URL_UPDATED = \"org:platformurl:updated\",\n\n // INSTALLATION\n INSTALLATION_VERSION_CHECKED = \"installation:version:checked\",\n INSTALLATION_VERSION_UPGRADED = \"installation:version:upgraded\",\n INSTALLATION_VERSION_DOWNGRADED = \"installation:version:downgraded\",\n INSTALLATION_FIRST_STARTUP = \"installation:firstStartup\",\n\n // ORG / ANALYTICS\n ANALYTICS_OPT_OUT = \"analytics:opt:out\",\n ANALYTICS_OPT_IN = \"analytics:opt:in\",\n\n // APP\n APP_CREATED = \"app:created\",\n APP_UPDATED = \"app:updated\",\n APP_DELETED = \"app:deleted\",\n APP_DUPLICATED = \"app:duplicated\",\n APP_PUBLISHED = \"app:published\",\n APP_UNPUBLISHED = \"app:unpublished\",\n APP_TEMPLATE_IMPORTED = \"app:template:imported\",\n APP_FILE_IMPORTED = \"app:file:imported\",\n APP_VERSION_UPDATED = \"app:version:updated\",\n APP_VERSION_REVERTED = \"app:version:reverted\",\n APP_REVERTED = \"app:reverted\",\n APP_EXPORTED = \"app:exported\",\n\n // ROLE\n ROLE_CREATED = \"role:created\",\n ROLE_UPDATED = \"role:updated\",\n ROLE_DELETED = \"role:deleted\",\n ROLE_ASSIGNED = \"role:assigned\",\n ROLE_UNASSIGNED = \"role:unassigned\",\n\n // SERVE\n SERVED_BUILDER = \"served:builder\",\n SERVED_APP = \"served:app\",\n SERVED_APP_PREVIEW = \"served:app:preview\",\n\n // DATASOURCE\n DATASOURCE_CREATED = \"datasource:created\",\n DATASOURCE_UPDATED = \"datasource:updated\",\n DATASOURCE_DELETED = \"datasource:deleted\",\n\n // QUERY\n QUERY_CREATED = \"query:created\",\n QUERY_UPDATED = \"query:updated\",\n QUERY_DELETED = \"query:deleted\",\n QUERY_IMPORT = \"query:import\",\n QUERIES_RUN = \"queries:run\",\n QUERY_PREVIEWED = \"query:previewed\",\n\n // TABLE\n TABLE_CREATED = \"table:created\",\n TABLE_UPDATED = \"table:updated\",\n TABLE_DELETED = \"table:deleted\",\n TABLE_EXPORTED = \"table:exported\",\n TABLE_IMPORTED = \"table:imported\",\n TABLE_DATA_IMPORTED = \"table:data:imported\",\n\n // VIEW\n VIEW_CREATED = \"view:created\",\n VIEW_UPDATED = \"view:updated\",\n VIEW_DELETED = \"view:deleted\",\n VIEW_EXPORTED = \"view:exported\",\n VIEW_FILTER_CREATED = \"view:filter:created\",\n VIEW_FILTER_UPDATED = \"view:filter:updated\",\n VIEW_FILTER_DELETED = \"view:filter:deleted\",\n VIEW_CALCULATION_CREATED = \"view:calculation:created\",\n VIEW_CALCULATION_UPDATED = \"view:calculation:updated\",\n VIEW_CALCULATION_DELETED = \"view:calculation:deleted\",\n VIEW_JOIN_CREATED = \"view:join:created\",\n\n // ROWS\n ROWS_CREATED = \"rows:created\",\n ROWS_IMPORTED = \"rows:imported\",\n\n // COMPONENT\n COMPONENT_CREATED = \"component:created\",\n COMPONENT_DELETED = \"component:deleted\",\n\n // SCREEN\n SCREEN_CREATED = \"screen:created\",\n SCREEN_DELETED = \"screen:deleted\",\n\n // LAYOUT\n LAYOUT_CREATED = \"layout:created\",\n LAYOUT_DELETED = \"layout:deleted\",\n\n // AUTOMATION\n AUTOMATION_CREATED = \"automation:created\",\n AUTOMATION_DELETED = \"automation:deleted\",\n AUTOMATION_TESTED = \"automation:tested\",\n AUTOMATIONS_RUN = \"automations:run\",\n AUTOMATION_STEP_CREATED = \"automation:step:created\",\n AUTOMATION_STEP_DELETED = \"automation:step:deleted\",\n AUTOMATION_TRIGGER_UPDATED = \"automation:trigger:updated\",\n\n // LICENSE\n LICENSE_PLAN_CHANGED = \"license:plan:changed\",\n LICENSE_ACTIVATED = \"license:activated\",\n LICENSE_PAYMENT_FAILED = \"license:payment:failed\",\n LICENSE_PAYMENT_RECOVERED = \"license:payment:recovered\",\n LICENSE_CHECKOUT_OPENED = \"license:checkout:opened\",\n LICENSE_CHECKOUT_SUCCESS = \"license:checkout:success\",\n LICENSE_PORTAL_OPENED = \"license:portal:opened\",\n\n // ACCOUNT\n ACCOUNT_CREATED = \"account:created\",\n ACCOUNT_DELETED = \"account:deleted\",\n ACCOUNT_VERIFIED = \"account:verified\",\n\n // BACKFILL\n APP_BACKFILL_SUCCEEDED = \"app:backfill:succeeded\",\n APP_BACKFILL_FAILED = \"app:backfill:failed\",\n TENANT_BACKFILL_SUCCEEDED = \"tenant:backfill:succeeded\",\n TENANT_BACKFILL_FAILED = \"tenant:backfill:failed\",\n INSTALLATION_BACKFILL_SUCCEEDED = \"installation:backfill:succeeded\",\n INSTALLATION_BACKFILL_FAILED = \"installation:backfill:failed\",\n\n // USER\n USER_GROUP_CREATED = \"user_group:created\",\n USER_GROUP_UPDATED = \"user_group:updated\",\n USER_GROUP_DELETED = \"user_group:deleted\",\n USER_GROUP_USERS_ADDED = \"user_group:user_added\",\n USER_GROUP_USERS_REMOVED = \"user_group:users_deleted\",\n USER_GROUP_PERMISSIONS_EDITED = \"user_group:permissions_edited\",\n USER_GROUP_ONBOARDING = \"user_group:onboarding_added\",\n\n // PLUGIN\n PLUGIN_INIT = \"plugin:init\",\n PLUGIN_IMPORTED = \"plugin:imported\",\n PLUGIN_DELETED = \"plugin:deleted\",\n\n // BACKUP\n APP_BACKUP_RESTORED = \"app:backup:restored\",\n APP_BACKUP_TRIGGERED = \"app:backup:triggered\",\n\n // ENVIRONMENT VARIABLE\n ENVIRONMENT_VARIABLE_CREATED = \"environment_variable:created\",\n ENVIRONMENT_VARIABLE_DELETED = \"environment_variable:deleted\",\n ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED = \"environment_variable:upgrade_panel_opened\",\n\n // AUDIT LOG\n AUDIT_LOGS_FILTERED = \"audit_log:filtered\",\n AUDIT_LOGS_DOWNLOADED = \"audit_log:downloaded\",\n\n // ROW ACTION\n ROW_ACTION_CREATED = \"row_action:created\",\n}\n\nexport const UserGroupSyncEvents: Event[] = [\n Event.USER_CREATED,\n Event.USER_UPDATED,\n Event.USER_DELETED,\n Event.USER_PERMISSION_ADMIN_ASSIGNED,\n Event.USER_PERMISSION_ADMIN_REMOVED,\n Event.USER_PERMISSION_BUILDER_ASSIGNED,\n Event.USER_PERMISSION_BUILDER_REMOVED,\n Event.USER_GROUP_CREATED,\n Event.USER_GROUP_UPDATED,\n Event.USER_GROUP_DELETED,\n Event.USER_GROUP_USERS_ADDED,\n Event.USER_GROUP_USERS_REMOVED,\n Event.USER_GROUP_PERMISSIONS_EDITED,\n]\n\nexport const AsyncEvents: Event[] = [...UserGroupSyncEvents]\n\n// all events that are not audited have been added to this record as undefined, this means\n// that Typescript can protect us against new events being added and auditing of those\n// events not being considered. This might be a little ugly, but provides a level of\n// Typescript build protection for the audit log feature, any new event also needs to be\n// added to this map, during which the developer will need to consider if it should be\n// a user facing event or not.\nexport const AuditedEventFriendlyName: Record<Event, string | undefined> = {\n // USER\n [Event.USER_CREATED]: `User \"{{ email }}\" created{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_UPDATED]: `User \"{{ email }}\" updated{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_DELETED]: `User \"{{ email }}\" deleted{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_PERMISSION_ADMIN_ASSIGNED]: `User \"{{ email }}\" admin role assigned`,\n [Event.USER_PERMISSION_ADMIN_REMOVED]: `User \"{{ email }}\" admin role removed`,\n [Event.USER_PERMISSION_BUILDER_ASSIGNED]: `User \"{{ email }}\" builder role assigned`,\n [Event.USER_PERMISSION_BUILDER_REMOVED]: `User \"{{ email }}\" builder role removed`,\n [Event.USER_INVITED]: `User \"{{ email }}\" invited`,\n [Event.USER_INVITED_ACCEPTED]: `User \"{{ email }}\" accepted invite`,\n [Event.USER_PASSWORD_UPDATED]: `User \"{{ email }}\" password updated`,\n [Event.USER_PASSWORD_RESET_REQUESTED]: `User \"{{ email }}\" password reset requested`,\n [Event.USER_PASSWORD_RESET]: `User \"{{ email }}\" password reset`,\n [Event.USER_GROUP_CREATED]: `User group \"{{ name }}\" created{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_UPDATED]: `User group \"{{ name }}\" updated{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_DELETED]: `User group \"{{ name }}\" deleted{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_USERS_ADDED]: `User group \"{{ name }}\" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_USERS_REMOVED]: `User group \"{{ name }}\" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}`,\n [Event.USER_GROUP_PERMISSIONS_EDITED]: `User group \"{{ name }}\" permissions edited`,\n [Event.USER_PASSWORD_FORCE_RESET]: undefined,\n [Event.USER_GROUP_ONBOARDING]: undefined,\n [Event.USER_ONBOARDING_COMPLETE]: undefined,\n [Event.USER_DATA_COLLABORATION]: undefined,\n\n // EMAIL\n [Event.EMAIL_SMTP_CREATED]: `Email configuration created`,\n [Event.EMAIL_SMTP_UPDATED]: `Email configuration updated`,\n\n // AI\n [Event.AI_CONFIG_CREATED]: `AI configuration created`,\n [Event.AI_CONFIG_UPDATED]: `AI configuration updated`,\n\n // AUTH\n [Event.AUTH_SSO_CREATED]: `SSO configuration created`,\n [Event.AUTH_SSO_UPDATED]: `SSO configuration updated`,\n [Event.AUTH_SSO_ACTIVATED]: `SSO configuration activated`,\n [Event.AUTH_SSO_DEACTIVATED]: `SSO configuration deactivated`,\n [Event.AUTH_LOGIN]: `User \"{{ email }}\" logged in`,\n [Event.AUTH_LOGOUT]: `User \"{{ email }}\" logged out`,\n\n // ORG\n [Event.ORG_NAME_UPDATED]: `Organisation name updated`,\n [Event.ORG_LOGO_UPDATED]: `Organisation logo updated`,\n [Event.ORG_PLATFORM_URL_UPDATED]: `Organisation platform URL updated`,\n\n // APP\n [Event.APP_CREATED]: `App \"{{ name }}\" created`,\n [Event.APP_UPDATED]: `App \"{{ name }}\" updated`,\n [Event.APP_DELETED]: `App \"{{ name }}\" deleted`,\n [Event.APP_DUPLICATED]: `App \"{{ name }}\" duplicated`,\n [Event.APP_PUBLISHED]: `App \"{{ name }}\" published`,\n [Event.APP_UNPUBLISHED]: `App \"{{ name }}\" unpublished`,\n [Event.APP_TEMPLATE_IMPORTED]: `App \"{{ name }}\" template imported`,\n [Event.APP_FILE_IMPORTED]: `App \"{{ name }}\" file imported`,\n [Event.APP_VERSION_UPDATED]: `App \"{{ name }}\" version updated`,\n [Event.APP_VERSION_REVERTED]: `App \"{{ name }}\" version reverted`,\n [Event.APP_REVERTED]: `App \"{{ name }}\" reverted`,\n [Event.APP_EXPORTED]: `App \"{{ name }}\" exported`,\n [Event.APP_BACKUP_RESTORED]: `App backup \"{{ name }}\" restored`,\n [Event.APP_BACKUP_TRIGGERED]: `App backup \"{{ name }}\" triggered`,\n\n // DATASOURCE\n [Event.DATASOURCE_CREATED]: `Datasource created`,\n [Event.DATASOURCE_UPDATED]: `Datasource updated`,\n [Event.DATASOURCE_DELETED]: `Datasource deleted`,\n\n // QUERY\n [Event.QUERY_CREATED]: `Query created`,\n [Event.QUERY_UPDATED]: `Query updated`,\n [Event.QUERY_DELETED]: `Query deleted`,\n [Event.QUERY_IMPORT]: `Query import`,\n [Event.QUERIES_RUN]: undefined,\n [Event.QUERY_PREVIEWED]: undefined,\n\n // TABLE\n [Event.TABLE_CREATED]: `Table \"{{ name }}\" created`,\n [Event.TABLE_UPDATED]: `Table \"{{ name }}\" updated`,\n [Event.TABLE_DELETED]: `Table \"{{ name }}\" deleted`,\n [Event.TABLE_EXPORTED]: `Table \"{{ name }}\" exported`,\n [Event.TABLE_IMPORTED]: `Table \"{{ name }}\" imported`,\n [Event.TABLE_DATA_IMPORTED]: `Data imported to table`,\n\n // ROWS\n [Event.ROWS_CREATED]: `Rows created`,\n [Event.ROWS_IMPORTED]: `Rows imported`,\n\n // AUTOMATION\n [Event.AUTOMATION_CREATED]: `Automation \"{{ name }}\" created`,\n [Event.AUTOMATION_DELETED]: `Automation \"{{ name }}\" deleted`,\n [Event.AUTOMATION_STEP_CREATED]: `Automation \"{{ name }}\" step added`,\n [Event.AUTOMATION_STEP_DELETED]: `Automation \"{{ name }}\" step removed`,\n [Event.AUTOMATION_TESTED]: undefined,\n [Event.AUTOMATIONS_RUN]: undefined,\n [Event.AUTOMATION_TRIGGER_UPDATED]: undefined,\n\n // SCREEN\n [Event.SCREEN_CREATED]: `Screen \"{{ name }}\" created`,\n [Event.SCREEN_DELETED]: `Screen \"{{ name }}\" deleted`,\n\n // COMPONENT\n [Event.COMPONENT_CREATED]: `Component created`,\n [Event.COMPONENT_DELETED]: `Component deleted`,\n\n // ENVIRONMENT VARIABLE\n [Event.ENVIRONMENT_VARIABLE_CREATED]: `Environment variable created`,\n [Event.ENVIRONMENT_VARIABLE_DELETED]: `Environment variable deleted`,\n [Event.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED]: undefined,\n\n // PLUGIN\n [Event.PLUGIN_IMPORTED]: `Plugin imported`,\n [Event.PLUGIN_DELETED]: `Plugin deleted`,\n [Event.PLUGIN_INIT]: undefined,\n\n // ROLE - NOT AUDITED\n [Event.ROLE_CREATED]: undefined,\n [Event.ROLE_UPDATED]: undefined,\n [Event.ROLE_DELETED]: undefined,\n [Event.ROLE_ASSIGNED]: undefined,\n [Event.ROLE_UNASSIGNED]: undefined,\n\n // LICENSE - NOT AUDITED\n [Event.LICENSE_PLAN_CHANGED]: undefined,\n [Event.LICENSE_ACTIVATED]: undefined,\n [Event.LICENSE_PAYMENT_FAILED]: undefined,\n [Event.LICENSE_PAYMENT_RECOVERED]: undefined,\n [Event.LICENSE_CHECKOUT_OPENED]: undefined,\n [Event.LICENSE_CHECKOUT_SUCCESS]: undefined,\n [Event.LICENSE_PORTAL_OPENED]: undefined,\n\n // ACCOUNT - NOT AUDITED\n [Event.ACCOUNT_CREATED]: undefined,\n [Event.ACCOUNT_DELETED]: undefined,\n [Event.ACCOUNT_VERIFIED]: undefined,\n\n // BACKFILL - NOT AUDITED\n [Event.APP_BACKFILL_SUCCEEDED]: undefined,\n [Event.APP_BACKFILL_FAILED]: undefined,\n [Event.TENANT_BACKFILL_SUCCEEDED]: undefined,\n [Event.TENANT_BACKFILL_FAILED]: undefined,\n [Event.INSTALLATION_BACKFILL_SUCCEEDED]: undefined,\n [Event.INSTALLATION_BACKFILL_FAILED]: undefined,\n\n // LAYOUT - NOT AUDITED\n [Event.LAYOUT_CREATED]: undefined,\n [Event.LAYOUT_DELETED]: undefined,\n\n // VIEW - NOT AUDITED\n [Event.VIEW_CREATED]: undefined,\n [Event.VIEW_UPDATED]: undefined,\n [Event.VIEW_DELETED]: undefined,\n [Event.VIEW_EXPORTED]: undefined,\n [Event.VIEW_FILTER_CREATED]: undefined,\n [Event.VIEW_FILTER_UPDATED]: undefined,\n [Event.VIEW_FILTER_DELETED]: undefined,\n [Event.VIEW_CALCULATION_CREATED]: undefined,\n [Event.VIEW_CALCULATION_UPDATED]: undefined,\n [Event.VIEW_CALCULATION_DELETED]: undefined,\n [Event.VIEW_JOIN_CREATED]: undefined,\n\n // SERVED - NOT AUDITED\n [Event.SERVED_BUILDER]: undefined,\n [Event.SERVED_APP]: undefined,\n [Event.SERVED_APP_PREVIEW]: undefined,\n\n // ANALYTICS - NOT AUDITED\n [Event.ANALYTICS_OPT_OUT]: undefined,\n [Event.ANALYTICS_OPT_IN]: undefined,\n\n // INSTALLATION - NOT AUDITED\n [Event.INSTALLATION_VERSION_CHECKED]: undefined,\n [Event.INSTALLATION_VERSION_UPGRADED]: undefined,\n [Event.INSTALLATION_VERSION_DOWNGRADED]: undefined,\n [Event.INSTALLATION_FIRST_STARTUP]: undefined,\n\n // AUDIT LOG - NOT AUDITED\n [Event.AUDIT_LOGS_FILTERED]: undefined,\n [Event.AUDIT_LOGS_DOWNLOADED]: undefined,\n\n // ROW ACTIONS - NOT AUDITED\n [Event.ROW_ACTION_CREATED]: undefined,\n}\n\n// properties added at the final stage of the event pipeline\nexport interface BaseEvent {\n version?: string\n service?: string\n environment?: string\n appId?: string\n installationId?: string\n tenantId?: string\n hosting?: Hosting\n // any props in the audited section will be removed before passing events\n // up out of system (purely for use with auditing)\n audited?: {\n [key: string]: any\n }\n}\n\nexport type TableExportFormat = \"json\" | \"csv\"\n\nexport type DocUpdateEvent = {\n id: string\n tenantId: string\n appId?: string\n}\n\nexport interface EventProcessor {\n processEvent(\n event: Event,\n identity: Identity,\n properties: any,\n timestamp?: string | number\n ): Promise<void>\n identify?(identity: Identity, timestamp?: string | number): Promise<void>\n identifyGroup?(group: Group, timestamp?: string | number): Promise<void>\n shutdown?(): void\n}\n", "import { Hosting } from \"..\"\n\n// GROUPS\n\nexport enum GroupType {\n TENANT = \"tenant\",\n INSTALLATION = \"installation\",\n}\n\nexport interface Group {\n id: string\n type: IdentityType\n environment: string\n hosting: Hosting\n}\n\nexport interface TenantGroup extends Group {\n // account level information is associated with the tenant group\n // as we don't have this at the user level\n profession?: string // only available in cloud\n companySize?: string // only available in cloud\n installationId: string\n}\n\nexport interface InstallationGroup extends Group {\n version: string\n}\n\n// IDENTITIES\n\nexport enum IdentityType {\n USER = \"user\",\n TENANT = \"tenant\",\n INSTALLATION = \"installation\",\n}\n\nexport interface HostInfo {\n ipAddress?: string\n userAgent?: string\n}\n\nexport interface Identity {\n id: string\n type: IdentityType\n hosting: Hosting\n environment: string\n installationId?: string\n tenantId?: string\n // usable - no unique format\n realTenantId?: string\n hostInfo?: HostInfo\n}\n\nexport interface UserIdentity extends Identity {\n verified: boolean\n accountHolder: boolean\n providerType?: string\n builder?: boolean\n admin?: boolean\n}\n", "export enum PlanType {\n FREE = \"free\",\n /** @deprecated */\n PRO = \"pro\",\n /** @deprecated */\n TEAM = \"team\",\n /** @deprecated */\n PREMIUM = \"premium\",\n PREMIUM_PLUS = \"premium_plus\",\n PREMIUM_PLUS_TRIAL = \"premium_plus_trial\",\n /** @deprecated */\n BUSINESS = \"business\",\n ENTERPRISE_BASIC = \"enterprise_basic\",\n ENTERPRISE_BASIC_TRIAL = \"enterprise_basic_trial\",\n ENTERPRISE = \"enterprise\",\n}\n\nexport enum PriceDuration {\n MONTHLY = \"monthly\",\n YEARLY = \"yearly\",\n}\n\nexport interface AvailablePlan {\n type: PlanType\n maxUsers: number\n prices: AvailablePrice[]\n}\n\nexport interface AvailablePrice {\n amount: number\n amountMonthly: number\n currency: string\n duration: PriceDuration\n priceId: string\n type?: string\n}\n\nexport enum PlanModel {\n PER_USER = \"perUser\",\n PER_CREATOR_PER_USER = \"per_creator_per_user\",\n}\n\nexport interface PurchasedPlan {\n type: PlanType\n model: PlanModel\n usesInvoicing: boolean\n price?: PurchasedPrice\n}\n\nexport interface PurchasedPrice extends AvailablePrice {\n /** @deprecated - now at the plan level via model */\n isPerUser: boolean\n}\n", "import { PlanType } from \".\"\n\nexport enum QuotaUsageType {\n STATIC = \"static\",\n MONTHLY = \"monthly\",\n}\n\nexport enum QuotaType {\n USAGE = \"usage\",\n CONSTANT = \"constant\",\n}\n\nexport enum StaticQuotaName {\n ROWS = \"rows\",\n APPS = \"apps\",\n USERS = \"users\",\n CREATORS = \"creators\",\n USER_GROUPS = \"userGroups\",\n PLUGINS = \"plugins\",\n AI_CUSTOM_CONFIGS = \"aiCustomConfigs\",\n}\n\nexport enum MonthlyQuotaName {\n QUERIES = \"queries\",\n AUTOMATIONS = \"automations\",\n BUDIBASE_AI_CREDITS = \"budibaseAICredits\",\n}\n\nexport enum ConstantQuotaName {\n AUTOMATION_LOG_RETENTION_DAYS = \"automationLogRetentionDays\",\n APP_BACKUPS_RETENTION_DAYS = \"appBackupRetentionDays\",\n}\n\nexport type MeteredQuotaName = StaticQuotaName | MonthlyQuotaName\nexport type QuotaName = StaticQuotaName | MonthlyQuotaName | ConstantQuotaName\n\nexport const isStaticQuota = (\n quotaType: QuotaType,\n usageType: QuotaUsageType,\n name: QuotaName\n): name is StaticQuotaName => {\n return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.STATIC\n}\n\nexport const isMonthlyQuota = (\n quotaType: QuotaType,\n usageType: QuotaUsageType,\n name: QuotaName\n): name is MonthlyQuotaName => {\n return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.MONTHLY\n}\n\nexport const isConstantQuota = (\n quotaType: QuotaType,\n name: QuotaName\n): name is ConstantQuotaName => {\n return quotaType === QuotaType.CONSTANT\n}\n\nexport type PlanQuotas = { [key in PlanType]: Quotas | undefined }\n\nexport type MonthlyQuotas = {\n [MonthlyQuotaName.QUERIES]: Quota\n [MonthlyQuotaName.AUTOMATIONS]: Quota\n [MonthlyQuotaName.BUDIBASE_AI_CREDITS]: Quota\n}\n\nexport type StaticQuotas = {\n [StaticQuotaName.ROWS]: Quota\n [StaticQuotaName.APPS]: Quota\n [StaticQuotaName.USERS]: Quota\n [StaticQuotaName.CREATORS]: Quota\n [StaticQuotaName.USER_GROUPS]: Quota\n [StaticQuotaName.PLUGINS]: Quota\n [StaticQuotaName.AI_CUSTOM_CONFIGS]: Quota\n}\n\nexport type ConstantQuotas = {\n [ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS]: Quota\n [ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS]: Quota\n}\n\nexport type Quotas = {\n [QuotaType.USAGE]: {\n [QuotaUsageType.MONTHLY]: MonthlyQuotas\n [QuotaUsageType.STATIC]: StaticQuotas\n }\n [QuotaType.CONSTANT]: ConstantQuotas\n}\n\nexport interface Quota {\n name: string\n value: number\n /**\n * Array of whole numbers (1-100) that dictate the percentage that this quota should trigger\n * at in relation to the corresponding usage inside budibase.\n *\n * Triggering results in a budibase installation sending a request to account-portal,\n * which can have subsequent effects such as sending emails to users.\n */\n triggers: number[]\n startDate?: number\n}\n", "import { PlanType } from \"./plan\"\n\nexport enum Feature {\n USER_GROUPS = \"userGroups\",\n APP_BACKUPS = \"appBackups\",\n ENVIRONMENT_VARIABLES = \"environmentVariables\",\n AUDIT_LOGS = \"auditLogs\",\n ENFORCEABLE_SSO = \"enforceableSSO\",\n BRANDING = \"branding\",\n SCIM = \"scim\",\n SYNC_AUTOMATIONS = \"syncAutomations\",\n TRIGGER_AUTOMATION_RUN = \"triggerAutomationRun\",\n APP_BUILDERS = \"appBuilders\",\n OFFLINE = \"offline\",\n EXPANDED_PUBLIC_API = \"expandedPublicApi\",\n // deprecated - no longer licensed\n VIEW_PERMISSIONS = \"viewPermissions\",\n VIEW_READONLY_COLUMNS = \"viewReadonlyColumns\",\n BUDIBASE_AI = \"budibaseAI\",\n AI_CUSTOM_CONFIGS = \"aiCustomConfigs\",\n}\n\nexport type PlanFeatures = { [key in PlanType]: Feature[] | undefined }\n", "import { Table, Row } from \"../documents\"\nimport { EnrichedQueryJson } from \"./search\"\n\nexport const PASSWORD_REPLACEMENT = \"--secret-value--\"\n\nexport enum Operation {\n CREATE = \"CREATE\",\n READ = \"READ\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n COUNT = \"COUNT\",\n BULK_CREATE = \"BULK_CREATE\",\n BULK_UPSERT = \"BULK_UPSERT\",\n CREATE_TABLE = \"CREATE_TABLE\",\n UPDATE_TABLE = \"UPDATE_TABLE\",\n DELETE_TABLE = \"DELETE_TABLE\",\n}\n\nexport const RowOperations = [\n Operation.CREATE,\n Operation.READ,\n Operation.UPDATE,\n Operation.DELETE,\n Operation.BULK_CREATE,\n Operation.BULK_UPSERT,\n]\n\nexport enum QueryType {\n SQL = \"sql\",\n JSON = \"json\",\n FIELDS = \"fields\",\n}\n\nexport enum DatasourceFieldType {\n STRING = \"string\",\n CODE = \"code\",\n LONGFORM = \"longForm\",\n BOOLEAN = \"boolean\",\n NUMBER = \"number\",\n PASSWORD = \"password\",\n LIST = \"list\",\n OBJECT = \"object\",\n JSON = \"json\",\n FILE = \"file\",\n FIELD_GROUP = \"fieldGroup\",\n SELECT = \"select\",\n}\n\nexport enum SourceName {\n POSTGRES = \"POSTGRES\",\n DYNAMODB = \"DYNAMODB\",\n MONGODB = \"MONGODB\",\n ELASTICSEARCH = \"ELASTICSEARCH\",\n COUCHDB = \"COUCHDB\",\n SQL_SERVER = \"SQL_SERVER\",\n S3 = \"S3\",\n AIRTABLE = \"AIRTABLE\",\n MYSQL = \"MYSQL\",\n ARANGODB = \"ARANGODB\",\n REST = \"REST\",\n ORACLE = \"ORACLE\",\n GOOGLE_SHEETS = \"GOOGLE_SHEETS\",\n FIRESTORE = \"FIRESTORE\",\n REDIS = \"REDIS\",\n SNOWFLAKE = \"SNOWFLAKE\",\n BUDIBASE = \"BUDIBASE\",\n}\n\nexport enum IncludeRelationship {\n INCLUDE = 1,\n EXCLUDE = 0,\n}\n\nexport enum FilterType {\n STRING = \"string\",\n FUZZY = \"fuzzy\",\n RANGE = \"range\",\n EQUAL = \"equal\",\n NOT_EQUAL = \"notEqual\",\n EMPTY = \"empty\",\n NOT_EMPTY = \"notEmpty\",\n ONE_OF = \"oneOf\",\n}\n\nexport enum DatasourceFeature {\n CONNECTION_CHECKING = \"connection\",\n FETCH_TABLE_NAMES = \"fetch_table_names\",\n EXPORT_SCHEMA = \"export_schema\",\n}\n\nexport interface StepDefinition {\n key: string\n template: string\n}\n\nexport interface QueryDefinition {\n type: QueryType\n displayName?: string\n readable?: boolean\n customisable?: boolean\n fields?: object\n urlDisplay?: boolean\n steps?: Array<StepDefinition>\n}\n\nexport interface ExtraQueryConfig {\n [key: string]: {\n displayName: string\n type: string\n required: boolean\n data?: object\n }\n}\n\ninterface DatasourceBasicFieldConfig {\n type: DatasourceFieldType\n display?: string\n required?: boolean\n default?: any\n deprecated?: boolean\n hidden?: string\n placeholder?: string\n}\n\ninterface DatasourceSelectFieldConfig extends DatasourceBasicFieldConfig {\n type: DatasourceFieldType.SELECT\n config: { options: string[] }\n}\n\ninterface DatasourceFieldGroupConfig extends DatasourceBasicFieldConfig {\n type: DatasourceFieldType.FIELD_GROUP\n config: {\n openByDefault?: boolean\n nestedFields?: boolean\n }\n}\n\ntype DatasourceFieldConfig =\n | DatasourceSelectFieldConfig\n | DatasourceFieldGroupConfig\n | DatasourceBasicFieldConfig\n\nexport interface DatasourceConfig {\n [key: string]: DatasourceFieldConfig & {\n fields?: DatasourceConfig\n }\n}\n\nexport interface Integration {\n docs: string\n plus?: boolean\n isSQL?: boolean\n auth?: { type: string }\n features?: Partial<Record<DatasourceFeature, boolean>>\n relationships?: boolean\n description: string\n friendlyName: string\n type?: string\n iconUrl?: string\n datasource: DatasourceConfig\n query: {\n [key: string]: QueryDefinition\n }\n extra?: ExtraQueryConfig\n}\n\nexport type ConnectionInfo = {\n connected: boolean\n error?: string\n}\n\nexport interface IntegrationBase {\n create?(query: any): Promise<any[] | any>\n read?(query: any): Promise<any[] | any>\n update?(query: any): Promise<any[] | any>\n delete?(query: any): Promise<any[] | any>\n testConnection?(): Promise<ConnectionInfo>\n getExternalSchema?(): Promise<string>\n defineTypeCastingFromSchema?(schema: {\n [key: string]: {\n name: string\n type: string\n }\n }): void\n}\n\nexport interface Schema {\n tables: Record<string, Table>\n errors: Record<string, string>\n}\n\n// return these when an operation occurred but we got no response\nexport enum DSPlusOperation {\n CREATE = \"create\",\n READ = \"read\",\n UPDATE = \"update\",\n DELETE = \"delete\",\n}\n\nexport type DatasourcePlusQueryResponse =\n | Row[]\n | Record<DSPlusOperation, boolean>[]\n | { total: number }[]\n | void\n\nexport interface DatasourcePlus extends IntegrationBase {\n // if the datasource supports the use of bindings directly (to protect against SQL injection)\n // this returns the format of the identifier\n getBindingIdentifier(): string\n getStringConcat(parts: string[]): string\n query(json: EnrichedQueryJson): Promise<DatasourcePlusQueryResponse>\n buildSchema(\n datasourceId: string,\n entities: Record<string, Table>\n ): Promise<Schema>\n getTableNames(): Promise<string[]>\n}\n", "import { Operation } from \"./datasources\"\nimport { Row, DocumentType, Table, Datasource } from \"../documents\"\nimport { SortOrder, SortType } from \"../api\"\nimport { Knex } from \"knex\"\nimport { Aggregation } from \"./row\"\n\nexport enum BasicOperator {\n EQUAL = \"equal\",\n NOT_EQUAL = \"notEqual\",\n EMPTY = \"empty\",\n NOT_EMPTY = \"notEmpty\",\n FUZZY = \"fuzzy\",\n STRING = \"string\",\n}\n\nexport enum ArrayOperator {\n CONTAINS = \"contains\",\n NOT_CONTAINS = \"notContains\",\n CONTAINS_ANY = \"containsAny\",\n ONE_OF = \"oneOf\",\n}\n\nexport enum RangeOperator {\n RANGE = \"range\",\n}\n\nexport enum LogicalOperator {\n AND = \"$and\",\n OR = \"$or\",\n}\n\nexport function isLogicalSearchOperator(\n value: string\n): value is LogicalOperator {\n return Object.values(LogicalOperator).includes(value as LogicalOperator)\n}\n\nexport function isBasicSearchOperator(value: string): value is BasicOperator {\n return Object.values(BasicOperator).includes(value as BasicOperator)\n}\n\nexport function isArraySearchOperator(value: string): value is ArrayOperator {\n return Object.values(ArrayOperator).includes(value as ArrayOperator)\n}\n\nexport function isRangeSearchOperator(value: string): value is RangeOperator {\n return Object.values(RangeOperator).includes(value as RangeOperator)\n}\n\nexport type SearchFilterOperator =\n | BasicOperator\n | ArrayOperator\n | RangeOperator\n | LogicalOperator\n\nexport enum InternalSearchFilterOperator {\n COMPLEX_ID_OPERATOR = \"_complexIdOperator\",\n}\n\ntype BasicFilter<T = any> = Record<string, T> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: never\n}\n\nexport type ArrayFilter = Record<string, any[]> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: {\n id: string[]\n values: string[]\n }\n}\n\ntype RangeFilter = Record<\n string,\n | {\n high: number | string\n low: number | string\n }\n | { high: number | string }\n | { low: number | string }\n> & {\n [InternalSearchFilterOperator.COMPLEX_ID_OPERATOR]?: never\n}\n\ntype LogicalFilter = { conditions: SearchFilters[] }\n\nexport type AnySearchFilter = BasicFilter | ArrayFilter | RangeFilter\n\nexport interface SearchFilters {\n allOr?: boolean\n // TODO: this is just around for now - we need a better way to do or/and\n // allows just fuzzy to be or - all the fuzzy/like parameters\n fuzzyOr?: boolean\n onEmptyFilter?: EmptyFilterOption\n [BasicOperator.STRING]?: BasicFilter<string>\n [BasicOperator.FUZZY]?: BasicFilter<string>\n [RangeOperator.RANGE]?: RangeFilter\n [BasicOperator.EQUAL]?: BasicFilter\n [BasicOperator.NOT_EQUAL]?: BasicFilter\n [BasicOperator.EMPTY]?: BasicFilter\n [BasicOperator.NOT_EMPTY]?: BasicFilter\n [ArrayOperator.ONE_OF]?: ArrayFilter\n [ArrayOperator.CONTAINS]?: ArrayFilter\n [ArrayOperator.NOT_CONTAINS]?: ArrayFilter\n [ArrayOperator.CONTAINS_ANY]?: ArrayFilter\n // specific to SQS/SQLite search on internal tables this can be used\n // to make sure the documents returned are always filtered down to a\n // specific document type (such as just rows)\n documentType?: DocumentType\n\n [LogicalOperator.AND]?: LogicalFilter\n [LogicalOperator.OR]?: LogicalFilter\n}\n\nexport type SearchFilterKey = keyof Omit<\n SearchFilters,\n \"allOr\" | \"onEmptyFilter\" | \"fuzzyOr\" | \"documentType\"\n>\n\nexport type SearchQueryFields = Omit<SearchFilters, \"allOr\" | \"onEmptyFilter\">\n\nexport interface SortJson {\n [key: string]: {\n direction: SortOrder\n type?: SortType\n }\n}\n\nexport interface PaginationJson {\n limit: number\n page?: string | number\n offset?: number\n}\n\nexport interface RenameColumn {\n old: string\n updated: string\n}\n\nexport interface RelationshipsJson {\n through?: string\n from?: string\n to?: string\n fromPrimary?: string\n toPrimary?: string\n tableName: string\n column: string\n}\n\n// TODO - this can be combined with the above type\nexport interface ManyToManyRelationshipJson {\n through: string\n from: string\n to: string\n fromPrimary: string\n toPrimary: string\n tableName: string\n column: string\n}\n\nexport interface QueryJson {\n endpoint: {\n datasourceId: string | Datasource\n entityId: string | Table\n operation: Operation\n schema?: string\n }\n resource?: {\n fields: string[]\n aggregations?: Aggregation[]\n }\n filters?: SearchFilters\n sort?: SortJson\n paginate?: PaginationJson\n body?: Row | Row[]\n meta?: {\n renamed?: RenameColumn\n oldTable?: Table\n // can specify something that columns could be prefixed with\n columnPrefix?: string\n }\n extra?: {\n idFilter?: SearchFilters\n }\n relationships?: RelationshipsJson[]\n tableAliases?: Record<string, string>\n}\n\nexport interface EnrichedQueryJson extends Omit<QueryJson, \"endpoint\"> {\n operation: Operation\n table: Table\n tables: Record<string, Table>\n datasource?: Datasource\n schema?: string\n}\n\nexport interface QueryOptions {\n disableReturning?: boolean\n disableBindings?: boolean\n}\n\nexport type SqlQueryBinding = Knex.Value[]\n\nexport interface SqlQuery {\n sql: string\n bindings?: SqlQueryBinding\n}\n\nexport enum EmptyFilterOption {\n RETURN_ALL = \"all\",\n RETURN_NONE = \"none\",\n}\n\nexport enum UILogicalOperator {\n ALL = \"all\",\n ANY = \"any\",\n}\n\nexport enum SqlClient {\n MS_SQL = \"mssql\",\n POSTGRES = \"pg\",\n MY_SQL = \"mysql2\",\n MARIADB = \"mariadb\",\n ORACLE = \"oracledb\",\n SQL_LITE = \"sqlite3\",\n}\n", "import { Context, Request } from \"koa\"\nimport {\n User,\n Role,\n UserRoles,\n Account,\n ConfigType,\n Row,\n Table,\n UserBindings,\n} from \"../documents\"\nimport { FeatureFlag, License } from \"../sdk\"\nimport { Files } from \"formidable\"\nimport { EventType } from \"../core\"\nimport { UserAgentContext } from \"koa-useragent\"\n\nexport enum LoginMethod {\n API_KEY = \"api_key\",\n COOKIE = \"cookie\",\n}\n\nexport interface ContextUser extends Omit<User, \"roles\"> {\n globalId?: string\n license?: License\n userId?: string\n roleId?: string | null\n role?: Role\n roles?: UserRoles\n csrfToken?: string\n featureFlags?: FeatureFlag[]\n accountPortalAccess?: boolean\n providerType?: ConfigType\n account?: Account\n}\n\n/**\n * Add support for koa-body in context.\n */\nexport interface BBRequest<RequestBody> extends Request {\n body: RequestBody\n files?: Files\n}\n\n/**\n * Basic context with no user.\n */\nexport interface Ctx<RequestBody = any, ResponseBody = any> extends Context {\n request: BBRequest<RequestBody>\n body: ResponseBody\n userAgent: UserAgentContext[\"userAgent\"]\n state: { nonce?: string }\n}\n\n/**\n * Authenticated context.\n */\nexport interface UserCtx<RequestBody = any, ResponseBody = any>\n extends Ctx<RequestBody, ResponseBody> {\n user: ContextUser\n state: { nonce?: string }\n roleId?: string\n eventEmitter?: ContextEmitter\n loginMethod?: LoginMethod\n}\n\n/**\n * @deprecated: Use UserCtx / Ctx appropriately\n * Authenticated context.\n */\nexport interface BBContext extends Ctx {\n user?: ContextUser\n}\n\nexport interface ContextEmitter {\n emitRow(values: {\n eventName: EventType.ROW_SAVE\n appId: string\n row: Row\n table: Table\n user: UserBindings\n }): void\n emitRow(values: {\n eventName: EventType.ROW_UPDATE\n appId: string\n row: Row\n table: Table\n oldRow: Row\n user: UserBindings\n }): void\n emitRow(values: {\n eventName: EventType.ROW_DELETE\n appId: string\n row: Row\n user: UserBindings\n }): void\n emitTable(\n eventName: EventType.TABLE_SAVE | EventType.TABLE_DELETE,\n appId: string,\n table?: Table\n ): void\n}\n", "import Redlock from \"redlock\"\n\nexport enum LockType {\n /**\n * If this lock is already held the attempted operation will not be performed.\n * No retries will take place and no error will be thrown.\n */\n TRY_ONCE = \"try_once\",\n TRY_TWICE = \"try_twice\",\n DEFAULT = \"default\",\n DELAY_500 = \"delay_500\",\n CUSTOM = \"custom\",\n AUTO_EXTEND = \"auto_extend\",\n}\n\nexport enum LockName {\n MIGRATIONS = \"migrations\",\n TRIGGER_QUOTA = \"trigger_quota\",\n SYNC_ACCOUNT_LICENSE = \"sync_account_license\",\n UPDATE_TENANTS_DOC = \"update_tenants_doc\",\n PERSIST_WRITETHROUGH = \"persist_writethrough\",\n QUOTA_USAGE_EVENT = \"quota_usage_event\",\n APP_MIGRATION = \"app_migrations\",\n PROCESS_USER_INVITE = \"process_user_invite\",\n}\n\nexport type LockOptions = {\n /**\n * The lock type determines which client to use\n */\n type: LockType\n /**\n * The custom options to use when creating the redlock instance\n * type must be set to custom for the options to be applied\n */\n customOptions?: Redlock.Options\n /**\n * The name for the lock\n */\n name: LockName\n /**\n * The individual resource to lock. This is useful for locking around very specific identifiers, e.g. a document that is prone to conflicts\n */\n resource?: string\n /**\n * This is a system-wide lock - don't use tenancy in lock key\n */\n systemLock?: boolean\n} & (\n | {\n /**\n * The ttl to auto-expire the lock if not unlocked manually\n */\n ttl: number\n type: Exclude<LockType, LockType.AUTO_EXTEND>\n }\n | {\n type: LockType.AUTO_EXTEND\n onExtend?: () => void\n }\n)\n", "import type Nano from \"@budibase/nano\"\nimport {\n AllDocsResponse,\n AnyDocument,\n Document,\n RowValue,\n SqlQueryBinding,\n ViewTemplateOpts,\n} from \"../\"\nimport { Writable } from \"stream\"\nimport type PouchDB from \"pouchdb-find\"\n\nexport enum SearchIndex {\n ROWS = \"rows\",\n USER = \"user\",\n}\n\nexport type PouchOptions = {\n inMemory?: boolean\n replication?: boolean\n onDisk?: boolean\n find?: boolean\n}\n\nexport enum SortOption {\n ASCENDING = \"asc\",\n DESCENDING = \"desc\",\n}\n\nexport type IndexAnalyzer = {\n name: string\n default?: string\n fields?: Record<string, string>\n}\n\nexport type DBView = {\n name?: string\n map: string\n reduce?: string\n meta?: ViewTemplateOpts\n groupBy?: string\n}\n\nexport interface DesignDocument extends Document {\n // we use this static reference for all design documents\n _id: \"_design/database\"\n language?: string\n // CouchDB views\n views?: {\n [viewName: string]: DBView\n }\n // Lucene indexes\n indexes?: {\n [indexName: string]: {\n index: string\n analyzer?: string | IndexAnalyzer\n }\n }\n}\n\nexport type CouchFindOptions = {\n selector: PouchDB.Find.Selector\n fields?: string[]\n sort?: {\n [key: string]: SortOption\n }[]\n limit?: number\n skip?: number\n bookmark?: string\n}\n\nexport type DatabaseOpts = {\n skip_setup?: boolean\n}\n\nexport type DatabasePutOpts = {\n force?: boolean\n}\n\nexport type DatabaseCreateIndexOpts = {\n index: {\n fields: string[]\n name?: string | undefined\n ddoc?: string | undefined\n type?: string | undefined\n }\n}\n\nexport type DatabaseDeleteIndexOpts = {\n name: string\n ddoc: string\n type?: string | undefined\n}\n\ntype DBPrimitiveKey = string | number | {}\nexport type DatabaseKey = DBPrimitiveKey | DBPrimitiveKey[]\n\nexport type DatabaseQueryOpts = {\n include_docs?: boolean\n startkey?: DatabaseKey\n endkey?: DatabaseKey\n limit?: number\n skip?: number\n descending?: boolean\n key?: DatabaseKey\n keys?: DatabaseKey[]\n group?: boolean\n startkey_docid?: string\n}\n\nexport const isDocument = (doc: any): doc is Document => {\n return typeof doc === \"object\" && doc._id && doc._rev\n}\n\nexport interface DatabaseDumpOpts {\n filter?: (doc: AnyDocument) => boolean\n batch_size?: number\n batch_limit?: number\n style?: \"main_only\" | \"all_docs\"\n timeout?: number\n doc_ids?: string[]\n query_params?: any\n view?: string\n selector?: any\n}\n\nexport interface Database {\n name: string\n\n exists(): Promise<boolean>\n exists(docId: string): Promise<boolean>\n /**\n * @deprecated the plan is to get everything using `tryGet` instead, then rename\n * `tryGet` to `get`.\n */\n get<T extends Document>(id?: string): Promise<T>\n tryGet<T extends Document>(id?: string): Promise<T | undefined>\n getMultiple<T extends Document>(\n ids: string[],\n opts?: { allowMissing?: boolean; excludeDocs?: boolean }\n ): Promise<T[]>\n remove(idOrDoc: Document): Promise<Nano.DocumentDestroyResponse>\n remove(idOrDoc: string, rev?: string): Promise<Nano.DocumentDestroyResponse>\n bulkRemove(\n documents: Document[],\n opts?: { silenceErrors?: boolean }\n ): Promise<void>\n put(\n document: AnyDocument,\n opts?: DatabasePutOpts\n ): Promise<Nano.DocumentInsertResponse>\n bulkDocs(documents: AnyDocument[]): Promise<Nano.DocumentBulkResponse[]>\n sql<T extends Document>(\n sql: string,\n parameters?: SqlQueryBinding\n ): Promise<T[]>\n sqlPurgeDocument(docIds: string[] | string): Promise<void>\n sqlDiskCleanup(): Promise<void>\n allDocs<T extends Document | RowValue>(\n params: DatabaseQueryOpts\n ): Promise<AllDocsResponse<T>>\n query<T extends Document>(\n viewName: string,\n params: DatabaseQueryOpts\n ): Promise<AllDocsResponse<T>>\n destroy(): Promise<Nano.OkResponse>\n compact(): Promise<Nano.OkResponse>\n // these are all PouchDB related functions that are rarely used - in future\n // should be replaced by better typed/non-pouch implemented methods\n dump(stream: Writable, opts?: DatabaseDumpOpts): Promise<any>\n load(...args: any[]): Promise<any>\n createIndex(...args: any[]): Promise<any>\n deleteIndex(...args: any[]): Promise<any>\n getIndexes(...args: any[]): Promise<any>\n}\n\nexport interface DBError extends Error {\n status: number\n statusCode: number\n reason: string\n name: string\n errid: string\n error: string\n description: string\n}\n", "export interface GetTenantIdOptions {\n allowNoTenant?: boolean\n excludeStrategies?: TenantResolutionStrategy[]\n includeStrategies?: TenantResolutionStrategy[]\n}\n\nexport enum TenantResolutionStrategy {\n USER = \"user\",\n HEADER = \"header\",\n QUERY = \"query\",\n SUBDOMAIN = \"subdomain\",\n PATH = \"path\",\n}\n", "export enum FeatureFlag {\n USE_ZOD_VALIDATOR = \"USE_ZOD_VALIDATOR\",\n\n // Account-portal\n DIRECT_LOGIN_TO_ACCOUNT_PORTAL = \"DIRECT_LOGIN_TO_ACCOUNT_PORTAL\",\n}\n\nexport const FeatureFlagDefaults = {\n [FeatureFlag.USE_ZOD_VALIDATOR]: false,\n\n // Account-portal\n [FeatureFlag.DIRECT_LOGIN_TO_ACCOUNT_PORTAL]: false,\n}\n\nexport type FeatureFlags = typeof FeatureFlagDefaults\n", "export enum AppEnvironment {\n PRODUCTION = \"production\",\n DEVELOPMENT = \"development\",\n}\n", "import { Event } from \"../events\"\n\nexport enum CommandWord {\n BACKUPS = \"backups\",\n HOSTING = \"hosting\",\n ANALYTICS = \"analytics\",\n HELP = \"help\",\n PLUGIN = \"plugins\",\n}\n\nexport enum InitType {\n QUICK = \"quick\",\n DIGITAL_OCEAN = \"do\",\n}\n\nexport const AnalyticsEvent = {\n OptOut: \"analytics:opt:out\",\n OptIn: \"analytics:opt:in\",\n SelfHostInit: \"hosting:init\",\n PluginInit: Event.PLUGIN_INIT,\n}\n", "// used in resource permissions - permissions can be at one of these levels\n// endpoints will set what type of permission they require (e.g. searching requires READ)\nexport enum PermissionLevel {\n READ = \"read\",\n WRITE = \"write\",\n EXECUTE = \"execute\",\n ADMIN = \"admin\",\n}\n\n// used within the role, specifies base permissions\nexport enum BuiltinPermissionID {\n PUBLIC = \"public\",\n READ_ONLY = \"read_only\",\n WRITE = \"write\",\n ADMIN = \"admin\",\n POWER = \"power\",\n}\n\n// these are the global types, that govern the underlying default behaviour\nexport enum PermissionType {\n APP = \"app\",\n TABLE = \"table\",\n USER = \"user\",\n AUTOMATION = \"automation\",\n WEBHOOK = \"webhook\",\n BUILDER = \"builder\",\n CREATOR = \"creator\",\n GLOBAL_BUILDER = \"globalBuilder\",\n QUERY = \"query\",\n VIEW = \"view\",\n LEGACY_VIEW = \"legacy_view\",\n}\n\nexport enum PermissionSource {\n EXPLICIT = \"EXPLICIT\",\n INHERITED = \"INHERITED\",\n BASE = \"BASE\",\n}\n\nexport interface Permission {\n type: PermissionType\n level: PermissionLevel\n}\n\nexport interface BuiltinPermission {\n _id: BuiltinPermissionID\n name: string\n permissions: Permission[]\n}\n\nexport type BuiltinPermissions = {\n [key in keyof typeof BuiltinPermissionID]: {\n _id: (typeof BuiltinPermissionID)[key]\n name: string\n permissions: Permission[]\n }\n}\n", "import { SortOrder, SortType } from \"../api\"\nimport { SearchFilters } from \"./search\"\nimport { CalculationType, Row } from \"../documents\"\nimport { WithRequired } from \"../shared\"\n\nexport interface BaseAggregation {\n name: string\n}\n\nexport interface NumericAggregation extends BaseAggregation {\n calculationType:\n | CalculationType.AVG\n | CalculationType.MAX\n | CalculationType.MIN\n | CalculationType.SUM\n field: string\n}\n\nexport interface CountAggregation extends BaseAggregation {\n calculationType: CalculationType.COUNT\n field: string\n}\n\nexport interface CountDistinctAggregation extends CountAggregation {\n distinct: true\n}\n\nexport type Aggregation =\n | NumericAggregation\n | CountAggregation\n | CountDistinctAggregation\n\nexport interface SearchParams {\n tableId?: string\n viewId?: string\n query?: SearchFilters\n paginate?: boolean\n bookmark?: string | number\n limit?: number\n sort?: string\n sortOrder?: SortOrder\n sortType?: SortType\n version?: string\n disableEscaping?: boolean\n fields?: string[]\n indexer?: () => Promise<any>\n rows?: Row[]\n countRows?: boolean\n}\n\n// when searching for rows we want a more extensive search type that requires certain properties\nexport interface RowSearchParams\n extends WithRequired<SearchParams, \"tableId\" | \"query\"> {}\n\nexport interface SearchResponse<T> {\n rows: T[]\n hasNextPage?: boolean\n bookmark?: string | number\n totalRows?: number\n}\n\nexport enum RowExportFormat {\n CSV = \"csv\",\n JSON = \"json\",\n JSON_WITH_SCHEMA = \"jsonWithSchema\",\n}\n", "import { Feature, Hosting, License, PlanType, Quotas } from \"../../sdk\"\nimport { DeepPartial } from \"../../shared\"\nimport { QuotaUsage } from \"../global\"\n\nexport interface CreateAccount {\n email: string\n tenantId: string\n hosting: Hosting\n authType: AuthType\n accountName: string\n // optional fields - for sso based sign ups\n registrationStep?: string\n name?: string\n size?: string\n profession?: string\n}\n\nexport interface CreatePassswordAccount extends CreateAccount {\n password: string\n}\n\nexport const isCreatePasswordAccount = (\n account: CreateAccount\n): account is CreatePassswordAccount => account.authType === AuthType.PASSWORD\n\nexport interface LicenseOverrides {\n features?: Feature[]\n quotas?: DeepPartial<Quotas>\n}\n\nexport interface Account extends CreateAccount {\n // generated\n accountId: string\n createdAt: number\n // registration\n verified: boolean\n verificationSent: boolean\n // licensing\n planType?: PlanType\n license?: License\n installId?: string\n installTenantId?: string\n installVersion?: string\n stripeCustomerId?: string\n licenseKey?: string\n licenseKeyActivatedAt?: number\n licenseRequestedAt?: number\n licenseOverrides?: LicenseOverrides\n provider?: AccountSSOProvider\n providerType?: AccountSSOProviderType\n quotaUsage?: QuotaUsage\n offlineLicenseToken?: string\n tenantName?: string\n}\n\nexport interface PasswordAccount extends Account {\n password: string\n}\n\nexport const isPasswordAccount = (\n account: Account\n): account is PasswordAccount =>\n account.authType === AuthType.PASSWORD && account.hosting === Hosting.SELF\n\nexport interface CloudAccount extends Account {\n password?: string\n budibaseUserId: string\n}\n\nexport const isCloudAccount = (account: Account): account is CloudAccount =>\n account.hosting === Hosting.CLOUD\n\nexport const isSelfHostAccount = (account: Account) =>\n account.hosting === Hosting.SELF\n\nexport const isSSOAccount = (account: Account): account is SSOAccount =>\n account.authType === AuthType.SSO\n\nexport enum AccountSSOProviderType {\n GOOGLE = \"google\",\n MICROSOFT = \"microsoft\",\n}\n\nexport enum AccountSSOProvider {\n GOOGLE = \"google\",\n MICROSOFT = \"microsoft\",\n}\n\nconst verifiableSSOProviders: AccountSSOProvider[] = [\n AccountSSOProvider.MICROSOFT,\n]\nexport function isVerifiableSSOProvider(provider: AccountSSOProvider): boolean {\n return verifiableSSOProviders.includes(provider)\n}\n\nexport interface AccountSSO {\n ssoId?: string\n provider: AccountSSOProvider\n providerType: AccountSSOProviderType\n oauth2?: OAuthTokens\n}\n\nexport type SSOAccount = (Account | CloudAccount) & AccountSSO\n\nexport enum AuthType {\n SSO = \"sso\",\n PASSWORD = \"password\",\n}\n\nexport interface OAuthTokens {\n accessToken: string\n refreshToken: string\n}\n", "import { Document } from \"../../document\"\nimport { User } from \"../../global\"\nimport { ReadStream } from \"fs\"\nimport { Row } from \"../row\"\nimport { Table } from \"../table\"\nimport { AutomationStep, AutomationTrigger } from \"./schema\"\nimport { ContextEmitter } from \"../../../sdk\"\n\nexport enum AutomationIOType {\n OBJECT = \"object\",\n STRING = \"string\",\n BOOLEAN = \"boolean\",\n NUMBER = \"number\",\n ARRAY = \"array\",\n JSON = \"json\",\n DATE = \"date\",\n ATTACHMENT = \"attachment\",\n}\n\nexport enum AutomationCustomIOType {\n TABLE = \"table\",\n ROW = \"row\",\n ROWS = \"rows\",\n WIDE = \"wide\",\n QUERY = \"query\",\n QUERY_PARAMS = \"queryParams\",\n QUERY_LIMIT = \"queryLimit\",\n LOOP_OPTION = \"loopOption\",\n ITEM = \"item\",\n CODE = \"code\",\n FILTERS = \"filters\",\n COLUMN = \"column\",\n TRIGGER_SCHEMA = \"triggerSchema\",\n CRON = \"cron\",\n WEBHOOK_URL = \"webhookUrl\",\n AUTOMATION = \"automation\",\n AUTOMATION_FIELDS = \"automationFields\",\n MULTI_ATTACHMENTS = \"multi_attachments\",\n TRIGGER_FILTER = \"trigger_filter\",\n}\n\nexport enum AutomationTriggerStepId {\n ROW_SAVED = \"ROW_SAVED\",\n ROW_UPDATED = \"ROW_UPDATED\",\n ROW_DELETED = \"ROW_DELETED\",\n WEBHOOK = \"WEBHOOK\",\n APP = \"APP\",\n CRON = \"CRON\",\n ROW_ACTION = \"ROW_ACTION\",\n}\n\nexport enum AutomationStepType {\n LOGIC = \"LOGIC\",\n ACTION = \"ACTION\",\n TRIGGER = \"TRIGGER\",\n}\n\nexport enum AutomationActionStepId {\n SEND_EMAIL_SMTP = \"SEND_EMAIL_SMTP\",\n CREATE_ROW = \"CREATE_ROW\",\n UPDATE_ROW = \"UPDATE_ROW\",\n DELETE_ROW = \"DELETE_ROW\",\n EXECUTE_BASH = \"EXECUTE_BASH\",\n OUTGOING_WEBHOOK = \"OUTGOING_WEBHOOK\",\n EXECUTE_SCRIPT = \"EXECUTE_SCRIPT\",\n EXECUTE_QUERY = \"EXECUTE_QUERY\",\n SERVER_LOG = \"SERVER_LOG\",\n DELAY = \"DELAY\",\n FILTER = \"FILTER\",\n QUERY_ROWS = \"QUERY_ROWS\",\n LOOP = \"LOOP\",\n COLLECT = \"COLLECT\",\n OPENAI = \"OPENAI\",\n TRIGGER_AUTOMATION_RUN = \"TRIGGER_AUTOMATION_RUN\",\n BRANCH = \"BRANCH\",\n // these used to be lowercase step IDs, maintain for backwards compat\n discord = \"discord\",\n slack = \"slack\",\n zapier = \"zapier\",\n integromat = \"integromat\",\n n8n = \"n8n\",\n}\n\nexport interface EmailInvite {\n startTime: Date\n endTime: Date\n summary: string\n location?: string\n url?: string\n}\n\nexport interface EmailAttachment {\n url: string\n filename: string\n}\n\nexport interface SendEmailOpts {\n to?: string\n // workspaceId If finer grain controls being used then this will lookup config for workspace.\n workspaceId?: string\n // user If sending to an existing user the object can be provided, this is used in the context.\n user: User\n // from If sending from an address that is not what is configured in the SMTP config.\n from?: string\n // contents If sending a custom email then can supply contents which will be added to it.\n contents?: string\n // subject A custom subject can be specified if the config one is not desired.\n subject: string\n // info Pass in a structure of information to be stored alongside the invitation.\n info?: any\n cc?: boolean\n bcc?: boolean\n automation?: boolean\n invite?: EmailInvite\n attachments?: EmailAttachment[]\n}\n\nexport const AutomationStepIdArray = [\n ...Object.values(AutomationActionStepId),\n ...Object.values(AutomationTriggerStepId),\n]\n\nexport interface Automation extends Document {\n definition: {\n steps: AutomationStep[]\n trigger: AutomationTrigger\n // stepNames is used to lookup step names from their correspnding step ID.\n stepNames?: Record<string, string>\n }\n screenId?: string\n uiTree?: any\n appId: string\n live?: boolean\n name: string\n internal?: boolean\n type?: string\n disabled?: boolean\n testData?: {\n row?: Row\n meta: {\n [key: string]: unknown\n }\n id: string\n revision: string\n oldRow?: Row\n }\n}\n\ninterface BaseIOStructure {\n type?: AutomationIOType\n subtype?: AutomationIOType\n customType?: AutomationCustomIOType\n title?: string\n description?: string\n dependsOn?: string\n enum?: string[]\n pretty?: string[]\n properties?: {\n [key: string]: BaseIOStructure\n }\n required?: string[]\n readonly?: true\n}\n\nexport interface InputOutputBlock {\n properties: {\n [key: string]: BaseIOStructure\n }\n required?: string[]\n}\n\nexport enum AutomationFeature {\n LOOPING = \"LOOPING\",\n}\n\nexport enum AutomationStepStatus {\n NO_ITERATIONS = \"no_iterations\",\n MAX_ITERATIONS = \"max_iterations_reached\",\n}\n\nexport enum AutomationStatus {\n SUCCESS = \"success\",\n ERROR = \"error\",\n STOPPED = \"stopped\",\n STOPPED_ERROR = \"stopped_error\",\n NO_CONDITION_MET = \"No branch condition met\",\n}\n\nexport enum AutomationStoppedReason {\n TRIGGER_FILTER_NOT_MET = \"Automation did not run. Filter conditions in trigger were not met.\",\n}\n\nexport interface AutomationResults {\n automationId?: string\n status?: AutomationStatus\n trigger?: AutomationTrigger\n steps: {\n stepId: AutomationTriggerStepId | AutomationActionStepId\n inputs: {\n [key: string]: any\n }\n outputs: {\n [key: string]: any\n }\n }[]\n}\n\nexport interface DidNotTriggerResponse {\n outputs: {\n success: false\n status: AutomationStatus.STOPPED\n }\n message: AutomationStoppedReason.TRIGGER_FILTER_NOT_MET\n}\n\nexport interface AutomationLog extends AutomationResults, Document {\n automationName: string\n _rev?: string\n}\n\nexport interface AutomationLogPage {\n data: AutomationLog[]\n hasNextPage: boolean\n nextPage?: string\n}\n\nexport interface AutomationStepInputBase {\n context: Record<string, any>\n emitter: ContextEmitter\n appId: string\n apiKey?: string\n}\n\nexport type ActionImplementation<TInputs, TOutputs> = (\n params: {\n inputs: TInputs\n } & AutomationStepInputBase\n) => Promise<TOutputs>\nexport interface AutomationMetadata extends Document {\n errorCount?: number\n automationChainCount?: number\n}\n\nexport type AutomationAttachment = {\n url: string\n filename: string\n}\n\nexport type AutomationAttachmentContent = {\n filename: string\n content: ReadStream | NodeJS.ReadableStream\n}\n\nexport type BucketedContent = AutomationAttachmentContent & {\n bucket: string\n path: string\n}\n\nexport enum AutomationEventType {\n ROW_SAVE = \"row:save\",\n ROW_UPDATE = \"row:update\",\n ROW_DELETE = \"row:delete\",\n APP_TRIGGER = \"app:trigger\",\n CRON_TRIGGER = \"cron:trigger\",\n WEBHOOK_TRIGGER = \"web:trigger\",\n ROW_ACTION = \"row:action\",\n}\n\nexport type UpdatedRowEventEmitter = {\n row: Row\n oldRow: Row\n table: Table\n appId: string\n user: User\n}\n\nexport enum LoopStepType {\n ARRAY = \"Array\",\n STRING = \"String\",\n}\n", "import { SortOrder } from \"../../../api\"\nimport {\n SearchFilters,\n EmptyFilterOption,\n BasicOperator,\n LogicalOperator,\n} from \"../../../sdk\"\nimport { HttpMethod } from \"../query\"\nimport { Row } from \"../row\"\nimport { LoopStepType, EmailAttachment, AutomationResults } from \"./automation\"\nimport { AutomationStep, AutomationStepOutputs } from \"./schema\"\n\nexport type BaseAutomationOutputs = {\n success?: boolean\n response?: {\n [key: string]: any\n message?: string\n }\n}\nexport type ExternalAppStepOutputs = {\n httpStatus?: number\n response: string\n success: boolean\n}\n\nexport type BashStepInputs = {\n code: string\n}\n\nexport type BashStepOutputs = BaseAutomationOutputs & {\n stdout?: string\n}\n\nexport type CollectStepInputs = {\n collection: string\n}\n\nexport type CollectStepOutputs = BaseAutomationOutputs & {\n value?: any\n}\n\nexport type CreateRowStepInputs = {\n row: Row\n}\n\nexport type CreateRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n id?: string\n revision?: string\n}\n\nexport type DelayStepInputs = {\n time: number\n}\n\nexport type DelayStepOutputs = BaseAutomationOutputs\n\nexport type DeleteRowStepInputs = {\n tableId: string\n id: string\n revision?: string\n}\n\nexport type DeleteRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n}\n\nexport type DiscordStepInputs = {\n url: string\n username?: string\n avatar_url?: string\n content: string\n}\n\nexport type ExecuteQueryStepInputs = {\n query: {\n queryId: string\n }\n}\n\nexport type ExecuteQueryStepOutputs = BaseAutomationOutputs & {\n info?: any\n}\n\nexport type ExecuteScriptStepInputs = {\n code: string\n}\n\nexport type ExecuteScriptStepOutputs = BaseAutomationOutputs & {\n value?: string\n}\n\nexport type FilterStepInputs = {\n field: any\n condition: string\n value: any\n}\n\nexport type FilterStepOutputs = BaseAutomationOutputs & {\n result: boolean\n refValue?: any\n comparisonValue?: any\n}\n\nexport type LoopStepInputs = {\n option: LoopStepType\n binding: any\n iterations?: number\n failure?: string\n}\n\nexport type LoopStepOutputs = {\n items: AutomationStepOutputs[]\n success: boolean\n iterations: number\n}\n\nexport type BranchStepInputs = {\n branches: Branch[]\n children?: Record<string, AutomationStep[]>\n}\n\nexport type Branch = {\n id: any\n name: string\n condition: BranchSearchFilters\n}\n\nexport type BranchSearchFilters = Pick<\n SearchFilters,\n | BasicOperator.EQUAL\n | BasicOperator.NOT_EQUAL\n | LogicalOperator.AND\n | LogicalOperator.OR\n>\n\nexport type MakeIntegrationInputs = {\n url: string\n body: any\n}\n\nexport type n8nStepInputs = {\n url: string\n method?: HttpMethod\n authorization: string\n body: any\n}\n\nexport type OpenAIStepInputs = {\n prompt: string\n model: Model\n}\n\nexport enum Model {\n GPT_35_TURBO = \"gpt-3.5-turbo\",\n // will only work with api keys that have access to the GPT4 API\n GPT_4 = \"gpt-4\",\n GPT_4O = \"gpt-4o\",\n GPT_4O_MINI = \"gpt-4o-mini\",\n}\n\nexport type OpenAIStepOutputs = Omit<BaseAutomationOutputs, \"response\"> & {\n response?: string | null\n}\n\nexport type QueryRowsStepInputs = {\n tableId: string\n filters?: SearchFilters\n \"filters-def\"?: any\n sortColumn?: string\n sortOrder?: SortOrder\n limit?: number\n onEmptyFilter?: EmptyFilterOption\n}\n\nexport type QueryRowsStepOutputs = BaseAutomationOutputs & {\n rows?: Row[]\n}\n\nexport type SmtpEmailStepInputs = {\n to: string\n from: string\n subject: string\n contents: string\n cc: string\n bcc: string\n addInvite?: boolean\n startTime: Date\n endTime: Date\n summary: string\n location?: string\n url?: string\n attachments?: EmailAttachment[]\n}\n\nexport type SmtpEmailStepOutputs = BaseAutomationOutputs\nexport type ServerLogStepInputs = {\n text: string\n}\n\nexport type ServerLogStepOutputs = BaseAutomationOutputs & {\n message: string\n}\nexport type SlackStepInputs = {\n url: string\n text: string\n}\n\nexport type TriggerAutomationStepInputs = {\n automation: {\n automationId: string\n }\n timeout: number\n}\n\nexport type TriggerAutomationStepOutputs = BaseAutomationOutputs & {\n value?: AutomationResults[\"steps\"]\n}\n\nexport type UpdateRowStepInputs = {\n meta: Record<string, any>\n row: Row\n rowId: string\n}\n\nexport type UpdateRowStepOutputs = BaseAutomationOutputs & {\n row?: Row\n id?: string\n revision?: string\n}\n\nexport type ZapierStepInputs = {\n url: string\n body: any\n}\n\nexport type ZapierStepOutputs = Omit<ExternalAppStepOutputs, \"response\"> & {\n response: string\n}\n\nexport enum RequestType {\n POST = \"POST\",\n GET = \"GET\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n PATCH = \"PATCH\",\n}\n\nexport type OutgoingWebhookStepInputs = {\n requestMethod: RequestType\n url: string\n requestBody: string\n headers: string | Record<string, string>\n}\n\nexport type AppActionTriggerInputs = {\n fields: object\n}\n\nexport type AppActionTriggerOutputs = {\n fields: object\n}\n\nexport type CronTriggerInputs = {\n cron: string\n}\n\nexport type CronTriggerOutputs = {\n timestamp: number\n}\n\nexport type RowDeletedTriggerInputs = {\n tableId: string\n}\n\nexport type RowDeletedTriggerOutputs = {\n row: Row\n}\n\nexport type RowCreatedTriggerInputs = {\n tableId: string\n filters?: SearchFilters\n}\n\nexport type RowCreatedTriggerOutputs = {\n row: Row\n id: string\n revision: string\n}\n\nexport type RowUpdatedTriggerInputs = {\n tableId: string\n filters?: SearchFilters\n}\n\nexport type RowUpdatedTriggerOutputs = {\n row: Row\n id: string\n revision?: string\n}\n\nexport type WebhookTriggerInputs = {\n schemaUrl: string\n triggerUrl: string\n}\n\nexport type WebhookTriggerOutputs = {\n fields: Record<string, any>\n}\n", "import { Document } from \"../document\"\nimport { SourceName } from \"../../sdk\"\nimport { Table } from \"./table\"\n\nexport interface Datasource extends Document {\n type: string\n name?: string\n source: SourceName\n // this is a googlesheets specific property which\n // can be found in the GSheets schema - pertains to SSO creds\n auth?: { type: string }\n // the config is defined by the schema\n config?: Record<string, any>\n plus?: boolean\n isSQL?: boolean\n entities?: Record<string, Table>\n}\n\nexport enum RestAuthType {\n BASIC = \"basic\",\n BEARER = \"bearer\",\n}\n\nexport interface RestBasicAuthConfig {\n username: string\n password: string\n}\n\nexport interface RestBearerAuthConfig {\n token: string\n}\n\nexport interface RestAuthConfig {\n _id: string\n name: string\n type: RestAuthType\n config: RestBasicAuthConfig | RestBearerAuthConfig\n}\n\nexport interface DynamicVariable {\n name: string\n queryId: string\n value: string\n}\n\nexport interface RestConfig {\n url: string\n rejectUnauthorized?: boolean\n downloadImages?: boolean\n defaultHeaders?: {\n [key: string]: any\n }\n legacyHttpParser?: boolean\n authConfigs?: RestAuthConfig[]\n staticVariables?: {\n [key: string]: string\n }\n dynamicVariables?: DynamicVariable[]\n}\n", "import { Document } from \"../document\"\nimport { Row } from \"./row\"\n\nexport interface QuerySchema {\n name?: string\n type: string\n subtype?: string\n}\n\nexport interface Query extends Document {\n datasourceId: string\n name: string\n parameters: QueryParameter[]\n fields: RestQueryFields | any\n transformer: string | null\n schema: Record<string, QuerySchema | string>\n nestedSchemaFields?: Record<string, Record<string, QuerySchema | string>>\n readable: boolean\n queryVerb: string\n // flag to state whether the default bindings are empty strings (old behaviour) or null\n nullDefaultSupport?: boolean\n}\n\nexport interface QueryPreview extends Omit<Query, \"_id\"> {\n queryId?: string\n}\n\nexport interface QueryParameter {\n name: string\n default: string\n}\n\nexport interface QueryResponse {\n rows: Row[]\n keys: string[]\n info: any\n extra: any\n pagination: any\n}\n\nexport enum BodyType {\n NONE = \"none\",\n FORM_DATA = \"form\",\n XML = \"xml\",\n ENCODED = \"encoded\",\n JSON = \"json\",\n TEXT = \"text\",\n}\n\nexport interface RestQueryFields {\n path?: string\n queryString?: string\n headers?: { [key: string]: any }\n disabledHeaders?: { [key: string]: any }\n requestBody?: any\n bodyType?: BodyType\n method?: string\n authConfigId?: string\n pagination?: PaginationConfig\n paginationValues?: PaginationValues\n}\n\nexport interface PaginationConfig {\n type: string\n location: string\n pageParam: string\n sizeParam?: string\n responseParam?: string\n}\n\nexport interface PaginationValues {\n page?: string | number\n limit?: number\n}\n\nexport enum HttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PATCH = \"PATCH\",\n PUT = \"PUT\",\n HEAD = \"HEAD\",\n DELETE = \"DELETE\",\n}\n", "import { Document } from \"../../document\"\nimport { View, ViewV2 } from \"../view\"\nimport { RenameColumn } from \"../../../sdk\"\nimport { TableSchema } from \"./schema\"\n\nexport const INTERNAL_TABLE_SOURCE_ID = \"bb_internal\"\n\nexport enum TableSourceType {\n EXTERNAL = \"external\",\n INTERNAL = \"internal\",\n}\n\nexport interface Table extends Document {\n type: \"table\"\n sourceType: TableSourceType\n views?: { [key: string]: View | ViewV2 }\n name: string\n originalName?: string\n sourceId: string\n primary?: string[]\n schema: TableSchema\n primaryDisplay?: string\n relatedFormula?: string[]\n constrained?: string[]\n sql?: boolean\n indexes?: { [key: string]: any }\n created?: boolean\n rowHeight?: number\n}\n\nexport interface TableRequest extends Table {\n _rename?: RenameColumn\n created?: boolean\n}\n", "import { Document } from \"../document\"\n\nexport enum FieldType {\n /**\n * a primitive type, stores a string, called Text within Budibase. This is one of the default\n * types of Budibase, if an external type is not fully understood, we will treat it as text.\n */\n STRING = \"string\",\n /**\n * similar to string type, called Long Form Text within Budibase. This is mainly a frontend\n * orientated type which enables a larger text input area. This can also be used\n * in conjunction with the 'useRichText' option to support a markdown editor/viewer.\n */\n LONGFORM = \"longform\",\n /**\n * similar to string type, called Options within Budibase. This works very similarly to\n * the string type within the backend, but is validated to a list of options. This will\n * display a <select> input within the builder/client.\n */\n OPTIONS = \"options\",\n /**\n * a primitive type, stores a number, as a floating point, called Number within Budibase.\n * this type will always represent numbers as reals/floating point - there is no integer only\n * type within Budibase.\n */\n NUMBER = \"number\",\n /**\n * a primitive type, stores a boolean, called Boolean within Budibase. This is often represented\n * as a toggle or checkbox within forms/grids.\n */\n BOOLEAN = \"boolean\",\n /**\n * a JSON type, this type is always an array of strings, called Multi-select within Budibase.\n * This type can be compared to the options type, as it functions similarly, but allows picking\n * multiple options rather than a single option.\n */\n ARRAY = \"array\",\n /**\n * a string type, this is always a string when input/returned from the API, called Date/Time within\n * Budibase. We utilise ISO date strings for representing dates, this type has a range of subtypes\n * to restrict it to date only, time only and ignore timezone capabilities.\n */\n DATETIME = \"datetime\",\n /**\n * a JSON type, an array of metadata about files held in object storage, called Attachment List within\n * Budibase. To utilise this type there is an API for uploading files to Budibase, which returns metadata\n * that can be stored against columns of this type. Currently this is not supported on external databases.\n */\n ATTACHMENTS = \"attachment\",\n /**\n * a JSON type, similar to the attachments type, called Attachment within Budibase. This type functions\n * much the same as the attachment list, but only holds a single attachment metadata as an object.\n * This simplifies the binding experience of using this column type.\n */\n ATTACHMENT_SINGLE = \"attachment_single\",\n /**\n * a complex type, called Relationships within Budibase. This is the most complex type of Budibase,\n * nothing should be stored against rows under link columns; this type simply represents the\n * relationship between tables as part of the table schema. When rows are input to the Budibase API\n * relationships to be made are represented as a list of row IDs to link. When rows are returned\n * from the Budibase API it will contain a list of row IDs and display column values of the related rows.\n */\n LINK = \"link\",\n /**\n * a complex type, called Formulas within Budibase. This type has two variants, static and dynamic, with\n * static only being supported against internal tables. Dynamic formulas calculate a provided HBS/JS binding\n * based on the row context and enrich it when rows are being returned from the API. Static bindings calculate\n * this when rows are being stored, so that the formula output can be searched upon within the DB.\n */\n FORMULA = \"formula\",\n /**\n * a complex type, called Auto Column within Budibase. This type has a few variants, with options such as a\n * date for created at/updated at, an auto ID column with auto-increments as rows are saved and a user\n * relationship type which stores the created by/updated by user details. These subtypes all depend on the\n * date, number of link types respectively. There is one case where these will be executed in the browser,\n * that is part of the initial formula definition, the formula will be live evaluated in the browser.\n */\n AUTO = \"auto\",\n /**\n * A complex type, called an AI column within Budibase. This type is only supported against internal tables\n * and calculates the output based on a chosen operation (summarise text, translation etc) which passes to\n * the configured Budibase Large Language Model to retrieve the output and write it back into the row.\n * AI fields function in a similar fashion to static formulas, and possess many of the same characteristics.\n */\n AI = \"ai\",\n /**\n * a JSON type, called JSON within Budibase. This type allows any arbitrary JSON to be input to this column\n * type, which will be represented as a JSON object in the row. This type depends on a schema being\n * provided to make the JSON searchable/bindable, the JSON cannot be fully dynamic.\n */\n JSON = \"json\",\n /**\n * @deprecated an internal type, this is an old deprecated type which is no longer used - still represented to note it\n * could appear in very old tables.\n */\n INTERNAL = \"internal\",\n /**\n * a string type, called Barcode/QR within Budibase. This type is used to denote to forms to that this column\n * should be filled in using a camera to read a barcode, there is a form component which will be used when this\n * type is found. The column will contain the contents of any barcode scanned.\n */\n BARCODEQR = \"barcodeqr\",\n /**\n * a JSON type, called Signature within Budibase. This type functions much the same as ATTACHMENTS but restricted\n * only to signatures.\n */\n SIGNATURE_SINGLE = \"signature_single\",\n /**\n * a string type, this allows representing very large integers, but they are held/managed within Budibase as\n * strings. When stored in external databases Budibase will attempt to use a real big integer type and depend\n * on the database parsing the string to this type as part of saving.\n */\n BIGINT = \"bigint\",\n /**\n * a JSON type, called Users within Budibase. It will hold an array of strings. This type is used to represent a link to an internal Budibase\n * resource, like a user or group, today only users are supported. This type will be represented as an\n * array of internal resource IDs (e.g. user IDs) within the row - this ID list will be enriched with\n * the full resources when rows are returned from the API. The full resources can be input to the API, or\n * an array of resource IDs, the API will squash these down and validate them before saving the row.\n */\n BB_REFERENCE = \"bb_reference\",\n /**\n * a string type, called User within Budibase. Same logic as `bb_reference`, storing a single id as string instead of an array\n */\n BB_REFERENCE_SINGLE = \"bb_reference_single\",\n}\n\nexport const JsonTypes = [\n FieldType.ATTACHMENT_SINGLE,\n FieldType.ATTACHMENTS,\n // only BB_REFERENCE is JSON, it's an array, BB_REFERENCE_SINGLE is a string type\n FieldType.BB_REFERENCE,\n FieldType.JSON,\n FieldType.ARRAY,\n]\n\nexport type FormulaResponseType =\n | FieldType.STRING\n | FieldType.NUMBER\n | FieldType.BOOLEAN\n | FieldType.DATETIME\n\nexport const NumericTypes = [FieldType.NUMBER, FieldType.BIGINT]\n\nexport function isNumeric(type: FieldType) {\n return NumericTypes.includes(type)\n}\n\nexport const GroupByTypes = [\n FieldType.STRING,\n FieldType.LONGFORM,\n FieldType.OPTIONS,\n FieldType.NUMBER,\n FieldType.BOOLEAN,\n FieldType.DATETIME,\n FieldType.BIGINT,\n FieldType.AI,\n]\n\nexport function canGroupBy(type: FieldType) {\n return GroupByTypes.includes(type)\n}\n\nexport interface RowAttachment {\n size: number\n name: string\n extension: string\n key?: string\n // Populated on read\n url?: string\n}\n\nexport interface Row extends Document {\n type?: string\n tableId?: string\n _viewId?: string\n [key: string]: any\n}\n", "import { FieldType } from \"../row\"\n\nexport enum RelationshipType {\n ONE_TO_MANY = \"one-to-many\",\n MANY_TO_ONE = \"many-to-one\",\n MANY_TO_MANY = \"many-to-many\",\n}\n\nexport enum AutoReason {\n FOREIGN_KEY = \"foreign_key\",\n}\n\nexport type FieldSubType =\n | AutoFieldSubType\n | JsonFieldSubType\n | BBReferenceFieldSubType\n\nexport enum AutoFieldSubType {\n CREATED_BY = \"createdBy\",\n CREATED_AT = \"createdAt\",\n UPDATED_BY = \"updatedBy\",\n UPDATED_AT = \"updatedAt\",\n AUTO_ID = \"autoID\",\n}\n\nexport enum JsonFieldSubType {\n ARRAY = \"array\",\n}\n\nexport enum FormulaType {\n STATIC = \"static\",\n DYNAMIC = \"dynamic\",\n AI = \"ai\",\n}\n\nexport enum BBReferenceFieldSubType {\n USER = \"user\",\n /** @deprecated this should not be used anymore, left here in order to support the existing usages */\n USERS = \"users\",\n}\n\nexport type SupportedSqlTypes =\n | FieldType.STRING\n | FieldType.BARCODEQR\n | FieldType.LONGFORM\n | FieldType.OPTIONS\n | FieldType.DATETIME\n | FieldType.NUMBER\n | FieldType.BOOLEAN\n | FieldType.FORMULA\n | FieldType.BIGINT\n | FieldType.BB_REFERENCE\n | FieldType.BB_REFERENCE_SINGLE\n | FieldType.LINK\n | FieldType.ARRAY\n", "// all added by grid/table when defining the\n// column size, position and whether it can be viewed\nimport { FieldType, FormulaResponseType } from \"../row\"\nimport {\n AutoFieldSubType,\n AutoReason,\n BBReferenceFieldSubType,\n FormulaType,\n JsonFieldSubType,\n RelationshipType,\n} from \"./constants\"\nimport { AIOperationEnum } from \"../../../sdk/ai\"\n\nexport interface UIFieldMetadata {\n order?: number\n width?: number\n visible?: boolean\n icon?: string\n}\n\ninterface BaseRelationshipFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.LINK\n main?: boolean\n fieldName: string\n tableId: string\n tableRev?: string\n subtype?: AutoFieldSubType.CREATED_BY | AutoFieldSubType.UPDATED_BY\n}\n\n// External tables use junction tables, internal tables don't require them\ntype ManyToManyJunctionTableMetadata =\n | {\n through: string\n throughFrom: string\n throughTo: string\n }\n | {\n through?: never\n throughFrom?: never\n throughTo?: never\n }\n\nexport type ManyToManyRelationshipFieldMetadata =\n BaseRelationshipFieldMetadata & {\n relationshipType: RelationshipType.MANY_TO_MANY\n } & ManyToManyJunctionTableMetadata\n\nexport interface OneToManyRelationshipFieldMetadata\n extends BaseRelationshipFieldMetadata {\n relationshipType: RelationshipType.ONE_TO_MANY\n foreignKey?: string\n}\nexport interface ManyToOneRelationshipFieldMetadata\n extends BaseRelationshipFieldMetadata {\n relationshipType: RelationshipType.MANY_TO_ONE\n foreignKey?: string\n}\nexport type RelationshipFieldMetadata =\n | ManyToManyRelationshipFieldMetadata\n | OneToManyRelationshipFieldMetadata\n | ManyToOneRelationshipFieldMetadata\n\nexport interface AutoColumnFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.AUTO\n autocolumn: true\n subtype: AutoFieldSubType\n lastID?: number\n // if the column was turned to an auto-column for SQL, explains why (primary, foreign etc)\n autoReason?: AutoReason\n}\n\nexport interface NumberFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.NUMBER\n subtype?: AutoFieldSubType.AUTO_ID\n lastID?: number\n autoReason?: AutoReason.FOREIGN_KEY\n // used specifically when Budibase generates external tables, this denotes if a number field\n // is a foreign key used for a many-to-many relationship\n meta?: {\n toTable: string\n toKey: string\n }\n default?: string\n}\n\nexport interface JsonFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.JSON\n subtype?: JsonFieldSubType.ARRAY\n default?: string\n}\n\nexport interface DateFieldMetadata extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.DATETIME\n ignoreTimezones?: boolean\n timeOnly?: boolean\n dateOnly?: boolean\n subtype?: AutoFieldSubType.CREATED_AT | AutoFieldSubType.UPDATED_AT\n default?: string\n}\n\nexport interface LongFormFieldMetadata extends BaseFieldSchema {\n type: FieldType.LONGFORM\n useRichText?: boolean | null\n default?: string\n}\n\nexport interface StringFieldMetadata extends BaseFieldSchema {\n type: FieldType.STRING\n default?: string\n}\n\nexport interface FormulaFieldMetadata extends BaseFieldSchema {\n type: FieldType.FORMULA\n formula: string\n formulaType?: FormulaType\n responseType?: FormulaResponseType\n}\n\nexport interface AIFieldMetadata extends BaseFieldSchema {\n type: FieldType.AI\n operation: AIOperationEnum\n columns?: string[]\n column?: string\n categories?: string\n prompt?: string\n language?: string\n}\n\nexport interface BBReferenceFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.BB_REFERENCE\n subtype: BBReferenceFieldSubType\n relationshipType?: RelationshipType\n default?: string[]\n}\nexport interface BBReferenceSingleFieldMetadata\n extends Omit<BaseFieldSchema, \"subtype\"> {\n type: FieldType.BB_REFERENCE_SINGLE\n subtype: Exclude<BBReferenceFieldSubType, BBReferenceFieldSubType.USERS>\n default?: string\n}\n\nexport interface AttachmentFieldMetadata extends BaseFieldSchema {\n type: FieldType.ATTACHMENTS\n}\n\nexport interface FieldConstraints {\n type?: string\n email?: boolean\n inclusion?: string[]\n length?: {\n minimum?: string | number | null\n maximum?: string | number | null\n message?: string\n }\n numericality?: {\n greaterThanOrEqualTo: string | null\n lessThanOrEqualTo: string | null\n }\n presence?:\n | boolean\n | {\n allowEmpty?: boolean\n }\n datetime?: {\n latest: string\n earliest: string\n }\n}\n\nexport interface OptionsFieldMetadata extends BaseFieldSchema {\n type: FieldType.OPTIONS\n constraints: FieldConstraints & {\n inclusion: string[]\n }\n default?: string\n}\n\nexport interface ArrayFieldMetadata extends BaseFieldSchema {\n type: FieldType.ARRAY\n constraints: FieldConstraints & {\n type: JsonFieldSubType.ARRAY\n inclusion: string[]\n }\n default?: string[]\n}\n\nexport interface BooleanFieldMetadata extends BaseFieldSchema {\n type: FieldType.BOOLEAN\n default?: string\n}\n\nexport interface BigIntFieldMetadata extends BaseFieldSchema {\n type: FieldType.BIGINT\n default?: string\n}\n\ninterface BaseFieldSchema extends UIFieldMetadata {\n type: FieldType\n name: string\n sortable?: boolean\n // only used by external databases, to denote the real type\n externalType?: string\n constraints?: FieldConstraints\n autocolumn?: boolean\n autoReason?: AutoReason.FOREIGN_KEY\n subtype?: never\n}\n\ninterface OtherFieldMetadata extends BaseFieldSchema {\n type: Exclude<\n FieldType,\n | FieldType.DATETIME\n | FieldType.LINK\n | FieldType.AUTO\n | FieldType.FORMULA\n | FieldType.AI\n | FieldType.NUMBER\n | FieldType.LONGFORM\n | FieldType.BB_REFERENCE\n | FieldType.BB_REFERENCE_SINGLE\n | FieldType.ATTACHMENTS\n | FieldType.STRING\n | FieldType.ARRAY\n | FieldType.OPTIONS\n | FieldType.BOOLEAN\n | FieldType.BIGINT\n | FieldType.JSON\n >\n}\n\nexport type FieldSchema =\n | OtherFieldMetadata\n | DateFieldMetadata\n | RelationshipFieldMetadata\n | AutoColumnFieldMetadata\n | FormulaFieldMetadata\n | AIFieldMetadata\n | NumberFieldMetadata\n | LongFormFieldMetadata\n | StringFieldMetadata\n | BBReferenceFieldMetadata\n | JsonFieldMetadata\n | AttachmentFieldMetadata\n | BBReferenceSingleFieldMetadata\n | ArrayFieldMetadata\n | OptionsFieldMetadata\n | BooleanFieldMetadata\n | BigIntFieldMetadata\n\nexport interface TableSchema {\n [key: string]: FieldSchema\n}\n\nexport function isRelationshipField(\n field: FieldSchema\n): field is RelationshipFieldMetadata {\n return field.type === FieldType.LINK\n}\n\nexport function isManyToMany(\n field: RelationshipFieldMetadata\n): field is ManyToManyRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.MANY_TO_MANY\n}\n\nexport function isOneToMany(\n field: RelationshipFieldMetadata\n): field is OneToManyRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.ONE_TO_MANY\n}\n\nexport function isManyToOne(\n field: RelationshipFieldMetadata\n): field is ManyToOneRelationshipFieldMetadata {\n return field.relationshipType === RelationshipType.MANY_TO_ONE\n}\n", "import { LegacyFilter, UISearchFilter, SortOrder, SortType } from \"../../api\"\nimport { UIFieldMetadata } from \"./table\"\nimport { Document } from \"../document\"\nimport { DBView, SearchFilters } from \"../../sdk\"\n\nexport type ViewTemplateOpts = {\n field: string\n tableId: string\n groupBy?: string\n filters: ViewFilter[]\n schema: any\n calculation?: string\n groupByMulti?: boolean\n}\n\nexport interface InMemoryView extends Document {\n view: DBView\n name: string\n tableId: string\n groupBy?: string\n}\n\nexport interface View {\n name?: string\n tableId: string\n field?: string\n filters: ViewFilter[]\n schema: ViewSchema\n calculation?: ViewCalculation\n map?: string\n reduce?: any\n meta?: ViewTemplateOpts\n groupBy?: string\n}\n\nexport interface BasicViewFieldMetadata extends UIFieldMetadata {\n readonly?: boolean\n columns?: Record<string, RelationSchemaField>\n}\n\nexport interface RelationSchemaField extends UIFieldMetadata {\n readonly?: boolean\n}\n\nexport interface NumericCalculationFieldMetadata\n extends BasicViewFieldMetadata {\n calculationType:\n | CalculationType.MIN\n | CalculationType.MAX\n | CalculationType.SUM\n | CalculationType.AVG\n field: string\n}\n\nexport interface CountCalculationFieldMetadata extends BasicViewFieldMetadata {\n calculationType: CalculationType.COUNT\n field: string\n}\n\nexport interface CountDistinctCalculationFieldMetadata\n extends CountCalculationFieldMetadata {\n distinct: true\n}\n\nexport type ViewCalculationFieldMetadata =\n | NumericCalculationFieldMetadata\n | CountCalculationFieldMetadata\n | CountDistinctCalculationFieldMetadata\n\nexport type ViewFieldMetadata =\n | BasicViewFieldMetadata\n | ViewCalculationFieldMetadata\n\nexport enum CalculationType {\n SUM = \"sum\",\n AVG = \"avg\",\n COUNT = \"count\",\n MIN = \"min\",\n MAX = \"max\",\n}\n\nexport enum ViewV2Type {\n CALCULATION = \"calculation\",\n}\n\nexport interface ViewV2 {\n version: 2\n id: string\n name: string\n type?: ViewV2Type\n primaryDisplay?: string\n tableId: string\n query?: LegacyFilter[] | SearchFilters\n // duplicate to store UI information about filters\n queryUI?: UISearchFilter\n sort?: {\n field: string\n order?: SortOrder\n type?: SortType\n }\n schema?: ViewV2Schema\n rowHeight?: number\n}\n\nexport interface PublicAPIView extends Omit<ViewV2, \"query\" | \"queryUI\"> {\n query?: UISearchFilter\n}\n\nexport type ViewV2Schema = Record<string, ViewFieldMetadata>\n\nexport type ViewSchema = ViewCountOrSumSchema | ViewStatisticsSchema\n\nexport interface ViewCountOrSumSchema {\n field: string\n value: string\n}\n\n/**\n e.g:\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n }\n */\nexport interface ViewStatisticsSchema {\n [key: string]: {\n type: string\n }\n}\n\nexport interface ViewFilter {\n value?: any\n condition: string\n key: string\n conjunction?: string\n}\n\nexport enum ViewCalculation {\n SUM = \"sum\",\n COUNT = \"count\",\n STATISTICS = \"stats\",\n}\n", "export const SEPARATOR = \"_\"\nexport const UNICODE_MAX = \"\\ufff0\"\n\nexport const prefixed = (type: DocumentType) => `${type}${SEPARATOR}`\n\nexport enum DocumentType {\n USER = \"us\",\n GROUP = \"gr\",\n WORKSPACE = \"workspace\",\n CONFIG = \"config\",\n TEMPLATE = \"template\",\n APP = \"app\",\n DEV = \"dev\",\n APP_DEV = \"app_dev\",\n APP_METADATA = \"app_metadata\",\n ROLE = \"role\",\n MIGRATIONS = \"migrations\",\n DEV_INFO = \"devinfo\",\n AUTOMATION_LOG = \"log_au\",\n ACCOUNT_METADATA = \"acc_metadata\",\n PLUGIN = \"plg\",\n DATASOURCE = \"datasource\",\n DATASOURCE_PLUS = \"datasource_plus\",\n APP_BACKUP = \"backup\",\n TABLE = \"ta\",\n ROW = \"ro\",\n AUTOMATION = \"au\",\n LINK = \"li\",\n WEBHOOK = \"wh\",\n INSTANCE = \"inst\",\n LAYOUT = \"layout\",\n SCREEN = \"screen\",\n QUERY = \"query\",\n DEPLOYMENTS = \"deployments\",\n METADATA = \"metadata\",\n MEM_VIEW = \"view\",\n USER_FLAG = \"flag\",\n AUTOMATION_METADATA = \"meta_au\",\n AUDIT_LOG = \"al\",\n APP_MIGRATION_METADATA = \"_design/migrations\",\n SCIM_LOG = \"scimlog\",\n ROW_ACTIONS = \"ra\",\n}\n\n// Because DocumentTypes can overlap, we need to make sure that we search\n// longest first to ensure we get the correct type.\nconst sortedDocumentTypes = Object.values(DocumentType).sort(\n (a, b) => b.length - a.length // descending\n)\nexport function getDocumentType(id: string): DocumentType | undefined {\n return sortedDocumentTypes.find(docType =>\n id.startsWith(`${docType}${SEPARATOR}`)\n )\n}\n\n// these are the core documents that make up the data, design\n// and automation sections of an app. This excludes any internal\n// rows as we shouldn't import data.\nexport const DocumentTypesToImport: DocumentType[] = [\n DocumentType.ROLE,\n DocumentType.DATASOURCE,\n DocumentType.DATASOURCE_PLUS,\n DocumentType.TABLE,\n DocumentType.AUTOMATION,\n DocumentType.WEBHOOK,\n DocumentType.SCREEN,\n DocumentType.QUERY,\n DocumentType.METADATA,\n DocumentType.MEM_VIEW,\n // Deprecated but still copied\n DocumentType.INSTANCE,\n DocumentType.LAYOUT,\n]\n\nexport enum InternalTable {\n USER_METADATA = \"ta_users\",\n}\n\n// these documents don't really exist, they are part of other\n// documents or enriched into existence as part of get requests\nexport enum VirtualDocumentType {\n VIEW = \"view\",\n ROW_ACTION = \"row_action\",\n}\n\n// Because VirtualDocumentTypes can overlap, we need to make sure that we search\n// longest first to ensure we get the correct type.\nconst sortedVirtualDocumentTypes = Object.values(VirtualDocumentType).sort(\n (a, b) => b.length - a.length // descending\n)\nexport function getVirtualDocumentType(\n id: string\n): VirtualDocumentType | undefined {\n return sortedVirtualDocumentTypes.find(docType =>\n id.startsWith(`${docType}${SEPARATOR}`)\n )\n}\n\nexport interface Document {\n _id?: string\n _rev?: string\n createdAt?: string | number\n updatedAt?: string\n}\n\nexport interface AnyDocument extends Document {\n [key: string]: any\n}\n", "import { Document } from \"../document\"\nimport { User } from \"../../\"\n\nexport enum AppBackupType {\n BACKUP = \"backup\",\n RESTORE = \"restore\",\n}\n\nexport enum AppBackupStatus {\n STARTED = \"started\",\n PENDING = \"pending\",\n COMPLETE = \"complete\",\n FAILED = \"failed\",\n}\n\nexport enum AppBackupTrigger {\n PUBLISH = \"publish\",\n MANUAL = \"manual\",\n SCHEDULED = \"scheduled\",\n RESTORING = \"restoring\",\n}\n\nexport interface AppBackupContents {\n datasources: string[]\n screens: string[]\n automations: string[]\n}\n\nexport interface AppBackupMetadata {\n appId: string\n trigger?: AppBackupTrigger\n type: AppBackupType\n status: AppBackupStatus\n name?: string\n createdBy?: string | User\n timestamp: string\n finishedAt?: string\n startedAt?: string\n contents?: AppBackupContents\n}\n\nexport interface AppBackup extends Document, AppBackupMetadata {\n _id: string\n filename?: string\n}\n\nexport type AppBackupFetchOpts = {\n trigger?: AppBackupTrigger\n type?: AppBackupType\n limit?: number\n page?: string\n paginate?: boolean\n startDate?: string\n endDate?: string\n}\n\nexport interface AppBackupQueueData {\n appId: string\n docId: string\n docRev: string\n export?: {\n trigger: AppBackupTrigger\n name?: string\n createdBy?: string\n }\n import?: {\n backupId: string\n nameForBackup: string\n createdBy?: string\n }\n}\n", "import { Document } from \"../document\"\nimport { JSONSchema7 } from \"json-schema\"\n\nexport enum WebhookActionType {\n AUTOMATION = \"automation\",\n}\n\nexport interface Webhook extends Document {\n live: boolean\n name: string\n action: {\n type: WebhookActionType\n target: string\n }\n bodySchema?: JSONSchema7\n}\n", "export enum SQLiteType {\n REAL = \"REAL\",\n TEXT = \"VARCHAR\",\n INT = \"INTEGER\",\n BLOB = \"BLOB\",\n NUMERIC = \"NUMERIC\",\n}\n\nexport type SQLiteTable = Record<\n string,\n SQLiteType | { field: string; type: SQLiteType }\n>\n\nexport type SQLiteTables = Record<\n string,\n {\n fields: SQLiteTable\n }\n>\n\nexport interface SQLiteDefinition {\n _id: string\n _rev: string\n language: string\n sql: {\n tables: SQLiteTables\n options: {\n table_name: string\n }\n }\n}\n\nexport interface PreSaveSQLiteDefinition\n extends Omit<SQLiteDefinition, \"_rev\"> {\n _rev?: string\n}\n", "export enum Theme {\n LIGHTEST = \"lightest\",\n LIGHT = \"light\",\n DARK = \"dark\",\n DARKEST = \"darkest\",\n NORD = \"nord\",\n MIDNIGHT = \"midnight\",\n}\n\nexport type ThemeMeta = {\n id: string\n name: string\n base?: Theme\n}\n", "export enum DeploymentStatus {\n SUCCESS = \"SUCCESS\",\n PENDING = \"PENDING\",\n FAILURE = \"FAILURE\",\n}\n\nexport interface DeploymentDoc {\n _id: string\n verification: any\n status?: DeploymentStatus\n history?: Record<\n string,\n {\n _id: string\n appId: string\n status?: DeploymentStatus\n updatedAt: number\n }\n >\n err?: any\n appUrl?: string\n}\n", "export enum MetadataType {\n AUTOMATION_TEST_INPUT = \"automationTestInput\",\n AUTOMATION_TEST_HISTORY = \"automationTestHistory\",\n}\n", "import { Document } from \"../document\"\n\nexport interface Config<T = any> extends Document {\n type: ConfigType\n config: T\n}\n\nexport interface SMTPInnerConfig {\n port: number\n host: string\n from: string\n subject?: string\n secure: boolean\n auth?: {\n user: string\n pass: string\n }\n connectionTimeout?: any\n}\n\nexport interface SMTPConfig extends Config<SMTPInnerConfig> {}\n\n/**\n * Accessible only via pro.\n */\nexport interface SettingsBrandingConfig {\n faviconUrl?: string\n faviconUrlEtag?: string\n emailBrandingEnabled?: boolean\n testimonialsEnabled?: boolean\n platformTitle?: string\n loginHeading?: string\n loginButton?: string\n metaDescription?: string\n metaImageUrl?: string\n metaTitle?: string\n}\n\nexport interface SettingsInnerConfig {\n platformUrl?: string\n company?: string\n logoUrl?: string // Populated on read\n docsUrl?: string\n logoUrlEtag?: string\n uniqueTenantId?: string\n analyticsEnabled?: boolean\n isSSOEnforced?: boolean\n}\n\nexport interface SettingsConfig extends Config<SettingsInnerConfig> {}\n\nexport type SSOConfigType = ConfigType.GOOGLE | ConfigType.OIDC\nexport type SSOConfig = GoogleInnerConfig | OIDCInnerConfig\n\nexport interface GoogleInnerConfig {\n clientID: string\n clientSecret: string\n activated: boolean\n /**\n * @deprecated read only\n */\n callbackURL?: string\n}\n\nexport interface GoogleConfig extends Config<GoogleInnerConfig> {}\n\nexport interface OIDCStrategyConfiguration {\n issuer: string\n authorizationURL: string\n tokenURL: string\n userInfoURL: string\n clientID: string\n clientSecret: string\n callbackURL: string\n}\n\nexport interface OIDCConfigs {\n configs: OIDCInnerConfig[]\n}\n\nexport interface OIDCLogosInnerConfig {\n [key: string]: string\n}\n\nexport interface OIDCLogosConfig extends Config<OIDCLogosInnerConfig> {}\n\nexport interface OIDCInnerConfig {\n configUrl: string\n clientID: string\n clientSecret: string\n logo: string\n name: string\n uuid: string\n activated: boolean\n scopes: string[]\n}\n\nexport interface OIDCConfig extends Config<OIDCConfigs> {}\n\nexport interface OIDCWellKnownConfig {\n issuer: string\n authorization_endpoint: string\n token_endpoint: string\n userinfo_endpoint: string\n}\n\nexport interface SCIMInnerConfig {\n enabled: boolean\n}\n\nexport interface SCIMConfig extends Config<SCIMInnerConfig> {}\n\nexport type AIProvider = \"OpenAI\" | \"Anthropic\" | \"TogetherAI\" | \"Custom\"\n\nexport interface AIInnerConfig {\n [key: string]: {\n provider: AIProvider\n isDefault: boolean\n name: string\n active: boolean\n baseUrl?: string\n apiKey?: string\n defaultModel?: string\n }\n}\n\nexport interface AIConfig extends Config<AIInnerConfig> {}\n\nexport const isConfig = (config: Object): config is Config =>\n \"type\" in config && \"config\" in config\n\nexport const isSettingsConfig = (config: Config): config is SettingsConfig =>\n config.type === ConfigType.SETTINGS\n\nexport const isSMTPConfig = (config: Config): config is SMTPConfig =>\n config.type === ConfigType.SMTP\n\nexport const isGoogleConfig = (config: Config): config is GoogleConfig =>\n config.type === ConfigType.GOOGLE\n\nexport const isOIDCConfig = (config: Config): config is OIDCConfig =>\n config.type === ConfigType.OIDC\n\nexport const isSCIMConfig = (config: Config): config is SCIMConfig =>\n config.type === ConfigType.SCIM\n\nexport const isAIConfig = (config: Config): config is AIConfig =>\n config.type === ConfigType.AI\n\nexport enum ConfigType {\n SETTINGS = \"settings\",\n ACCOUNT = \"account\",\n SMTP = \"smtp\",\n GOOGLE = \"google\",\n OIDC = \"oidc\",\n OIDC_LOGOS = \"logos_oidc\",\n SCIM = \"scim\",\n AI = \"ai\",\n}\n", "import { Document } from \"../document\"\n\n// SSO\n\nexport interface SSOProfileJson {\n email?: string\n picture?: string\n}\n\nexport interface OAuth2 {\n accessToken: string\n refreshToken?: string\n}\n\nexport enum SSOProviderType {\n OIDC = \"oidc\",\n GOOGLE = \"google\",\n}\n\nexport interface UserSSO {\n provider: string // the individual provider e.g. Okta, Auth0, Google\n providerType: SSOProviderType\n oauth2?: OAuth2\n profile?: {\n displayName?: string\n name?: {\n givenName?: string\n familyName?: string\n }\n }\n}\n\nexport type SSOUser = User & UserSSO\n\nexport function isSSOUser(user: User): user is SSOUser {\n return !!(user as SSOUser).providerType\n}\n\n// USER\n\nexport interface UserIdentifier {\n userId: string\n email: string\n}\n\nexport interface User extends Document {\n tenantId: string\n email: string\n userId?: string\n firstName?: string\n lastName?: string\n forceResetPassword?: boolean\n roles: UserRoles\n builder?: {\n global?: boolean\n apps?: string[]\n creator?: boolean\n }\n admin?: {\n global: boolean\n }\n password?: string\n status?: UserStatus\n createdAt?: number // override the default createdAt behaviour - users sdk historically set this to Date.now()\n userGroups?: string[]\n onboardedAt?: string\n freeTrialConfirmedAt?: string\n tours?: Record<string, Date>\n scimInfo?: { isSync: true } & Record<string, any>\n appFavourites?: string[]\n ssoId?: string\n appSort?: string\n budibaseAccess?: boolean\n accountPortalAccess?: boolean\n}\n\nexport interface UserBindings extends Document {\n firstName?: string\n lastName?: string\n email?: string\n status?: string\n roleId?: string | null\n globalId?: string\n userId?: string\n}\n\nexport enum UserStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n}\n\n// specifies a map of app ID to role ID\nexport type UserRoles = Record<string, string>\n\n// UTILITY TYPES\n\nexport interface BuilderUser extends User {\n builder: {\n global?: boolean\n apps?: string[]\n }\n}\n\nexport interface AdminUser extends User {\n admin: {\n global: boolean\n }\n builder: {\n global: boolean\n }\n}\n\nexport interface AdminOnlyUser extends User {\n admin: {\n global: boolean\n }\n}\n\nexport function isUser(user: object): user is User {\n return !!(user as User).roles\n}\n", "import { Document } from \"../document\"\n\nexport enum PluginType {\n DATASOURCE = \"datasource\",\n COMPONENT = \"component\",\n AUTOMATION = \"automation\",\n}\n\nexport enum PluginSource {\n NPM = \"NPM\",\n GITHUB = \"Github\",\n URL = \"URL\",\n FILE = \"File Upload\",\n}\nexport interface KoaFile {\n path: string | null\n name: string | null\n}\n\nexport interface Plugin extends Document {\n description: string\n name: string\n version: string\n source: PluginSource\n package: { [key: string]: any }\n hash: string\n schema: {\n type: PluginType\n [key: string]: any\n }\n iconFileName?: string\n // Populated on read\n jsUrl?: string\n // Populated on read\n iconUrl?: string\n}\n\nexport const PLUGIN_TYPE_ARR = Object.values(PluginType)\n", "import { MonthlyQuotaName, StaticQuotaName } from \"../../sdk\"\n\nexport enum BreakdownQuotaName {\n ROW_QUERIES = \"rowQueries\",\n DATASOURCE_QUERIES = \"datasourceQueries\",\n AUTOMATIONS = \"automations\",\n}\n\nexport const APP_QUOTA_NAMES = [\n StaticQuotaName.ROWS,\n MonthlyQuotaName.QUERIES,\n MonthlyQuotaName.AUTOMATIONS,\n]\n\nexport const BREAKDOWN_QUOTA_NAMES = [\n MonthlyQuotaName.QUERIES,\n MonthlyQuotaName.AUTOMATIONS,\n]\n\nexport interface UsageBreakdown {\n parent: MonthlyQuotaName\n values: {\n [key: string]: number\n }\n}\n\nexport type QuotaTriggers = {\n [key: string]: string | undefined\n}\n\nexport interface StaticUsage {\n [StaticQuotaName.APPS]: number\n [StaticQuotaName.PLUGINS]: number\n [StaticQuotaName.USERS]: number\n [StaticQuotaName.CREATORS]: number\n [StaticQuotaName.USER_GROUPS]: number\n [StaticQuotaName.ROWS]: number\n [StaticQuotaName.AI_CUSTOM_CONFIGS]: number\n triggers: {\n [key in StaticQuotaName]?: QuotaTriggers\n }\n}\n\nexport interface MonthlyUsage {\n [MonthlyQuotaName.QUERIES]: number\n [MonthlyQuotaName.AUTOMATIONS]: number\n [MonthlyQuotaName.BUDIBASE_AI_CREDITS]: number\n triggers: {\n [key in MonthlyQuotaName]?: QuotaTriggers\n }\n breakdown?: {\n [key in BreakdownQuotaName]?: UsageBreakdown\n }\n}\n\nexport interface BaseQuotaUsage {\n usageQuota: StaticUsage\n monthly: {\n [key: string]: MonthlyUsage\n }\n}\n\nexport interface QuotaUsage extends BaseQuotaUsage {\n _id: string\n _rev?: string\n quotaReset: string\n apps?: {\n [key: string]: BaseQuotaUsage\n }\n}\n\nexport type SetUsageValues = {\n total: number\n app?: number\n breakdown?: number\n triggers?: QuotaTriggers\n}\n\nexport type UsageValues = {\n total: number\n app?: number\n breakdown?: number\n}\n", "import { Document } from \"../document\"\n\nexport enum ScheduleType {\n APP_BACKUP = \"app_backup\",\n}\n\nexport enum ScheduleRepeatPeriod {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport interface Schedule extends Document {\n type: ScheduleType\n name: string\n startDate: string\n repeat: ScheduleRepeatPeriod\n metadata: ScheduleMetadata\n}\n\nexport type ScheduleMetadata = AppBackupScheduleMetadata\n\nexport const isAppBackupMetadata = (\n type: ScheduleType,\n metadata: ScheduleMetadata\n): metadata is AppBackupScheduleMetadata => {\n return type === ScheduleType.APP_BACKUP\n}\n\nexport interface AppBackupScheduleMetadata {\n apps: string[]\n}\n", "import { Document } from \"../document\"\nimport { Event } from \"../../sdk\"\n\nexport const AuditLogSystemUser = \"SYSTEM\"\nexport const AUDIT_LOG_TYPE = \"auditLog\"\n\nexport type FallbackInfo = {\n appName?: string\n email?: string\n}\n\nexport interface AuditLogDoc extends Document {\n appId?: string\n event: Event\n userId: string\n timestamp: string\n metadata: any\n name: string\n type?: \"auditLog\"\n fallback?: FallbackInfo\n}\n", "export enum PingSource {\n BUILDER = \"builder\",\n APP = \"app\",\n}\n\nexport interface AnalyticsEnabledResponse {\n enabled: boolean\n}\n\nexport interface AnalyticsPingRequest {\n source: PingSource\n timezone: string\n embedded?: boolean\n}\nexport interface AnalyticsPingResponse {\n message: string\n source?: PingSource\n}\n", "export enum SortOrder {\n ASCENDING = \"ascending\",\n DESCENDING = \"descending\",\n}\n\nexport enum SortType {\n STRING = \"string\",\n NUMBER = \"number\",\n}\n\nexport interface BasicPaginationRequest {\n bookmark?: string\n}\n\nexport interface PaginationRequest extends BasicPaginationRequest {\n limit?: number\n sort?: {\n order: SortOrder\n column: string\n type: SortType\n }\n}\n\nexport interface PaginationResponse {\n bookmark: string | number | undefined\n hasNextPage?: boolean\n totalRows?: number\n}\n", "import {\n ArrayOperator,\n BasicOperator,\n EmptyFilterOption,\n InternalSearchFilterOperator,\n LogicalOperator,\n RangeOperator,\n SearchFilterKey,\n} from \"../../../../sdk\"\nimport { Row } from \"../../../../documents\"\nimport {\n PaginationResponse,\n SortOrder,\n SortType,\n} from \"../../../../api/web/pagination\"\nimport { z } from \"zod\"\n\nconst fieldKey = z\n .string()\n .refine(s => s !== InternalSearchFilterOperator.COMPLEX_ID_OPERATOR, {\n message: `Key '${InternalSearchFilterOperator.COMPLEX_ID_OPERATOR}' is not allowed`,\n })\n\nconst stringBasicFilter = z.record(fieldKey, z.string())\nconst basicFilter = z.record(fieldKey, z.any())\nconst arrayFilter = z.record(fieldKey, z.union([z.any().array(), z.string()]))\nconst logicFilter = z.lazy(() =>\n z.object({\n conditions: z.array(z.object(queryFilterValidation)),\n })\n)\n\nconst stringOrNumber = z.union([z.string(), z.number()])\n\nconst queryFilterValidation: Record<SearchFilterKey, z.ZodTypeAny> = {\n [BasicOperator.STRING]: stringBasicFilter.optional(),\n [BasicOperator.FUZZY]: stringBasicFilter.optional(),\n [RangeOperator.RANGE]: z\n .record(\n fieldKey,\n z.union([\n z.object({ high: stringOrNumber, low: stringOrNumber }),\n z.object({ high: stringOrNumber }),\n z.object({ low: stringOrNumber }),\n ])\n )\n .optional(),\n [BasicOperator.EQUAL]: basicFilter.optional(),\n [BasicOperator.NOT_EQUAL]: basicFilter.optional(),\n [BasicOperator.EMPTY]: basicFilter.optional(),\n [BasicOperator.NOT_EMPTY]: basicFilter.optional(),\n [ArrayOperator.ONE_OF]: arrayFilter.optional(),\n [ArrayOperator.CONTAINS]: arrayFilter.optional(),\n [ArrayOperator.NOT_CONTAINS]: arrayFilter.optional(),\n [ArrayOperator.CONTAINS_ANY]: arrayFilter.optional(),\n [LogicalOperator.AND]: logicFilter.optional(),\n [LogicalOperator.OR]: logicFilter.optional(),\n}\n\nconst searchRowRequest = z.object({\n query: z\n .object({\n allOr: z.boolean().optional(),\n onEmptyFilter: z.nativeEnum(EmptyFilterOption).optional(),\n ...queryFilterValidation,\n })\n .optional(),\n paginate: z.boolean().optional(),\n bookmark: z.union([z.string(), z.number()]).nullish(),\n limit: z.number().optional(),\n sort: z.string().nullish(),\n sortOrder: z.nativeEnum(SortOrder).optional(),\n sortType: z.nativeEnum(SortType).nullish(),\n version: z.string().optional(),\n disableEscaping: z.boolean().optional(),\n countRows: z.boolean().optional(),\n})\n\nexport const searchRowRequestValidator = searchRowRequest\n\nexport type SearchRowRequest = z.infer<typeof searchRowRequest>\nexport type SearchViewRowRequest = Pick<\n SearchRowRequest,\n | \"sort\"\n | \"sortOrder\"\n | \"sortType\"\n | \"limit\"\n | \"bookmark\"\n | \"paginate\"\n | \"query\"\n | \"countRows\"\n>\n\nexport interface SearchRowResponse {\n rows: Row[]\n}\n\nexport interface PaginatedSearchRowResponse\n extends SearchRowResponse,\n PaginationResponse {}\n", "import {\n Automation,\n AutomationActionStepId,\n AutomationLogPage,\n AutomationResults,\n AutomationStatus,\n AutomationStepDefinition,\n AutomationTriggerDefinition,\n AutomationTriggerStepId,\n DidNotTriggerResponse,\n Row,\n} from \"../../../documents\"\nimport { DocumentDestroyResponse } from \"@budibase/nano\"\n\nexport type GetAutomationTriggerDefinitionsResponse = Record<\n keyof typeof AutomationTriggerStepId,\n AutomationTriggerDefinition\n>\n\nexport type GetAutomationActionDefinitionsResponse = Record<\n keyof typeof AutomationActionStepId,\n AutomationStepDefinition\n>\n\nexport interface GetAutomationStepDefinitionsResponse {\n trigger: GetAutomationTriggerDefinitionsResponse\n action: GetAutomationActionDefinitionsResponse\n}\n\nexport interface DeleteAutomationResponse extends DocumentDestroyResponse {}\n\nexport interface FetchAutomationResponse {\n automations: Automation[]\n}\n\nexport interface FindAutomationResponse extends Automation {}\n\nexport interface UpdateAutomationRequest extends Automation {}\nexport interface UpdateAutomationResponse {\n message: string\n automation: Automation\n}\n\nexport interface CreateAutomationRequest extends Automation {}\nexport interface CreateAutomationResponse {\n message: string\n automation: Automation\n}\n\nexport interface SearchAutomationLogsRequest {\n startDate?: string\n status?: AutomationStatus\n automationId?: string\n page?: string\n}\nexport interface SearchAutomationLogsResponse extends AutomationLogPage {}\n\nexport interface ClearAutomationLogRequest {\n automationId: string\n appId: string\n}\nexport interface ClearAutomationLogResponse {\n message: string\n}\n\nexport interface TriggerAutomationRequest {\n fields: Record<string, any>\n // time in seconds\n timeout: number\n}\nexport type TriggerAutomationResponse = Record<string, any> | undefined\n\nexport interface TestAutomationRequest {\n id?: string\n revision?: string\n fields: Record<string, any>\n row?: Row\n oldRow?: Row\n}\nexport type TestAutomationResponse = AutomationResults | DidNotTriggerResponse\n\nexport function isDidNotTriggerResponse(\n response: TestAutomationResponse\n): response is DidNotTriggerResponse {\n return !!(\"message\" in response && response.message)\n}\n", "import { Event } from \"../../../sdk\"\nimport { PaginationResponse, BasicPaginationRequest } from \"../\"\nimport { User, App } from \"../../../\"\n\nexport interface AuditLogSearchParams {\n userIds?: string[]\n appIds?: string[]\n events?: Event[]\n startDate?: string\n endDate?: string\n fullSearch?: string\n bookmark?: string\n}\n\nexport interface DownloadAuditLogsRequest extends AuditLogSearchParams {}\n\nexport interface SearchAuditLogsRequest\n extends BasicPaginationRequest,\n AuditLogSearchParams {}\n\nexport enum AuditLogResourceStatus {\n DELETED = \"deleted\",\n}\n\nexport type DeletedResourceInfo = {\n _id: string\n status: AuditLogResourceStatus\n email?: string\n name?: string\n}\n\nexport interface AuditLogEnriched {\n app?: App | DeletedResourceInfo\n user: User | DeletedResourceInfo\n event: Event\n timestamp: string\n name: string\n metadata: any\n}\n\nexport interface SearchAuditLogsResponse extends PaginationResponse {\n data: AuditLogEnriched[]\n}\n\nexport interface DefinitionsAuditLogsResponse {\n events: Record<string, string>\n}\n", "export enum EventPublishType {\n ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED = \"environment_variable_upgrade_panel_opened\",\n}\n\nexport interface PostEventPublishRequest {\n type: EventPublishType\n}\nexport interface PostEventPublishResponse {\n message: string\n}\n", "import { EmailAttachment, EmailInvite } from \"../../../documents\"\n\nexport enum EmailTemplatePurpose {\n CORE = \"core\",\n BASE = \"base\",\n PASSWORD_RECOVERY = \"password_recovery\",\n INVITATION = \"invitation\",\n WELCOME = \"welcome\",\n CUSTOM = \"custom\",\n}\n\nexport interface SendEmailRequest {\n workspaceId?: string\n email: string\n userId: string\n purpose: EmailTemplatePurpose\n contents?: string\n from?: string\n subject: string\n cc?: boolean\n bcc?: boolean\n automation?: boolean\n invite?: EmailInvite\n attachments?: EmailAttachment[]\n}\nexport interface SendEmailResponse extends Record<string, any> {\n message: string\n}\n", "export enum TemplateType {\n APP = \"app\",\n}\n\nexport interface TemplateMetadata {\n background: string\n icon: string\n category: string\n description: string\n name: string\n url: string\n type: TemplateType\n key: string\n image: string\n}\n\nexport type FetchTemplateResponse = TemplateMetadata[]\n\nexport interface DownloadTemplateResponse {\n message: string\n}\n", "export enum ServiceType {\n WORKER = \"worker\",\n APPS = \"apps\",\n}\n\nexport enum MaintenanceType {\n SQS_MISSING = \"sqs_missing\",\n}\n", "export const enum EventType {\n ROW_SAVE = \"row:save\",\n ROW_UPDATE = \"row:update\",\n ROW_DELETE = \"row:delete\",\n TABLE_SAVE = \"table:save\",\n TABLE_UPDATED = \"table:updated\",\n TABLE_DELETE = \"table:delete\",\n}\n", "export interface BindingCompletion {\n section: {\n name: string\n }\n label: string\n}\n\nexport interface EnrichedBinding {\n runtimeBinding: string\n readableBinding: string\n type?: null | string\n}\n\nexport enum BindingMode {\n Text = \"Text\",\n JavaScript = \"JavaScript\",\n}\n\nexport type CaretPositionFn = () => { start: number; end: number }\n\nexport type InsertAtPositionFn = (_: {\n start: number\n end?: number\n value: string\n cursor?: { anchor: number }\n}) => void\n\nexport interface UIBinding {\n tableId?: string\n fieldSchema?: {\n name: string\n tableId: string\n type: string\n subtype?: string\n prefixKeys?: string\n }\n component?: string\n providerId: string\n readableBinding?: string\n runtimeBinding?: string\n}\n", "export enum SidePanel {\n Bindings = \"FlashOn\",\n Evaluation = \"Play\",\n Snippets = \"Code\",\n}\n"],
|
|
5
|
+
"mappings": "mbAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,qBAAAE,EAAA,oBAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,2BAAAC,GAAA,mBAAAC,GAAA,oBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,mBAAAC,GAAA,kBAAAC,EAAA,gBAAAC,GAAA,2BAAAC,GAAA,uBAAAC,GAAA,6BAAAC,GAAA,aAAAC,GAAA,qBAAAC,GAAA,eAAAC,GAAA,2BAAAC,EAAA,2BAAAC,GAAA,wBAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,qBAAAC,GAAA,0BAAAC,GAAA,yBAAAC,GAAA,uBAAAC,GAAA,4BAAAC,GAAA,4BAAAC,EAAA,4BAAAC,GAAA,0BAAAC,GAAA,kBAAAC,EAAA,gBAAAC,GAAA,aAAAC,GAAA,uBAAAC,GAAA,wBAAAC,GAAA,oBAAAC,GAAA,gBAAAC,GAAA,eAAAC,GAAA,sBAAAC,GAAA,oBAAAC,GAAA,sBAAAC,GAAA,wBAAAC,GAAA,qBAAAC,GAAA,iBAAAC,EAAA,0BAAAC,GAAA,yBAAAC,GAAA,sBAAAC,EAAA,UAAAC,EAAA,qBAAAC,GAAA,cAAAC,GAAA,YAAAC,GAAA,gBAAAC,GAAA,wBAAAC,GAAA,cAAAC,EAAA,eAAAC,GAAA,gBAAAC,GAAA,iBAAAC,GAAA,cAAAC,EAAA,YAAAC,EAAA,eAAAC,GAAA,6BAAAC,GAAA,iBAAAC,EAAA,wBAAAC,GAAA,aAAAC,GAAA,iCAAAC,EAAA,kBAAAC,GAAA,qBAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,oBAAAC,EAAA,gBAAAC,GAAA,iBAAAC,GAAA,oBAAAC,GAAA,iBAAAC,GAAA,UAAAC,GAAA,qBAAAC,EAAA,iBAAAC,GAAA,cAAAC,GAAA,2BAAAC,EAAA,yBAAAC,GAAA,oBAAAC,GAAA,oBAAAC,GAAA,qBAAAC,GAAA,mBAAAC,GAAA,eAAAC,GAAA,cAAAC,EAAA,aAAAC,EAAA,iBAAAC,GAAA,eAAAC,EAAA,kBAAAC,EAAA,cAAAC,GAAA,cAAAC,GAAA,mBAAAC,EAAA,kBAAAC,EAAA,qBAAAC,EAAA,gBAAAC,GAAA,iBAAAC,GAAA,oBAAAC,GAAA,kBAAAC,GAAA,cAAAC,EAAA,eAAAC,GAAA,oBAAAC,GAAA,yBAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,cAAAC,EAAA,aAAAC,EAAA,eAAAC,GAAA,cAAAC,GAAA,oBAAAC,EAAA,oBAAAC,GAAA,iBAAAC,GAAA,6BAAAC,GAAA,UAAAC,GAAA,sBAAAC,GAAA,gBAAAC,GAAA,wBAAAC,EAAA,eAAAC,GAAA,oBAAAC,GAAA,eAAAC,GAAA,wBAAAC,EAAA,sBAAAC,GAAA,eAAAC,GAAA,oBAAAC,GAAA,2BAAAC,GAAA,eAAAC,GAAA,wBAAAC,GAAA,0BAAAC,GAAA,0BAAAC,GAAA,mBAAAC,GAAA,aAAAC,GAAA,oBAAAC,GAAA,4BAAAC,GAAA,4BAAAC,GAAA,eAAAC,GAAA,mBAAAC,GAAA,4BAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,mBAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,sBAAAC,GAAA,0BAAAC,GAAA,wBAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,cAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,WAAAC,GAAA,4BAAAC,GAAA,aAAAC,GAAA,8BAAAC,KAAA,eAAAC,GAAApK,ICAO,IAAKqK,OACVA,EAAA,eAAiB,iBACjBA,EAAA,WAAa,aACbA,EAAA,UAAY,YACZA,EAAA,gBAAkB,kBAClBA,EAAA,mBAAqB,qBACrBA,EAAA,OAAS,SACTA,EAAA,WAAa,aAPHA,OAAA,IAUAC,OACVA,EAAA,aAAe,UACfA,EAAA,OAAS,SACTA,EAAA,cAAgB,SAHNA,OAAA,ICVL,IAAKC,OACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OAFGA,OAAA,ICGL,IAAKC,OAEVA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eAGfA,EAAA,yBAA2B,2BAG3BA,EAAA,+BAAiC,sBACjCA,EAAA,8BAAgC,qBAChCA,EAAA,iCAAmC,wBACnCA,EAAA,gCAAkC,uBAGlCA,EAAA,aAAe,eACfA,EAAA,sBAAwB,uBAGxBA,EAAA,0BAA4B,4BAC5BA,EAAA,sBAAwB,wBACxBA,EAAA,8BAAgC,gCAChCA,EAAA,oBAAsB,sBAGtBA,EAAA,wBAA0B,0BAG1BA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBAGrBA,EAAA,kBAAoB,oBACpBA,EAAA,kBAAoB,oBAGpBA,EAAA,iBAAmB,mBACnBA,EAAA,iBAAmB,mBACnBA,EAAA,mBAAqB,qBACrBA,EAAA,qBAAuB,uBACvBA,EAAA,WAAa,aACbA,EAAA,YAAc,cAGdA,EAAA,iBAAmB,wBACnBA,EAAA,iBAAmB,wBACnBA,EAAA,yBAA2B,0BAG3BA,EAAA,6BAA+B,+BAC/BA,EAAA,8BAAgC,gCAChCA,EAAA,gCAAkC,kCAClCA,EAAA,2BAA6B,4BAG7BA,EAAA,kBAAoB,oBACpBA,EAAA,iBAAmB,mBAGnBA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAClBA,EAAA,sBAAwB,wBACxBA,EAAA,kBAAoB,oBACpBA,EAAA,oBAAsB,sBACtBA,EAAA,qBAAuB,uBACvBA,EAAA,aAAe,eACfA,EAAA,aAAe,eAGfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAGlBA,EAAA,eAAiB,iBACjBA,EAAA,WAAa,aACbA,EAAA,mBAAqB,qBAGrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBAGrBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,aAAe,eACfA,EAAA,YAAc,cACdA,EAAA,gBAAkB,kBAGlBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBACjBA,EAAA,oBAAsB,sBAGtBA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,oBAAsB,sBACtBA,EAAA,oBAAsB,sBACtBA,EAAA,oBAAsB,sBACtBA,EAAA,yBAA2B,2BAC3BA,EAAA,yBAA2B,2BAC3BA,EAAA,yBAA2B,2BAC3BA,EAAA,kBAAoB,oBAGpBA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAGhBA,EAAA,kBAAoB,oBACpBA,EAAA,kBAAoB,oBAGpBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBAGjBA,EAAA,eAAiB,iBACjBA,EAAA,eAAiB,iBAGjBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,kBAAoB,oBACpBA,EAAA,gBAAkB,kBAClBA,EAAA,wBAA0B,0BAC1BA,EAAA,wBAA0B,0BAC1BA,EAAA,2BAA6B,6BAG7BA,EAAA,qBAAuB,uBACvBA,EAAA,kBAAoB,oBACpBA,EAAA,uBAAyB,yBACzBA,EAAA,0BAA4B,4BAC5BA,EAAA,wBAA0B,0BAC1BA,EAAA,yBAA2B,2BAC3BA,EAAA,sBAAwB,wBAGxBA,EAAA,gBAAkB,kBAClBA,EAAA,gBAAkB,kBAClBA,EAAA,iBAAmB,mBAGnBA,EAAA,uBAAyB,yBACzBA,EAAA,oBAAsB,sBACtBA,EAAA,0BAA4B,4BAC5BA,EAAA,uBAAyB,yBACzBA,EAAA,gCAAkC,kCAClCA,EAAA,6BAA+B,+BAG/BA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,mBAAqB,qBACrBA,EAAA,uBAAyB,wBACzBA,EAAA,yBAA2B,2BAC3BA,EAAA,8BAAgC,gCAChCA,EAAA,sBAAwB,8BAGxBA,EAAA,YAAc,cACdA,EAAA,gBAAkB,kBAClBA,EAAA,eAAiB,iBAGjBA,EAAA,oBAAsB,sBACtBA,EAAA,qBAAuB,uBAGvBA,EAAA,6BAA+B,+BAC/BA,EAAA,6BAA+B,+BAC/BA,EAAA,0CAA4C,4CAG5CA,EAAA,oBAAsB,qBACtBA,EAAA,sBAAwB,uBAGxBA,EAAA,mBAAqB,qBAlMXA,OAAA,IAqMCC,EAA+B,CAC1C,eACA,eACA,eACA,sBACA,qBACA,wBACA,uBACA,qBACA,qBACA,qBACA,wBACA,2BACA,+BACF,EAEaC,GAAuB,CAAC,GAAGD,CAAmB,EAQ9CE,GAA8D,CAExE,eAAqB,4DACrB,eAAqB,4DACrB,eAAqB,4DACrB,sBAAuC,yCACvC,qBAAsC,wCACtC,wBAAyC,2CACzC,uBAAwC,0CACxC,eAAqB,6BACrB,uBAA8B,qCAC9B,wBAA8B,sCAC9B,gCAAsC,8CACtC,sBAA4B,oCAC5B,qBAA2B,iEAC3B,qBAA2B,iEAC3B,qBAA2B,iEAC3B,wBAA+B,iFAC/B,2BAAiC,mFACjC,gCAAsC,6CACtC,4BAAkC,OAClC,8BAA8B,OAC9B,2BAAiC,OACjC,0BAAgC,OAGhC,qBAA2B,8BAC3B,qBAA2B,8BAG3B,oBAA0B,2BAC1B,oBAA0B,2BAG1B,mBAAyB,4BACzB,mBAAyB,4BACzB,qBAA2B,8BAC3B,uBAA6B,gCAC7B,aAAmB,+BACnB,cAAoB,gCAGpB,wBAAyB,4BACzB,wBAAyB,4BACzB,0BAAiC,oCAGjC,cAAoB,2BACpB,cAAoB,2BACpB,cAAoB,2BACpB,iBAAuB,8BACvB,gBAAsB,6BACtB,kBAAwB,+BACxB,wBAA8B,qCAC9B,oBAA0B,iCAC1B,sBAA4B,mCAC5B,uBAA6B,oCAC7B,eAAqB,4BACrB,eAAqB,4BACrB,sBAA4B,mCAC5B,uBAA6B,oCAG7B,qBAA2B,qBAC3B,qBAA2B,qBAC3B,qBAA2B,qBAG3B,gBAAsB,gBACtB,gBAAsB,gBACtB,gBAAsB,gBACtB,eAAqB,eACrB,cAAoB,OACpB,kBAAwB,OAGxB,gBAAsB,6BACtB,gBAAsB,6BACtB,gBAAsB,6BACtB,iBAAuB,8BACvB,iBAAuB,8BACvB,sBAA4B,yBAG5B,eAAqB,eACrB,gBAAsB,gBAGtB,qBAA2B,kCAC3B,qBAA2B,kCAC3B,0BAAgC,qCAChC,0BAAgC,uCAChC,oBAA0B,OAC1B,kBAAwB,OACxB,6BAAmC,OAGnC,iBAAuB,8BACvB,iBAAuB,8BAGvB,oBAA0B,oBAC1B,oBAA0B,oBAG1B,+BAAqC,+BACrC,+BAAqC,+BACrC,4CAAkD,OAGlD,kBAAwB,kBACxB,iBAAuB,iBACvB,cAAoB,OAGpB,eAAqB,OACrB,eAAqB,OACrB,eAAqB,OACrB,gBAAsB,OACtB,kBAAwB,OAGxB,uBAA6B,OAC7B,oBAA0B,OAC1B,yBAA+B,OAC/B,4BAAkC,OAClC,0BAAgC,OAChC,2BAAiC,OACjC,wBAA8B,OAG9B,kBAAwB,OACxB,kBAAwB,OACxB,mBAAyB,OAGzB,yBAA+B,OAC/B,sBAA4B,OAC5B,4BAAkC,OAClC,yBAA+B,OAC/B,kCAAwC,OACxC,+BAAqC,OAGrC,iBAAuB,OACvB,iBAAuB,OAGvB,eAAqB,OACrB,eAAqB,OACrB,eAAqB,OACrB,gBAAsB,OACtB,sBAA4B,OAC5B,sBAA4B,OAC5B,sBAA4B,OAC5B,2BAAiC,OACjC,2BAAiC,OACjC,2BAAiC,OACjC,oBAA0B,OAG1B,iBAAuB,OACvB,aAAmB,OACnB,qBAA2B,OAG3B,oBAA0B,OAC1B,mBAAyB,OAGzB,+BAAqC,OACrC,gCAAsC,OACtC,kCAAwC,OACxC,4BAAmC,OAGnC,qBAA4B,OAC5B,uBAA8B,OAG9B,qBAA2B,MAC9B,ECjZO,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,eAFLA,OAAA,IA0BAC,OACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,aAAe,eAHLA,OAAA,IC9BL,IAAKC,OACVA,EAAA,KAAO,OAEPA,EAAA,IAAM,MAENA,EAAA,KAAO,OAEPA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,mBAAqB,qBAErBA,EAAA,SAAW,WACXA,EAAA,iBAAmB,mBACnBA,EAAA,uBAAyB,yBACzBA,EAAA,WAAa,aAdHA,OAAA,IAiBAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SAFCA,OAAA,IAoBAC,OACVA,EAAA,SAAW,UACXA,EAAA,qBAAuB,uBAFbA,OAAA,ICnCL,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UAFAA,OAAA,IAKAC,QACVA,EAAA,MAAQ,QACRA,EAAA,SAAW,WAFDA,QAAA,IAKAC,OACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,kBAAoB,kBAPVA,OAAA,IAUAC,OACVA,EAAA,QAAU,UACVA,EAAA,YAAc,cACdA,EAAA,oBAAsB,oBAHZA,OAAA,IAMAC,QACVA,EAAA,8BAAgC,6BAChCA,EAAA,2BAA6B,yBAFnBA,QAAA,IAQCC,GAAgB,CAC3BC,EACAC,EACAC,IAEOF,IAAc,SAAmBC,IAAc,SAG3CE,GAAiB,CAC5BH,EACAC,EACAC,IAEOF,IAAc,SAAmBC,IAAc,UAG3CG,GAAkB,CAC7BJ,EACAE,IAEOF,IAAc,WCtDhB,IAAKK,QACVA,EAAA,YAAc,aACdA,EAAA,YAAc,aACdA,EAAA,sBAAwB,uBACxBA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,iBAAmB,kBACnBA,EAAA,uBAAyB,uBACzBA,EAAA,aAAe,cACfA,EAAA,QAAU,UACVA,EAAA,oBAAsB,oBAEtBA,EAAA,iBAAmB,kBACnBA,EAAA,sBAAwB,sBACxBA,EAAA,YAAc,aACdA,EAAA,kBAAoB,kBAjBVA,QAAA,ICCL,IAAMC,GAAuB,mBAExBC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,aAAe,eAVLA,QAAA,IAaCC,GAAgB,CAC3B,SACA,OACA,SACA,SACA,cACA,aACF,EAEYC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,OAAS,SAHCA,QAAA,IAMAC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,YAAc,aACdA,EAAA,OAAS,SAZCA,QAAA,IAeAC,QACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAChBA,EAAA,QAAU,UACVA,EAAA,WAAa,aACbA,EAAA,GAAK,KACLA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,cAAgB,gBAChBA,EAAA,UAAY,YACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,YACZA,EAAA,SAAW,WAjBDA,QAAA,IAoBAC,QACVA,IAAA,QAAU,GAAV,UACAA,IAAA,QAAU,GAAV,UAFUA,QAAA,IAKAC,QACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,OAAS,QARCA,QAAA,IAWAC,QACVA,EAAA,oBAAsB,aACtBA,EAAA,kBAAoB,oBACpBA,EAAA,cAAgB,gBAHNA,QAAA,IA4GAC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SAJCA,QAAA,IC1LL,IAAKC,OACVA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,UAAY,WACZA,EAAA,MAAQ,QACRA,EAAA,OAAS,SANCA,OAAA,IASAC,OACVA,EAAA,SAAW,WACXA,EAAA,aAAe,cACfA,EAAA,aAAe,cACfA,EAAA,OAAS,QAJCA,OAAA,IAOAC,OACVA,EAAA,MAAQ,QADEA,OAAA,IAIAC,OACVA,EAAA,IAAM,OACNA,EAAA,GAAK,MAFKA,OAAA,IAKL,SAASC,GACdC,EAC0B,CAC1B,OAAO,OAAO,OAAOF,CAAe,EAAE,SAASE,CAAwB,CACzE,CAEO,SAASC,GAAsBD,EAAuC,CAC3E,OAAO,OAAO,OAAOL,CAAa,EAAE,SAASK,CAAsB,CACrE,CAEO,SAASE,GAAsBF,EAAuC,CAC3E,OAAO,OAAO,OAAOJ,CAAa,EAAE,SAASI,CAAsB,CACrE,CAEO,SAASG,GAAsBH,EAAuC,CAC3E,OAAO,OAAO,OAAOH,CAAa,EAAE,SAASG,CAAsB,CACrE,CAQO,IAAKI,OACVA,EAAA,oBAAsB,qBADZA,OAAA,IAuJAC,OACVA,EAAA,WAAa,MACbA,EAAA,YAAc,OAFJA,OAAA,IAKAC,QACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MAFIA,QAAA,IAKAC,QACVA,EAAA,OAAS,QACTA,EAAA,SAAW,KACXA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,WACTA,EAAA,SAAW,UANDA,QAAA,ICxML,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SAFCA,QAAA,ICdL,IAAKC,QAKVA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,YAAc,cAVJA,QAAA,IAaAC,QACVA,EAAA,WAAa,aACbA,EAAA,cAAgB,gBAChBA,EAAA,qBAAuB,uBACvBA,EAAA,mBAAqB,qBACrBA,EAAA,qBAAuB,uBACvBA,EAAA,kBAAoB,oBACpBA,EAAA,cAAgB,iBAChBA,EAAA,oBAAsB,sBARZA,QAAA,ICHL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OAFGA,QAAA,IAYAC,QACVA,EAAA,UAAY,MACZA,EAAA,WAAa,OAFHA,QAAA,IAsFCC,GAAcC,GAClB,OAAOA,GAAQ,UAAYA,EAAI,KAAOA,EAAI,KCzG5C,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,UAAY,YACZA,EAAA,KAAO,OALGA,QAAA,ICNL,IAAKC,QACVA,EAAA,kBAAoB,oBAGpBA,EAAA,+BAAiC,iCAJvBA,QAAA,IAOCC,GAAsB,CAChC,kBAAgC,GAGhC,+BAA6C,EAChD,ECZO,IAAKC,QACVA,EAAA,WAAa,aACbA,EAAA,YAAc,cAFJA,QAAA,ICEL,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,KAAO,OACPA,EAAA,OAAS,UALCA,QAAA,IAQAC,QACVA,EAAA,MAAQ,QACRA,EAAA,cAAgB,KAFNA,QAAA,IAKCC,GAAiB,CAC5B,OAAQ,oBACR,MAAO,mBACP,aAAc,eACd,wBACF,EClBO,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,MAAQ,QAJEA,QAAA,IAQAC,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QALEA,QAAA,IASAC,QACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,eAAiB,gBACjBA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,YAAc,cAXJA,QAAA,IAcAC,QACVA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,KAAO,OAHGA,QAAA,IC4BL,IAAKC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,iBAAmB,iBAHTA,QAAA,ICxCL,IAAMC,GACXC,GACsCA,EAAQ,WAAa,WAoChDC,GACXD,GAEAA,EAAQ,WAAa,YAAqBA,EAAQ,iBAOvCE,GAAkBF,GAC7BA,EAAQ,kBAEGG,GAAqBH,GAChCA,EAAQ,iBAEGI,GAAgBJ,GAC3BA,EAAQ,WAAa,MAEXK,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YAFFA,QAAA,IAKAC,QACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YAFFA,QAAA,IAKNC,GAA+C,CACnD,WACF,EACO,SAASC,GAAwBC,EAAuC,CAC7E,OAAOF,GAAuB,SAASE,CAAQ,CACjD,CAWO,IAAKC,QACVA,EAAA,IAAM,MACNA,EAAA,SAAW,WAFDA,QAAA,IChGL,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,WAAa,aARHA,QAAA,IAWAC,QACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,aAAe,cACfA,EAAA,YAAc,aACdA,EAAA,YAAc,aACdA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,eAAiB,gBACjBA,EAAA,KAAO,OACPA,EAAA,YAAc,aACdA,EAAA,WAAa,aACbA,EAAA,kBAAoB,mBACpBA,EAAA,kBAAoB,oBACpBA,EAAA,eAAiB,iBAnBPA,QAAA,IAsBAC,OACVA,EAAA,UAAY,YACZA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,WAAa,aAPHA,OAAA,IAUAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAHAA,QAAA,IAMAC,OACVA,EAAA,gBAAkB,kBAClBA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,aAAe,eACfA,EAAA,iBAAmB,mBACnBA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBAChBA,EAAA,WAAa,aACbA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,WAAa,aACbA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,uBAAyB,yBACzBA,EAAA,OAAS,SAETA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,WAAa,aACbA,EAAA,IAAM,MAvBIA,OAAA,IA4DCC,GAAwB,CACnC,GAAG,OAAO,OAAOD,CAAsB,EACvC,GAAG,OAAO,OAAOF,CAAuB,CAC1C,EAmDYI,QACVA,EAAA,QAAU,UADAA,QAAA,IAIAC,QACVA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,yBAFPA,QAAA,IAKAC,QACVA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAChBA,EAAA,iBAAmB,0BALTA,QAAA,IAQAC,QACVA,EAAA,uBAAyB,qEADfA,QAAA,IAsEAC,QACVA,EAAA,SAAW,WACXA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,gBAAkB,cAClBA,EAAA,WAAa,aAPHA,QAAA,IAkBAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAFCA,QAAA,IC3HL,IAAKC,QACVA,EAAA,aAAe,gBAEfA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,YAAc,cALJA,QAAA,IAuFAC,QACVA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,OAAS,SACTA,EAAA,MAAQ,QALEA,QAAA,IC9NL,IAAKC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAFCA,QAAA,ICsBL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,UAAY,OACZA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OANGA,QAAA,IAmCAC,QACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,OAAS,SANCA,QAAA,ICtEL,IAAMC,GAA2B,cAE5BC,QACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WAFDA,QAAA,ICLL,IAAKC,OAKVA,EAAA,OAAS,SAMTA,EAAA,SAAW,WAMXA,EAAA,QAAU,UAMVA,EAAA,OAAS,SAKTA,EAAA,QAAU,UAMVA,EAAA,MAAQ,QAMRA,EAAA,SAAW,WAMXA,EAAA,YAAc,aAMdA,EAAA,kBAAoB,oBAQpBA,EAAA,KAAO,OAOPA,EAAA,QAAU,UAQVA,EAAA,KAAO,OAOPA,EAAA,GAAK,KAMLA,EAAA,KAAO,OAKPA,EAAA,SAAW,WAMXA,EAAA,UAAY,YAKZA,EAAA,iBAAmB,mBAMnBA,EAAA,OAAS,SAQTA,EAAA,aAAe,eAIfA,EAAA,oBAAsB,sBA1HZA,OAAA,IA6HCC,GAAY,CACvB,oBACA,aAEA,eACA,OACA,OACF,EAQaC,GAAe,CAAC,SAAkB,QAAgB,EAExD,SAASC,GAAUC,EAAiB,CACzC,OAAOF,GAAa,SAASE,CAAI,CACnC,CAEO,IAAMC,GAAe,CAC1B,SACA,WACA,UACA,SACA,UACA,WACA,SACA,IACF,EAEO,SAASC,GAAWF,EAAiB,CAC1C,OAAOC,GAAa,SAASD,CAAI,CACnC,CC/JO,IAAKG,OACVA,EAAA,YAAc,cACdA,EAAA,YAAc,cACdA,EAAA,aAAe,eAHLA,OAAA,IAMAC,QACVA,EAAA,YAAc,cADJA,QAAA,IASAC,QACVA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,WAAa,YACbA,EAAA,QAAU,SALAA,QAAA,IAQAC,QACVA,EAAA,MAAQ,QADEA,QAAA,IAIAC,QACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,GAAK,KAHKA,QAAA,IAMAC,QACVA,EAAA,KAAO,OAEPA,EAAA,MAAQ,QAHEA,QAAA,IC6NL,SAASC,GACdC,EACoC,CACpC,OAAOA,EAAM,aACf,CAEO,SAASC,GACdD,EAC8C,CAC9C,OAAOA,EAAM,iCACf,CAEO,SAASE,GACdF,EAC6C,CAC7C,OAAOA,EAAM,gCACf,CAEO,SAASG,GACdH,EAC6C,CAC7C,OAAOA,EAAM,gCACf,CC7MO,IAAKI,QACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,IAAM,MALIA,QAAA,IAQAC,QACVA,EAAA,YAAc,cADJA,QAAA,IA0DAC,QACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QACRA,EAAA,WAAa,QAHHA,QAAA,IC3IL,IAAMC,EAAY,IACZC,GAAc,SAEdC,GAAYC,GAAuB,GAAGA,CAAI,GAAGH,CAAS,GAEvDI,OACVA,EAAA,KAAO,KACPA,EAAA,MAAQ,KACRA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,SAAW,UACXA,EAAA,eAAiB,SACjBA,EAAA,iBAAmB,eACnBA,EAAA,OAAS,MACTA,EAAA,WAAa,aACbA,EAAA,gBAAkB,kBAClBA,EAAA,WAAa,SACbA,EAAA,MAAQ,KACRA,EAAA,IAAM,KACNA,EAAA,WAAa,KACbA,EAAA,KAAO,KACPA,EAAA,QAAU,KACVA,EAAA,SAAW,OACXA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,SAAW,OACXA,EAAA,UAAY,OACZA,EAAA,oBAAsB,UACtBA,EAAA,UAAY,KACZA,EAAA,uBAAyB,qBACzBA,EAAA,SAAW,UACXA,EAAA,YAAc,KApCJA,OAAA,IAyCNC,GAAsB,OAAO,OAAOD,CAAY,EAAE,KACtD,CAACE,EAAGC,IAAMA,EAAE,OAASD,EAAE,MACzB,EACO,SAASE,GAAgBC,EAAsC,CACpE,OAAOJ,GAAoB,KAAKK,GAC9BD,EAAG,WAAW,GAAGC,CAAO,GAAGV,CAAS,EAAE,CACxC,CACF,CAKO,IAAMW,GAAwC,CACnD,OACA,aACA,kBACA,KACA,KACA,KACA,SACA,QACA,WACA,OAEA,OACA,QACF,EAEYC,QACVA,EAAA,cAAgB,WADNA,QAAA,IAMAC,OACVA,EAAA,KAAO,OACPA,EAAA,WAAa,aAFHA,OAAA,IAONC,GAA6B,OAAO,OAAOD,CAAmB,EAAE,KACpE,CAACP,EAAGC,IAAMA,EAAE,OAASD,EAAE,MACzB,EACO,SAASS,GACdN,EACiC,CACjC,OAAOK,GAA2B,KAAKJ,GACrCD,EAAG,WAAW,GAAGC,CAAO,GAAGV,CAAS,EAAE,CACxC,CACF,CC7FO,IAAKgB,QACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UAFAA,QAAA,IAKAC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,OAAS,SAJCA,QAAA,IAOAC,QACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,UAAY,YAJFA,QAAA,ICZL,IAAKC,QACVA,EAAA,WAAa,aADHA,QAAA,ICHL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,UACPA,EAAA,IAAM,UACNA,EAAA,KAAO,OACPA,EAAA,QAAU,UALAA,QAAA,ICAL,IAAKC,QACVA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,SAAW,WANDA,QAAA,ICAL,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UAHAA,QAAA,ICAL,IAAKC,QACVA,EAAA,sBAAwB,sBACxBA,EAAA,wBAA0B,wBAFhBA,QAAA,ICgIL,IAAMC,GAAYC,GACvB,SAAUA,GAAU,WAAYA,EAErBC,GAAoBD,GAC/BA,EAAO,OAAS,WAELE,GAAgBF,GAC3BA,EAAO,OAAS,OAELG,GAAkBH,GAC7BA,EAAO,OAAS,SAELI,GAAgBJ,GAC3BA,EAAO,OAAS,OAELK,GAAgBL,GAC3BA,EAAO,OAAS,OAELM,GAAcN,GACzBA,EAAO,OAAS,KAENO,QACVA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,KAAO,OACPA,EAAA,GAAK,KARKA,QAAA,ICvIL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SAFCA,QAAA,IAoBL,SAASC,GAAUC,EAA6B,CACrD,MAAO,CAAC,CAAEA,EAAiB,YAC7B,CAkDO,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WAFDA,QAAA,IAgCL,SAASC,GAAOF,EAA4B,CACjD,MAAO,CAAC,CAAEA,EAAc,KAC1B,CCtHO,IAAKG,OACVA,EAAA,WAAa,aACbA,EAAA,UAAY,YACZA,EAAA,WAAa,aAHHA,OAAA,IAMAC,QACVA,EAAA,IAAM,MACNA,EAAA,OAAS,SACTA,EAAA,IAAM,MACNA,EAAA,KAAO,cAJGA,QAAA,IA6BCC,GAAkB,OAAO,OAAOF,CAAU,ECnChD,IAAKG,QACVA,EAAA,YAAc,aACdA,EAAA,mBAAqB,oBACrBA,EAAA,YAAc,cAHJA,QAAA,IAMCC,GAAkB,+BAI/B,EAEaC,GAAwB,wBAGrC,ECfO,IAAKC,QACVA,EAAA,WAAa,aADHA,QAAA,IAIAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAHAA,QAAA,IAgBCC,GAAsB,CACjCC,EACAC,IAEOD,IAAS,aCvBX,IAAME,GAAqB,SACrBC,GAAiB,WCJvB,IAAKC,QACVA,EAAA,QAAU,UACVA,EAAA,IAAM,MAFIA,QAAA,ICAL,IAAKC,OACVA,EAAA,UAAY,YACZA,EAAA,WAAa,aAFHA,OAAA,IAKAC,OACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SAFCA,OAAA,ICUZ,IAAAC,EAAkB,eAEZC,EAAW,IACd,OAAO,EACP,OAAOC,GAAKA,yBAAwD,CACnE,iDACF,CAAC,EAEGC,GAAoB,IAAE,OAAOF,EAAU,IAAE,OAAO,CAAC,EACjDG,EAAc,IAAE,OAAOH,EAAU,IAAE,IAAI,CAAC,EACxCI,EAAc,IAAE,OAAOJ,EAAU,IAAE,MAAM,CAAC,IAAE,IAAI,EAAE,MAAM,EAAG,IAAE,OAAO,CAAC,CAAC,CAAC,EACvEK,GAAc,IAAE,KAAK,IACzB,IAAE,OAAO,CACP,WAAY,IAAE,MAAM,IAAE,OAAOC,EAAqB,CAAC,CACrD,CAAC,CACH,EAEMC,EAAiB,IAAE,MAAM,CAAC,IAAE,OAAO,EAAG,IAAE,OAAO,CAAC,CAAC,EAEjDD,GAA+D,CAClE,OAAuBJ,GAAkB,SAAS,EAClD,MAAsBA,GAAkB,SAAS,EACjD,MAAsB,IACpB,OACCF,EACA,IAAE,MAAM,CACN,IAAE,OAAO,CAAE,KAAMO,EAAgB,IAAKA,CAAe,CAAC,EACtD,IAAE,OAAO,CAAE,KAAMA,CAAe,CAAC,EACjC,IAAE,OAAO,CAAE,IAAKA,CAAe,CAAC,CAClC,CAAC,CACH,EACC,SAAS,EACX,MAAsBJ,EAAY,SAAS,EAC3C,SAA0BA,EAAY,SAAS,EAC/C,MAAsBA,EAAY,SAAS,EAC3C,SAA0BA,EAAY,SAAS,EAC/C,MAAuBC,EAAY,SAAS,EAC5C,SAAyBA,EAAY,SAAS,EAC9C,YAA6BA,EAAY,SAAS,EAClD,YAA6BA,EAAY,SAAS,EAClD,KAAsBC,GAAY,SAAS,EAC3C,IAAqBA,GAAY,SAAS,CAC7C,EAEMG,GAAmB,IAAE,OAAO,CAChC,MAAO,IACJ,OAAO,CACN,MAAO,IAAE,QAAQ,EAAE,SAAS,EAC5B,cAAe,IAAE,WAAWC,CAAiB,EAAE,SAAS,EACxD,GAAGH,EACL,CAAC,EACA,SAAS,EACZ,SAAU,IAAE,QAAQ,EAAE,SAAS,EAC/B,SAAU,IAAE,MAAM,CAAC,IAAE,OAAO,EAAG,IAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EACpD,MAAO,IAAE,OAAO,EAAE,SAAS,EAC3B,KAAM,IAAE,OAAO,EAAE,QAAQ,EACzB,UAAW,IAAE,WAAWI,CAAS,EAAE,SAAS,EAC5C,SAAU,IAAE,WAAWC,CAAQ,EAAE,QAAQ,EACzC,QAAS,IAAE,OAAO,EAAE,SAAS,EAC7B,gBAAiB,IAAE,QAAQ,EAAE,SAAS,EACtC,UAAW,IAAE,QAAQ,EAAE,SAAS,CAClC,CAAC,EAEYC,GAA4BJ,GCGlC,SAASK,GACdC,EACmC,CACnC,MAAO,CAAC,EAAE,YAAaA,GAAYA,EAAS,QAC9C,CCjEO,IAAKC,QACVA,EAAA,QAAU,UADAA,QAAA,ICpBL,IAAKC,QACVA,EAAA,0CAA4C,4CADlCA,QAAA,ICEL,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,kBAAoB,oBACpBA,EAAA,WAAa,aACbA,EAAA,QAAU,UACVA,EAAA,OAAS,SANCA,QAAA,ICFL,IAAKC,QACVA,EAAA,IAAM,MADIA,QAAA,ICAL,IAAKC,QACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAFGA,QAAA,IAKAC,QACVA,EAAA,YAAc,cADJA,QAAA,ICLL,IAAWC,QAChBA,EAAA,SAAW,WACXA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,WAAa,aACbA,EAAA,cAAgB,gBAChBA,EAAA,aAAe,eANCA,QAAA,ICaX,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,WAAa,aAFHA,QAAA,ICbL,IAAKC,QACVA,EAAA,SAAW,UACXA,EAAA,WAAa,OACbA,EAAA,SAAW,OAHDA,QAAA",
|
|
6
|
+
"names": ["src_exports", "__export", "AIOperationEnum", "APP_QUOTA_NAMES", "AUDIT_LOG_TYPE", "AccountSSOProvider", "AccountSSOProviderType", "AnalyticsEvent", "AppBackupStatus", "AppBackupTrigger", "AppBackupType", "AppEnvironment", "ArrayOperator", "AsyncEvents", "AuditLogResourceStatus", "AuditLogSystemUser", "AuditedEventFriendlyName", "AuthType", "AutoFieldSubType", "AutoReason", "AutomationActionStepId", "AutomationCustomIOType", "AutomationEventType", "AutomationFeature", "AutomationIOType", "AutomationStatus", "AutomationStepIdArray", "AutomationStepStatus", "AutomationStepType", "AutomationStoppedReason", "AutomationTriggerStepId", "BBReferenceFieldSubType", "BREAKDOWN_QUOTA_NAMES", "BasicOperator", "BindingMode", "BodyType", "BreakdownQuotaName", "BuiltinPermissionID", "CalculationType", "CommandWord", "ConfigType", "ConstantQuotaName", "DSPlusOperation", "DatasourceFeature", "DatasourceFieldType", "DeploymentStatus", "DocumentType", "DocumentTypesToImport", "EmailTemplatePurpose", "EmptyFilterOption", "Event", "EventPublishType", "EventType", "Feature", "FeatureFlag", "FeatureFlagDefaults", "FieldType", "FilterType", "FormulaType", "GroupByTypes", "GroupType", "Hosting", "HttpMethod", "INTERNAL_TABLE_SOURCE_ID", "IdentityType", "IncludeRelationship", "InitType", "InternalSearchFilterOperator", "InternalTable", "JsonFieldSubType", "JsonTypes", "LockName", "LockType", "LogicalOperator", "LoginMethod", "LoopStepType", "MaintenanceType", "MetadataType", "Model", "MonthlyQuotaName", "NumericTypes", "Operation", "OperationFieldTypeEnum", "PASSWORD_REPLACEMENT", "PLUGIN_TYPE_ARR", "PermissionLevel", "PermissionSource", "PermissionType", "PingSource", "PlanModel", "PlanType", "PluginSource", "PluginType", "PriceDuration", "QueryType", "QuotaType", "QuotaUsageType", "RangeOperator", "RelationshipType", "RequestType", "RestAuthType", "RowExportFormat", "RowOperations", "SEPARATOR", "SQLiteType", "SSOProviderType", "ScheduleRepeatPeriod", "ScheduleType", "SearchIndex", "ServiceType", "SidePanel", "SortOption", "SortOrder", "SortType", "SourceName", "SqlClient", "StaticQuotaName", "TableSourceType", "TemplateType", "TenantResolutionStrategy", "Theme", "UILogicalOperator", "UNICODE_MAX", "UserGroupSyncEvents", "UserStatus", "ViewCalculation", "ViewV2Type", "VirtualDocumentType", "WebhookActionType", "canGroupBy", "getDocumentType", "getVirtualDocumentType", "isAIConfig", "isAppBackupMetadata", "isArraySearchOperator", "isBasicSearchOperator", "isCloudAccount", "isConfig", "isConstantQuota", "isCreatePasswordAccount", "isDidNotTriggerResponse", "isDocument", "isGoogleConfig", "isLogicalSearchOperator", "isManyToMany", "isManyToOne", "isMonthlyQuota", "isNumeric", "isOIDCConfig", "isOneToMany", "isPasswordAccount", "isRangeSearchOperator", "isRelationshipField", "isSCIMConfig", "isSMTPConfig", "isSSOAccount", "isSSOUser", "isSelfHostAccount", "isSettingsConfig", "isStaticQuota", "isUser", "isVerifiableSSOProvider", "prefixed", "searchRowRequestValidator", "__toCommonJS", "AIOperationEnum", "OperationFieldTypeEnum", "Hosting", "Event", "UserGroupSyncEvents", "AsyncEvents", "AuditedEventFriendlyName", "GroupType", "IdentityType", "PlanType", "PriceDuration", "PlanModel", "QuotaUsageType", "QuotaType", "StaticQuotaName", "MonthlyQuotaName", "ConstantQuotaName", "isStaticQuota", "quotaType", "usageType", "name", "isMonthlyQuota", "isConstantQuota", "Feature", "PASSWORD_REPLACEMENT", "Operation", "RowOperations", "QueryType", "DatasourceFieldType", "SourceName", "IncludeRelationship", "FilterType", "DatasourceFeature", "DSPlusOperation", "BasicOperator", "ArrayOperator", "RangeOperator", "LogicalOperator", "isLogicalSearchOperator", "value", "isBasicSearchOperator", "isArraySearchOperator", "isRangeSearchOperator", "InternalSearchFilterOperator", "EmptyFilterOption", "UILogicalOperator", "SqlClient", "LoginMethod", "LockType", "LockName", "SearchIndex", "SortOption", "isDocument", "doc", "TenantResolutionStrategy", "FeatureFlag", "FeatureFlagDefaults", "AppEnvironment", "CommandWord", "InitType", "AnalyticsEvent", "PermissionLevel", "BuiltinPermissionID", "PermissionType", "PermissionSource", "RowExportFormat", "isCreatePasswordAccount", "account", "isPasswordAccount", "isCloudAccount", "isSelfHostAccount", "isSSOAccount", "AccountSSOProviderType", "AccountSSOProvider", "verifiableSSOProviders", "isVerifiableSSOProvider", "provider", "AuthType", "AutomationIOType", "AutomationCustomIOType", "AutomationTriggerStepId", "AutomationStepType", "AutomationActionStepId", "AutomationStepIdArray", "AutomationFeature", "AutomationStepStatus", "AutomationStatus", "AutomationStoppedReason", "AutomationEventType", "LoopStepType", "Model", "RequestType", "RestAuthType", "BodyType", "HttpMethod", "INTERNAL_TABLE_SOURCE_ID", "TableSourceType", "FieldType", "JsonTypes", "NumericTypes", "isNumeric", "type", "GroupByTypes", "canGroupBy", "RelationshipType", "AutoReason", "AutoFieldSubType", "JsonFieldSubType", "FormulaType", "BBReferenceFieldSubType", "isRelationshipField", "field", "isManyToMany", "isOneToMany", "isManyToOne", "CalculationType", "ViewV2Type", "ViewCalculation", "SEPARATOR", "UNICODE_MAX", "prefixed", "type", "DocumentType", "sortedDocumentTypes", "a", "b", "getDocumentType", "id", "docType", "DocumentTypesToImport", "InternalTable", "VirtualDocumentType", "sortedVirtualDocumentTypes", "getVirtualDocumentType", "AppBackupType", "AppBackupStatus", "AppBackupTrigger", "WebhookActionType", "SQLiteType", "Theme", "DeploymentStatus", "MetadataType", "isConfig", "config", "isSettingsConfig", "isSMTPConfig", "isGoogleConfig", "isOIDCConfig", "isSCIMConfig", "isAIConfig", "ConfigType", "SSOProviderType", "isSSOUser", "user", "UserStatus", "isUser", "PluginType", "PluginSource", "PLUGIN_TYPE_ARR", "BreakdownQuotaName", "APP_QUOTA_NAMES", "BREAKDOWN_QUOTA_NAMES", "ScheduleType", "ScheduleRepeatPeriod", "isAppBackupMetadata", "type", "metadata", "AuditLogSystemUser", "AUDIT_LOG_TYPE", "PingSource", "SortOrder", "SortType", "import_zod", "fieldKey", "s", "stringBasicFilter", "basicFilter", "arrayFilter", "logicFilter", "queryFilterValidation", "stringOrNumber", "searchRowRequest", "EmptyFilterOption", "SortOrder", "SortType", "searchRowRequestValidator", "isDidNotTriggerResponse", "response", "AuditLogResourceStatus", "EventPublishType", "EmailTemplatePurpose", "TemplateType", "ServiceType", "MaintenanceType", "EventType", "BindingMode", "SidePanel"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/types",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.3",
|
|
4
4
|
"description": "Budibase types",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"scim-patch": "^0.8.1"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "2983095231e843a4d78238f2c167b5e01f9a40d1"
|
|
30
30
|
}
|