@budibase/server 3.27.1 → 3.27.2

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.
package/dist/query.js CHANGED
@@ -430,7 +430,7 @@ $1`)};UT.parseAttributes=o(function(t){return Object.keys(t).map(function(r){var
430
430
 
431
431
  Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta. Donec sollicitudin molestie malesuada. Pellentesque in ipsum id orci porta dapibus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus.
432
432
 
433
- Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta. Donec sollicitudin molestie malesuada. Pellentesque in ipsum id orci porta dapibus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.`;u2e.exports=M5t});var x8=v((l2e,f2e)=>{"use strict";var Pn=Jn(),ph=MT(),tt=f2e.exports,U5t=c2e();tt.append=function(e,t){return typeof e=="string"&&typeof t=="string"?e+t:e};tt.camelcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return t.toUpperCase()})};tt.capitalize=function(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)};tt.capitalizeAll=function(e){if(typeof e!="string")return"";if(Pn.isString(e))return e.replace(/\w\S*/g,function(t){return tt.capitalize(t)})};tt.center=function(e,t){if(typeof e!="string")return"";for(var r="",n=0;n<t;)r+="&nbsp;",n++;return r+e+r};tt.chop=function(e){return typeof e!="string"?"":ph.chop(e)};tt.dashcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"-"+t})};tt.dotcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"."+t})};tt.downcase=function(){return tt.lowercase.apply(this,arguments)};tt.ellipsis=function(e,t){if(Pn.isString(e))return e.length<=t?e:tt.truncate(e,t)+"\u2026"};tt.hyphenate=function(e){return typeof e!="string"?"":e.split(" ").join("-")};tt.isString=function(e){return typeof e=="string"};tt.lowercase=function(e){return Pn.isObject(e)&&e.fn?e.fn(this).toLowerCase():typeof e!="string"?"":e.toLowerCase()};tt.occurrences=function(e,t){if(typeof e!="string")return"";for(var r=t.length,n=0,i=0;(n=e.indexOf(t,n))>-1;)i++,n+=r;return i};tt.pascalcase=function(e){return typeof e!="string"?"":(e=ph.changecase(e,function(t){return t.toUpperCase()}),e.charAt(0).toUpperCase()+e.slice(1))};tt.pathcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"/"+t})};tt.plusify=function(e,t){return typeof e!="string"?"":(Pn.isString(t)||(t=" "),e.split(t).join("+"))};tt.prepend=function(e,t){return typeof e=="string"&&typeof t=="string"?t+e:e};tt.raw=function(e){var t=e.fn(),r=Pn.options(this,e);if(r.escape!==!1)for(var n=0;(n=t.indexOf("{{",n))!==-1;)t[n-1]!=="\\"&&(t=t.slice(0,n)+"\\"+t.slice(n)),n+=3;return t};tt.remove=function(e,t){return typeof e!="string"?"":Pn.isString(t)?e.split(t).join(""):e};tt.removeFirst=function(e,t){return typeof e!="string"?"":Pn.isString(t)?e.replace(t,""):e};tt.replace=function(e,t,r){return typeof e!="string"?"":Pn.isString(t)?(Pn.isString(r)||(r=""),e.split(t).join(r)):e};tt.replaceFirst=function(e,t,r){return typeof e!="string"?"":Pn.isString(t)?(Pn.isString(r)||(r=""),e.replace(t,r)):e};tt.reverse=Wy().reverse;tt.sentence=function(e){return typeof e!="string"?"":e.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})};tt.snakecase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"_"+t})};tt.split=function(e,t){return typeof e!="string"?"":(Pn.isString(t)||(t=","),e.split(t))};tt.startsWith=function(e,t,r){var n=[].slice.call(arguments);return r=n.pop(),Pn.isString(t)&&t.indexOf(e)===0?r.fn(this):typeof r.inverse=="function"?r.inverse(this):""};tt.titleize=function(e){if(typeof e!="string")return"";for(var t=e.replace(/[- _]+/g," "),r=t.split(" "),n=r.length,i=[],s=0;n--;){var a=r[s++];i.push(l2e.capitalize(a))}return i.join(" ")};tt.trim=function(e){return typeof e=="string"?e.trim():""};tt.trimLeft=function(e){if(Pn.isString(e))return e.replace(/^\s+/,"")};tt.trimRight=function(e){if(Pn.isString(e))return e.replace(/\s+$/,"")};tt.truncate=function(e,t,r){if(Pn.isString(e))return typeof r!="string"&&(r=""),e.length>t?e.slice(0,t-r.length)+r:e};tt.truncateWords=function(e,t,r){if(Pn.isString(e)&&!isNaN(t)){typeof r!="string"&&(r="\u2026");var n=Number(t),i=e.split(/[ \t]/);if(n>=i.length)return e;i=i.slice(0,n);var s=i.join(" ").trim();return s+r}};tt.upcase=function(){return tt.uppercase.apply(this,arguments)};tt.uppercase=function(e){return Pn.isObject(e)&&e.fn?e.fn(this).toUpperCase():typeof e!="string"?"":e.toUpperCase()};tt.lorem=function(e){return(isNaN(e)||e<1||!e)&&(e=11),U5t.substring(0,e)}});var P8=v((a8r,d2e)=>{"use strict";var D8=require("url"),GT=Jn(),F5t=require("querystring"),hh=d2e.exports;hh.encodeURI=function(e){if(GT.isString(e))return encodeURIComponent(e)};hh.escape=function(e){if(GT.isString(e))return F5t.escape(e)};hh.decodeURI=function(e){if(GT.isString(e))return decodeURIComponent(e)};hh.urlResolve=function(e,t){return D8.resolve(e,t)};hh.urlParse=function(e){return D8.parse(e)};hh.stripQuerystring=function(e){if(GT.isString(e))return e.split("?")[0]};hh.stripProtocol=function(e){if(GT.isString(e)){var t=D8.parse(e);return t.protocol="",t.format()}}});var N8=v((u8r,p2e)=>{"use strict";var B5t=require("uuid"),q5t=p2e.exports;q5t.uuid=function(){return B5t.v4()}});var m2e=v((c8r,h2e)=>{"use strict";h2e.exports={array:Wy(),code:HFe(),collection:a1e(),comparison:a8(),html:R1e(),i18n:I1e(),inflection:D1e(),match:GBe(),math:O8(),misc:HBe(),number:I8(),object:FN(),path:o2e(),regex:C8(),string:x8(),url:P8(),uuid:N8()}});var g2e=v((l8r,Hy)=>{"use strict";var $T=m2e();Hy.exports=o(function(t,r){typeof t=="string"?t=[t]:Array.isArray(t)||(r=t,t=null),r=r||{};var n=r.handlebars||r.hbs||PT();if(Hy.exports.handlebars=n,t)t.forEach(function(i){n.registerHelper($T[i])});else for(let i in $T){let s=$T[i];n.registerHelper(s)}return n.helpers},"helpers");for(let e in $T){let t=$T[e];Hy.exports[e]=function(r){r=r||{};var n=r.handlebars||r.hbs||PT();return Hy.exports.handlebars=n,n.registerHelper(t),t}}Hy.exports.utils=MT()});var KGe=v(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.InvalidRemoveOpPath=ar.NoTarget=ar.InvalidScimPatchRequest=ar.NoPathInScimPatchOp=ar.FilterArrayTargetNotFound=ar.FilterOnEmptyArray=ar.InvalidScimPatchOp=ar.RemoveValueNotArray=ar.RemoveValueNestedArrayNotSupported=ar.InvalidScimRemoveValue=ar.InvalidScimPatch=ar.ScimError=void 0;var Wv=class extends Error{static{o(this,"ScimError")}constructor(t){super(),this.scimCode=t}};ar.ScimError=Wv;var Bf=class extends Wv{static{o(this,"InvalidScimPatch")}constructor(t,r="invalidSyntax"){super(r),this.message=`Invalid SCIM Patch: ${t}`}};ar.InvalidScimPatch=Bf;var Gv=class extends Wv{static{o(this,"InvalidScimRemoveValue")}constructor(t,r="invalidSyntax"){super(r),this.message=`Invalid SCIM Remove Operation: ${t}`}};ar.InvalidScimRemoveValue=Gv;var lY=class extends Gv{static{o(this,"RemoveValueNestedArrayNotSupported")}constructor(){super("Invalid patch value, remove does not support arrays inside arrays.")}};ar.RemoveValueNestedArrayNotSupported=lY;var fY=class extends Gv{static{o(this,"RemoveValueNotArray")}constructor(){super("Remove with patch value is supported only for array properties.")}};ar.RemoveValueNotArray=fY;var $v=class extends Bf{static{o(this,"InvalidScimPatchOp")}constructor(t){super(`${t}`,"invalidSyntax")}};ar.InvalidScimPatchOp=$v;var dY=class extends $v{static{o(this,"FilterOnEmptyArray")}constructor(t,r,n){super(`${t}`),this.attrName=r,this.valuePath=n}};ar.FilterOnEmptyArray=dY;var pY=class extends $v{static{o(this,"FilterArrayTargetNotFound")}constructor(t,r,n,i){super(`${t}`),this.attrName=r,this.valuePath=n,this.schema=i}};ar.FilterArrayTargetNotFound=pY;var hY=class extends Bf{static{o(this,"NoPathInScimPatchOp")}constructor(){super('Missing path in "remove" patch operation',"noTarget")}};ar.NoPathInScimPatchOp=hY;var mY=class extends Bf{static{o(this,"InvalidScimPatchRequest")}constructor(t){super(`The SCIM patch request is invalid: ${t}`)}};ar.InvalidScimPatchRequest=mY;var gY=class extends Bf{static{o(this,"NoTarget")}constructor(t){super(`Target location is a multi-valued attribute for which a value selection filter (${t}) has been supplied and no record match was made.`,"noTarget")}};ar.NoTarget=gY;var yY=class extends Bf{static{o(this,"InvalidRemoveOpPath")}constructor(){super("Path specified in 'remove' operation doesn't exist")}};ar.InvalidRemoveOpPath=yY});var XGe=v(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.parseExpression=fu.parseFilter=fu.Tokens=fu.tokenizer=void 0;var YGe={type:"EOT",literal:""};function AXt(e){let t=[],r=e,n=/^(?:(\s+)|(-?\d+(?:\.\d+)?(?:[eE][-+]?\d+)?(?![-\w._:\/\)\s]))|("(?:[^"\\]|\\.|\n)*")|([[()]|]\.?)|(\w[-\w._:\/%]*))/,i;for(;i=n.exec(r);){if(!(i[1]||i[0].length===0))if(i[2])t.push({literal:i[2],type:"Number"});else if(i[3]){let s=i[3].replace(/\\(?!")/g,"\\\\");t.push({literal:s,type:"Quoted"})}else i[4]?t.push({literal:i[4],type:"Bracket"}):i[5]&&t.push({literal:i[5],type:"Word"});r=r.substring(i.index+i[0].length)}if(r.length!==0)throw new Error(`unexpected token ${r}`);return t.push(YGe),t}o(AXt,"tokenizer");fu.tokenizer=AXt;var bY=class{static{o(this,"Tokens")}getList(){return this.list.map((t,r)=>r==this.i?`[${t.literal}]`:t.literal)}peek(){return this.current||YGe}constructor(t){this.list=t,this.i=0,this.current=this.list[this.i]}forward(){return this.current=this.list[++this.i],this}shift(){let t=this.peek();return this.forward(),t}};fu.Tokens=bY;var RXt=new Set(["eq","ne","co","sw","ew","gt","lt","ge","le"]),OXt=new Set(["pr"]);function _Y(e){return XL(ZL(e),e,Dh.LOWEST)}o(_Y,"parseFilter");fu.parseFilter=_Y;function ZL(e){let t=e.shift();if(t.literal=="("){let r=_Y(e),n=e.shift();if(n.literal!==")")throw new Error(`Unexpected token [${n.literal}(${n.type})] expected ')'`);return r}else if(t.literal.toLowerCase()=="not"){let r={op:"not",filter:ZL(e)};return XL(r,e,Dh.NOT)}else{if(t.type=="Word")return JGe(t,e);throw new Error(`Unexpected token ${t.literal} (${t.type})`)}}o(ZL,"parseExpression");fu.parseExpression=ZL;var Dh;(function(e){e[e.LOWEST=1]="LOWEST",e[e.OR=2]="OR",e[e.AND=3]="AND",e[e.NOT=4]="NOT"})(Dh||(Dh={}));var zGe={or:Dh.OR,and:Dh.AND,not:Dh.NOT};function XL(e,t,r){let n=t.peek().literal.toLowerCase(),i=zGe[n];if(!i||r>=i)return e;let s=[e];for(;t.peek().literal.toLowerCase()===n;){let a=ZL(t.forward()),u=t.peek().literal.toLowerCase();zGe[u]>i&&(a=XL(a,t,i)),s.push(a)}return XL({op:n,filters:s},t,r)}o(XL,"parseInxif");function JGe(e,t){if(e.type!=="Word")throw new Error(`Unexpected token ${e.literal} expected Word`);let r=e.literal,n=t.shift(),i=n.literal.toLowerCase();if(RXt.has(i)){let s=IXt(t);return{op:i,attrPath:r,compValue:s}}else{if(OXt.has(i))return{op:i,attrPath:r};if(i==="["){let s=_Y(t),a=t.shift();if(a.literal[0]!=="]")throw new Error(`Unexpected token ${a.literal} expected ']'`);let u={op:"[]",attrPath:r,valFilter:s};if(a.literal[1]!=="."||t.peek().type!=="Word")return u;let c=t.shift();return c.literal=`${r}.${c.literal}`,{op:"and",filters:[u,JGe(c,t)]}}else throw new Error(`Unexpected token ${r} ${n.literal} as valFilter operator`)}}o(JGe,"readValFilter");function IXt(e){let t=e.shift();try{let r=JSON.parse(t.literal);if(r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;throw new Error(`${t.literal} is ${typeof r} (un supported value)`)}catch{throw new Error(`[${t.literal}(${t.type})] is not json`)}}o(IXt,"parseCompValue")});var ZGe=v(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});tk.Tester=void 0;var ek=class{static{o(this,"Tester")}constructor(){}test(t,r){switch(r.op){case"or":return r.filters.some(n=>this.test(t,n));case"and":return r.filters.every(n=>this.test(t,n));case"not":return!this.test(t,r.filter);case"[]":return this.attrTest(this.attrPath(r.attrPath),t,n=>this.test(n,r.valFilter));case"pr":return this.attrTest(this.attrPath(r.attrPath),t,n=>this[r.op](n));case"eq":case"ne":case"co":case"sw":case"ew":case"gt":case"lt":case"ge":case"le":return this.attrTest(this.attrPath(r.attrPath),t,n=>this[r.op](n,r.compValue))}}attrPath(t){let r=t.lastIndexOf(":");return r===-1?t.split("."):[t.substring(0,r),...t.substring(r+1).split(".")]}attrTest(t,r,n){if(t.length===0)return n(r);if(typeof r!="object"||r===null)return!1;if(Array.isArray(r))return r.some(a=>this.attrTest(t,a,n));let i=t[0].toLowerCase(),s=Object.keys(r).find(a=>a.toLowerCase()===i);return s===void 0?!1:this.attrTest(t.slice(1),r[s],n)}pr(t,r){return t!==void 0}eq(t,r){return t===r}ne(t,r){return t!==r}gt(t,r){return r!==null&&t>r}lt(t,r){return r!==null&&t<r}le(t,r){return r!==null&&t<=r}ge(t,r){return r!==null&&t>=r}sw(t,r){return r!==null&&t!==null&&t.toString().startsWith(r.toString())}ew(t,r){return r!==null&&t!==null&&t.toString().endsWith(r.toString())}co(t,r){return typeof t=="object"||r===null?t==r:(typeof t!="string"&&(t=t.toString()),t.indexOf(r.toString())!==-1)}};tk.Tester=ek;ek.UNDEF=Symbol("undefined")});var e$e=v(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.log=du.valfilter=void 0;var CXt=o((e,t)=>{switch(t&&"attrPath"in e&&(e=Object.assign(Object.assign({},e),{attrPath:`${t}.${e.attrPath}`})),e.op){case"and":case"or":return Object.assign(Object.assign({},e),{filters:e.filters.map(r=>(0,du.valfilter)(r,t))});case"not":return Object.assign(Object.assign({},e),{filter:(0,du.valfilter)(e,t)});case"[]":return(0,du.valfilter)(e.valFilter,e.attrPath)}return e},"valfilter");du.valfilter=CXt;var xXt=o(e=>{switch(e.op){case"and":case"or":let t=e.filters.map(du.log),r=[];return t.forEach(n=>{n.op==e.op?n.filters.forEach(i=>r.push(i)):r.push(n)}),Object.assign(Object.assign({},e),{filters:r})}return e},"log");du.log=xXt});var t$e=v(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.stringify=void 0;function Vv(e,t=!1){let r="";switch(e.op){case"eq":case"ne":case"co":case"sw":case"ew":case"gt":case"lt":case"ge":case"le":r=`${e.attrPath} ${e.op} ${JSON.stringify(e.compValue)}`;break;case"pr":r=`${e.attrPath} ${e.op}`;break;case"or":let n=e.filters.map(i=>Vv(i)).join(` ${e.op} `);r=t?`(${n})`:n;break;case"and":r=e.filters.map(i=>Vv(i,!0)).join(` ${e.op} `);break;case"not":r=`${e.op} (${Vv(e.filter)})`;break;case"[]":r=`${e.attrPath}[${Vv(e.valFilter)}]`;break}return r}o(Vv,"stringify");rk.stringify=Vv});var nk=v(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.flatten=Go.parse=Go.filter=Go.Tester=Go.stringify=void 0;var wY=XGe(),DXt=ZGe(),r$e=e$e(),PXt=t$e();Object.defineProperty(Go,"stringify",{enumerable:!0,get:function(){return PXt.stringify}});Go.Tester=DXt.Tester;function NXt(e){let t=new Go.Tester;return r=>t.test(r,e)}o(NXt,"filter");Go.filter=NXt;function LXt(e){let t=new wY.Tokens(wY.tokenizer(e)),r=wY.parseFilter(t);if(t.peek().type!=="EOT")throw new Error(`unexpected EOT ${t.getList()}`);return r}o(LXt,"parse");Go.parse=LXt;function kXt(e){return r$e.log(r$e.valfilter(e))}o(kXt,"flatten");Go.flatten=kXt});var i$e=v((Psn,n$e)=>{"use strict";n$e.exports=o(function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,s;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(s=Object.keys(t),n=s.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;i--!==0;){var a=s[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r},"equal")});var xY=v(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.PATCH_OPERATION_SCHEMA=Er.InvalidScimRemoveValue=Er.RemoveValueNotArray=Er.RemoveValueNestedArrayNotSupported=Er.NoTarget=Er.InvalidScimPatchRequest=Er.NoPathInScimPatchOp=Er.InvalidScimPatchOp=Er.InvalidScimPatch=Er.ScimError=void 0;Er.patchBodyValidation=qXt;Er.scimPatch=jXt;var Pt=KGe();Object.defineProperty(Er,"ScimError",{enumerable:!0,get:function(){return Pt.ScimError}});Object.defineProperty(Er,"InvalidScimPatch",{enumerable:!0,get:function(){return Pt.InvalidScimPatch}});Object.defineProperty(Er,"InvalidScimPatchOp",{enumerable:!0,get:function(){return Pt.InvalidScimPatchOp}});Object.defineProperty(Er,"NoPathInScimPatchOp",{enumerable:!0,get:function(){return Pt.NoPathInScimPatchOp}});Object.defineProperty(Er,"InvalidScimPatchRequest",{enumerable:!0,get:function(){return Pt.InvalidScimPatchRequest}});Object.defineProperty(Er,"NoTarget",{enumerable:!0,get:function(){return Pt.NoTarget}});Object.defineProperty(Er,"RemoveValueNestedArrayNotSupported",{enumerable:!0,get:function(){return Pt.RemoveValueNestedArrayNotSupported}});Object.defineProperty(Er,"RemoveValueNotArray",{enumerable:!0,get:function(){return Pt.RemoveValueNotArray}});Object.defineProperty(Er,"InvalidScimRemoveValue",{enumerable:!0,get:function(){return Pt.InvalidScimRemoveValue}});var EY=nk(),SY=i$e(),AY=/(\[|\])/,MXt=/^(.+)\[(.+)\]$/,o$e=/(?!\B"[^[]*)\.(?![^\]]*"\B)/g,UXt=["remove","add","replace"],FXt="urn:ietf:params:scim:schemas:core:2.0:User",BXt="urn:ietf:params:scim:schemas:core:2.0:Group";Er.PATCH_OPERATION_SCHEMA="urn:ietf:params:scim:api:messages:2.0:PatchOp";function qXt(e){if(!e.schemas||!e.schemas.includes(Er.PATCH_OPERATION_SCHEMA))throw new Pt.InvalidScimPatchRequest("Missing schemas.");if(!Array.isArray(e.Operations))throw new Pt.InvalidScimPatchRequest("Operations should be an array.");if(!e.Operations||e.Operations.length<=0)throw new Pt.InvalidScimPatchRequest("Missing operations.");e.Operations.forEach(RY)}o(qXt,"patchBodyValidation");function jXt(e,t,r={mutateDocument:!0,treatMissingAsAdd:!0}){return r.mutateDocument||(e=JSON.parse(JSON.stringify(e))),t.reduce((n,i)=>{switch(i.op){case"remove":case"Remove":return WXt(n,i);case"add":case"Add":case"replace":case"Replace":return a$e(n,i,!!r.treatMissingAsAdd);default:throw new Pt.InvalidScimPatchRequest(`Operator is invalid for SCIM patch request. ${i}`)}},e)}o(jXt,"scimPatch");function RY(e){if(typeof e.op!="string"||!HXt(e.op))throw new Pt.InvalidScimPatchRequest(`Invalid op "${e.op}" in the request.`);if(e.op==="remove"&&!e.path)throw new Pt.NoPathInScimPatchOp;if(Qv(e.op)&&!("value"in e))throw new Pt.InvalidScimPatchRequest(`The operation ${e.op} MUST contain a "value" member whose content specifies the value to be added`);if(e.path&&typeof e.path!="string")throw new Pt.InvalidScimPatchRequest("Path is supposed to be a string")}o(RY,"validatePatchOperation");function OY(e){let t=e.lastIndexOf(":");if(t<0)return e.split(o$e);let r=e.substring(0,t),n=e.substring(t+1).split(o$e);switch(r){case BXt:case FXt:break;default:n.unshift(r);break}return n}o(OY,"resolvePaths");function WXt(e,t){let r;RY(t);let n=OY(t.path);try{r=u$e(e,n,{isRemoveOp:!0})}catch(s){if(s instanceof Pt.InvalidRemoveOpPath)return e;throw s}let i=n[n.length-1];if(!AY.test(i)){for(let s of r)t.value?s[i]=VXt(s[i],t.value):delete s[i];return e}for(let s of r){let{attrName:a,valuePath:u,array:c}=IY(i,s);s[a]=CY(c,u,{excludeIfMatchFilter:!0}),s[a].length===0&&delete s[a]}return e}o(WXt,"applyRemoveOperation");function a$e(e,t,r){var n;let i;if(RY(t),!t.path)return Hv(e,t);let s=OY(t.path),a=s[s.length-1];try{i=u$e(e,s)}catch(u){if(u instanceof Pt.FilterOnEmptyArray||u instanceof Pt.FilterArrayTargetNotFound){let c=u.schema,l=(0,EY.parse)(u.valuePath);if(Qv(t.op)&&"compValue"in l&&l.compValue!==void 0&&l.op==="eq"){let f={};return f[l.attrPath]=l.compValue,f[a]=Hv(void 0,t,!0),c[u.attrName]=[...(n=c[u.attrName])!==null&&n!==void 0?n:[],f],e}else if(r&&TY(t.op)&&"compValue"in l&&l.compValue!==void 0&&l.op==="eq")return a$e(e,Object.assign(Object.assign({},t),{op:"add"}),!1);throw new Pt.NoTarget(t.path)}throw u}if(!AY.test(a)){for(let u of i)u[a]=Hv(u[a],t);return e}for(let u of i){let{valuePath:c,array:l}=IY(a,u),f=CY(l,c);if(TY(t.op)&&f.length===0)throw new Pt.NoTarget(t.path);for(let d=0;d<l.length;d++)f.includes(l[d])&&(l[d]=Hv(l[d],t))}return e}o(a$e,"applyAddOrReplaceOperation");function IY(e,t){let r=e.match(MXt);if(!r)throw new Pt.InvalidScimPatchOp(`This part of the path ${e} is invalid for SCIM patch request.`);let[,n,i]=r,s=t[n];if(!Array.isArray(s))throw new Pt.FilterOnEmptyArray("Impossible to search on a mono valued attribute.",n,i);return new vY(n,i,s)}o(IY,"extractArray");function u$e(e,t,r={}){let n=[e];for(let i=0;i<t.length-1;i++){let s=t[i];AY.test(s)?n=n.flatMap(a=>{try{let{attrName:u,valuePath:c,array:l}=IY(s,a),f=CY(l,c);if(f.length===0)throw new Pt.FilterArrayTargetNotFound("A matching array entry was not found using the supplied filter.",u,c,a);return f}catch(u){throw u instanceof Pt.FilterOnEmptyArray&&(u.schema=a),u}}):n=n.flatMap(a=>{if(!a[s]&&r.isRemoveOp)throw new Pt.InvalidRemoveOpPath;return a[s]||(a[s]={})})}return n}o(u$e,"navigate");function Hv(e,t,r){if(Array.isArray(e)){if(Array.isArray(t.value)){if(Qv(t.op)){let i=t.value.filter(s=>!s$e(e,s));return e.concat(i)}return t.value}if(TY(t.op))return e.map(i=>Hv(i,t,r));let n=e;return s$e(n,t.value)||n.push(t.value),n}return e!==null&&typeof e=="object"?GXt(e,t,r):t.value}o(Hv,"addOrReplaceAttribute");function GXt(e,t,r){if(typeof t.value!="object"){if(Qv(t.op)&&!r)throw new Pt.InvalidScimPatchOp("Invalid patch query.");return t.value}for(let[n,i]of Object.entries(t.value))$Xt(e,OY(n),i,t.op);return e}o(GXt,"addOrReplaceObjectAttribute");function $Xt(e,t,r,n){let i=t.length-1;for(let a=0;a<i;++a){let u=t[a];u in e||(e[u]={}),e=e[u]}let s=e[t[i]];if(Qv(n)&&Array.isArray(s)){if(Array.isArray(r)){e[t[i]]=[...s,...r];return}e[t[i]]=[...s,r];return}e[t[i]]=r}o($Xt,"assign");function CY(e,t,r={}){try{let n=(0,EY.filter)((0,EY.parse)(t));return e.filter(i=>r.excludeIfMatchFilter?!n(i):n(i))}catch(n){throw new Pt.InvalidScimPatchOp(`${n}`)}}o(CY,"filterWithQuery");function VXt(e,t){if(!Array.isArray(e))throw new Pt.RemoveValueNotArray;return Array.isArray(t)?(t.forEach(r=>{if(Array.isArray(r))throw new Pt.RemoveValueNestedArrayNotSupported;e=e.filter(n=>!SY(r,n))}),e):e.filter(r=>!SY(t,r))}o(VXt,"removeWithPatchValue");function s$e(e,t){return e.some(r=>SY(t,r))}o(s$e,"deepIncludes");function HXt(e){return UXt.includes(e.toLowerCase())}o(HXt,"isValidOperation");function Qv(e){return e!==void 0&&e.toLowerCase()==="add"}o(Qv,"isAddOperation");function TY(e){return e!==void 0&&e.toLowerCase()==="replace"}o(TY,"isReplaceOperation");var vY=class{static{o(this,"ScimSearchQuery")}constructor(t,r,n){this.attrName=t,this.valuePath=r,this.array=n}}});var lor={};var K3e,z3e=er(()=>{"use strict";K3e=U(require("dd-trace"));process.env.DD_APM_ENABLED&&(console.log("Starting dd-trace"),K3e.default.init({debug:process.env.DD_ENV==="qa",llmobs:{mlApp:process.env.DD_LLMOBS_ML_APP||"budibase"}}))});var Sur={};G(Sur,{execute:()=>Eur});module.exports=qA(Sur);var Qn={};G(Qn,{analyticsEnabled:()=>z0,generateConfigID:()=>nT,getAIConfig:()=>aWt,getConfig:()=>Ii,getDefaultGoogleConfig:()=>B3,getGoogleConfig:()=>UD,getGoogleDatasourceConfig:()=>j3,getOIDCConfig:()=>iWt,getOIDCConfigById:()=>W3,getOIDCLogosDoc:()=>rWt,getPlatformUrl:()=>iT,getRecaptchaConfig:()=>uWt,getSCIMConfig:()=>sWt,getSMTPConfig:()=>oWt,getSMTPConfigDoc:()=>b0e,getSettingsConfig:()=>q3,getSettingsConfigDoc:()=>dy,getTranslationsConfig:()=>eWt,getTranslationsConfigDoc:()=>y0e,save:()=>Zjt});var co=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(co||{});var ct=(te=>(te.USER_CREATED="user:created",te.USER_UPDATED="user:updated",te.USER_DELETED="user:deleted",te.USER_ONBOARDING_COMPLETE="user:onboarding:complete",te.USER_PERMISSION_ADMIN_ASSIGNED="user:admin:assigned",te.USER_PERMISSION_ADMIN_REMOVED="user:admin:removed",te.USER_PERMISSION_BUILDER_ASSIGNED="user:builder:assigned",te.USER_PERMISSION_BUILDER_REMOVED="user:builder:removed",te.USER_INVITED="user:invited",te.USER_INVITED_ACCEPTED="user:invite:accepted",te.USER_PASSWORD_FORCE_RESET="user:password:force:reset",te.USER_PASSWORD_UPDATED="user:password:updated",te.USER_PASSWORD_RESET_REQUESTED="user:password:reset:requested",te.USER_PASSWORD_RESET="user:password:reset",te.USER_DATA_COLLABORATION="user:data:collaboration",te.EMAIL_SMTP_CREATED="email:smtp:created",te.EMAIL_SMTP_UPDATED="email:smtp:updated",te.AI_CONFIG_CREATED="ai:config:created",te.AI_CONFIG_UPDATED="ai:config:updated",te.AUTH_SSO_CREATED="auth:sso:created",te.AUTH_SSO_UPDATED="auth:sso:updated",te.AUTH_SSO_ACTIVATED="auth:sso:activated",te.AUTH_SSO_DEACTIVATED="auth:sso:deactivated",te.AUTH_LOGIN="auth:login",te.AUTH_LOGOUT="auth:logout",te.ORG_NAME_UPDATED="org:info:name:updated",te.ORG_LOGO_UPDATED="org:info:logo:updated",te.ORG_PLATFORM_URL_UPDATED="org:platformurl:updated",te.INSTALLATION_VERSION_CHECKED="installation:version:checked",te.INSTALLATION_VERSION_UPGRADED="installation:version:upgraded",te.INSTALLATION_VERSION_DOWNGRADED="installation:version:downgraded",te.INSTALLATION_FIRST_STARTUP="installation:firstStartup",te.ANALYTICS_OPT_OUT="analytics:opt:out",te.ANALYTICS_OPT_IN="analytics:opt:in",te.WORKSPACE_CREATED="app:created",te.WORKSPACE_UPDATED="app:updated",te.WORKSPACE_DELETED="app:deleted",te.WORKSPACE_DUPLICATED="app:duplicated",te.WORKSPACE_PUBLISHED="app:published",te.WORKSPACE_UNPUBLISHED="app:unpublished",te.WORKSPACE_TEMPLATE_IMPORTED="app:template:imported",te.WORKSPACE_FILE_IMPORTED="app:file:imported",te.WORKSPACE_APP_VERSION_UPDATED="app:version:updated",te.WORKSPACE_APP_VERSION_REVERTED="app:version:reverted",te.WORKSPACE_REVERTED="app:reverted",te.WORKSPACE_EXPORTED="app:exported",te.ROLE_CREATED="role:created",te.ROLE_UPDATED="role:updated",te.ROLE_DELETED="role:deleted",te.ROLE_ASSIGNED="role:assigned",te.ROLE_UNASSIGNED="role:unassigned",te.SERVED_BUILDER="served:builder",te.SERVED_APP="served:app",te.SERVED_APP_PREVIEW="served:app:preview",te.DATASOURCE_CREATED="datasource:created",te.DATASOURCE_UPDATED="datasource:updated",te.DATASOURCE_DELETED="datasource:deleted",te.QUERY_CREATED="query:created",te.QUERY_UPDATED="query:updated",te.QUERY_DELETED="query:deleted",te.QUERY_IMPORT="query:import",te.QUERIES_RUN="queries:run",te.QUERY_PREVIEWED="query:previewed",te.TABLE_CREATED="table:created",te.TABLE_UPDATED="table:updated",te.TABLE_DELETED="table:deleted",te.TABLE_EXPORTED="table:exported",te.TABLE_IMPORTED="table:imported",te.TABLE_DATA_IMPORTED="table:data:imported",te.VIEW_CREATED="view:created",te.VIEW_UPDATED="view:updated",te.VIEW_DELETED="view:deleted",te.VIEW_EXPORTED="view:exported",te.VIEW_FILTER_CREATED="view:filter:created",te.VIEW_FILTER_UPDATED="view:filter:updated",te.VIEW_FILTER_DELETED="view:filter:deleted",te.VIEW_CALCULATION_CREATED="view:calculation:created",te.VIEW_CALCULATION_UPDATED="view:calculation:updated",te.VIEW_CALCULATION_DELETED="view:calculation:deleted",te.VIEW_JOIN_CREATED="view:join:created",te.ROWS_CREATED="rows:created",te.ROWS_IMPORTED="rows:imported",te.COMPONENT_CREATED="component:created",te.COMPONENT_DELETED="component:deleted",te.SCREEN_CREATED="screen:created",te.SCREEN_DELETED="screen:deleted",te.LAYOUT_CREATED="layout:created",te.LAYOUT_DELETED="layout:deleted",te.AUTOMATION_CREATED="automation:created",te.AUTOMATION_DELETED="automation:deleted",te.AUTOMATION_TESTED="automation:tested",te.AUTOMATIONS_RUN="automations:run",te.AUTOMATION_STEP_CREATED="automation:step:created",te.AUTOMATION_STEP_DELETED="automation:step:deleted",te.AUTOMATION_TRIGGER_UPDATED="automation:trigger:updated",te.LICENSE_PLAN_CHANGED="license:plan:changed",te.LICENSE_ACTIVATED="license:activated",te.LICENSE_PAYMENT_FAILED="license:payment:failed",te.LICENSE_PAYMENT_RECOVERED="license:payment:recovered",te.LICENSE_CHECKOUT_OPENED="license:checkout:opened",te.LICENSE_CHECKOUT_SUCCESS="license:checkout:success",te.LICENSE_PORTAL_OPENED="license:portal:opened",te.ACCOUNT_CREATED="account:created",te.ACCOUNT_DELETED="account:deleted",te.ACCOUNT_VERIFIED="account:verified",te.APP_BACKFILL_SUCCEEDED="app:backfill:succeeded",te.APP_BACKFILL_FAILED="app:backfill:failed",te.TENANT_BACKFILL_SUCCEEDED="tenant:backfill:succeeded",te.TENANT_BACKFILL_FAILED="tenant:backfill:failed",te.INSTALLATION_BACKFILL_SUCCEEDED="installation:backfill:succeeded",te.INSTALLATION_BACKFILL_FAILED="installation:backfill:failed",te.USER_GROUP_CREATED="user_group:created",te.USER_GROUP_UPDATED="user_group:updated",te.USER_GROUP_DELETED="user_group:deleted",te.USER_GROUP_USERS_ADDED="user_group:user_added",te.USER_GROUP_USERS_REMOVED="user_group:users_deleted",te.USER_GROUP_PERMISSIONS_EDITED="user_group:permissions_edited",te.USER_GROUP_ONBOARDING="user_group:onboarding_added",te.PLUGIN_INIT="plugin:init",te.PLUGIN_IMPORTED="plugin:imported",te.PLUGIN_DELETED="plugin:deleted",te.APP_BACKUP_RESTORED="app:backup:restored",te.APP_BACKUP_TRIGGERED="app:backup:triggered",te.ENVIRONMENT_VARIABLE_CREATED="environment_variable:created",te.ENVIRONMENT_VARIABLE_DELETED="environment_variable:deleted",te.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable:upgrade_panel_opened",te.AUDIT_LOGS_FILTERED="audit_log:filtered",te.AUDIT_LOGS_DOWNLOADED="audit_log:downloaded",te.ROW_ACTION_CREATED="row_action:created",te.ACTION_AUTOMATION_STEP_EXECUTED="action:automation_step:executed",te.ACTION_CRUD_EXECUTED="action:crud:executed",te.ACTION_AI_AGENT_EXECUTED="action:ai_agent:executed",te.WORKSPACE_APP_CREATED="workspace_app:created",te.WORKSPACE_APP_UPDATED="workspace_app:updated",te.WORKSPACE_APP_DELETED="workspace_app:deleted",te.RESOURCE_COPIED_TO_WORKSPACE="resource:copied_to_workspace",te))(ct||{}),vX=["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"],AX=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],RX=[...vX,...AX],Vh={"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,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":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,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var OX=o((e,t,r)=>e==="usage"&&t==="static","isStaticQuota"),IX=o((e,t,r)=>e==="usage"&&t==="monthly","isMonthlyQuota"),CX=o((e,t)=>e==="constant","isConstantQuota");var Fi="--secret-value--";var an=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(an||{}),Jr=(h=>(h.STRING="string",h.CODE="code",h.LONGFORM="longForm",h.SENSITIVE_LONGFORM="sensitiveLongForm",h.BOOLEAN="boolean",h.NUMBER="number",h.PASSWORD="password",h.LIST="list",h.OBJECT="object",h.JSON="json",h.FILE="file",h.FIELD_GROUP="fieldGroup",h.SELECT="select",h))(Jr||{}),un=(b=>(b.AIRTABLE="AIRTABLE",b.ARANGODB="ARANGODB",b.BUDIBASE="BUDIBASE",b.COUCHDB="COUCHDB",b.DYNAMODB="DYNAMODB",b.ELASTICSEARCH="ELASTICSEARCH",b.FIRESTORE="FIRESTORE",b.GOOGLE_SHEETS="GOOGLE_SHEETS",b.MONGODB="MONGODB",b.MYSQL="MYSQL",b.ORACLE="ORACLE",b.POSTGRES="POSTGRES",b.REDIS="REDIS",b.REST="REST",b.S3="S3",b.SNOWFLAKE="SNOWFLAKE",b.SQL_SERVER="SQL_SERVER",b))(un||{});var Tn=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Tn||{});var xX=U(require("lodash/isPlainObject"));var Jf=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Jf||{}),wa=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(wa||{}),Hh=(t=>(t.RANGE="range",t))(Hh||{}),Gb=(r=>(r.AND="$and",r.OR="$or",r))(Gb||{});function Hc(e){return Object.values(Gb).includes(e)}o(Hc,"isLogicalSearchOperator");function DX(e){return Object.values(Jf).includes(e)}o(DX,"isBasicSearchOperator");function PX(e){return Object.values(wa).includes(e)}o(PX,"isArraySearchOperator");function jA(e){return Object.values(Hh).includes(e)}o(jA,"isRangeSearchOperator");function NX(e){return(0,xX.default)(e)&&"conditions"in e}o(NX,"isLogicalFilter");var LX=o(e=>typeof e=="object"&&e._id&&e._rev,"isDocument");var $b=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))($b||{});var Qc=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Qc||{});var Vb=(d=>(d.WORKSPACE="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Vb||{});var WA=o(e=>e.hosting==="cloud","isCloudAccount");var GA=o(e=>e.authType==="sso","isSSOAccount");var ce="_",Mn="\uFFF0",ti=o(e=>`${e}${ce}`,"prefixed"),Me=(se=>(se.USER="us",se.GROUP="gr",se.CONFIG="config",se.TEMPLATE="template",se.WORKSPACE="app",se.DEV="dev",se.WORKSPACE_DEV="app_dev",se.WORKSPACE_METADATA="app_metadata",se.ROLE="role",se.DEV_INFO="devinfo",se.AUTOMATION_LOG="log_au",se.ACCOUNT_METADATA="acc_metadata",se.PLUGIN="plg",se.DATASOURCE="datasource",se.DATASOURCE_PLUS="datasource_plus",se.APP_BACKUP="backup",se.TABLE="ta",se.ROW="ro",se.AUTOMATION="au",se.LINK="li",se.WEBHOOK="wh",se.INSTANCE="inst",se.LAYOUT="layout",se.SCREEN="screen",se.QUERY="query",se.DEPLOYMENTS="deployments",se.METADATA="metadata",se.MEM_VIEW="view",se.USER_FLAG="flag",se.AUTOMATION_METADATA="meta_au",se.AUDIT_LOG="al",se.SCIM_LOG="scimlog",se.ROW_ACTIONS="ra",se.OAUTH2_CONFIG="oauth2",se.OAUTH2_CONFIG_LOG="oauth2log",se.AGENT="agent",se.CHAT_APP="chatapp",se.CHAT_CONVERSATION="chatconvo",se.AGENT_TOOL_SOURCE="agenttoolsource",se.AGENT_FILE="agentfile",se.AI_CONFIG="aiconfig",se.LITELLM_KEY="litellmkey",se.VECTOR_STORE="vectordb",se.WORKSPACE_APP="workspace_app",se.WORKSPACE_FAVOURITE="workspace_favourite",se.AUTO_COLUMN_STATE="autocolumn_state",se))(Me||{}),PM=["role","datasource","datasource_plus","ta","au","wh","screen","query","metadata","view","workspace_app","workspace_favourite","inst","layout"],vu=(t=>(t.USER_METADATA="ta_users",t))(vu||{}),Kc=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Kc||{});function Qh(e){return!!e.providerType}o(Qh,"isSSOUser");var Kh=["rows","queries","automations"],kX=["queries","automations"];var MX="SYSTEM",Xf="auditLog";var He=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f))(He||{}),Bt=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R.AGENT="agent",R.OUTPUT_SCHEMA="outputSchema",R))(Bt||{}),lo=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(lo||{});var nt=($=>($.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",$.CREATE_ROW="CREATE_ROW",$.GET_ROW="GET_ROW",$.UPDATE_ROW="UPDATE_ROW",$.DELETE_ROW="DELETE_ROW",$.QUERY_ROWS="QUERY_ROWS",$.EXECUTE_BASH="EXECUTE_BASH",$.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",$.EXECUTE_SCRIPT="EXECUTE_SCRIPT",$.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",$.EXECUTE_QUERY="EXECUTE_QUERY",$.SERVER_LOG="SERVER_LOG",$.DELAY="DELAY",$.FILTER="FILTER",$.API_REQUEST="API_REQUEST",$.LOOP="LOOP",$.COLLECT="COLLECT",$.OPENAI="OPENAI",$.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",$.BRANCH="BRANCH",$.CLASSIFY_CONTENT="CLASSIFY_CONTENT",$.PROMPT_LLM="PROMPT_LLM",$.TRANSLATE="TRANSLATE",$.SUMMARISE="SUMMARISE",$.GENERATE_TEXT="GENERATE_TEXT",$.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",$.EXTRACT_STATE="EXTRACT_STATE",$.LOOP_V2="LOOP_V2",$.AGENT="AGENT",$.discord="discord",$.slack="slack",$.zapier="zapier",$.integromat="integromat",$.n8n="n8n",$))(nt||{}),UX=[...Object.values(nt),...Object.values(lo)];var $A=(u=>(u.EMAIL="email",u.DOCUMENT="document",u.BLOG_POST="blog_post",u.CHAT_MESSAGE="chat_message",u.LETTER="letter",u.PROPOSAL="proposal",u.OTHER="other",u))($A||{}),FX={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},VA=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(VA||{}),HA=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(HA||{}),QA=["png","jpg","jpeg","image/png","image/jpeg","image/jpg","image/jpeg"];function BX(e){return e.stepId==="BRANCH"}o(BX,"isBranchStep");function NM(e){return e.stepId==="CRON"}o(NM,"isCronTrigger");function zc(e){return e?.stepId==="EMAIL"}o(zc,"isEmailTrigger");var KA=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(KA||{});var Hb=(r=>(r.BACKUP="backup",r.RESTORE="restore",r))(Hb||{});var Yc=(i=>(i.PUBLISH="publish",i.MANUAL="manual",i.SCHEDULED="scheduled",i.RESTORING="restoring",i))(Yc||{});var zh=(a=>(a.NONE="none",a.FORM_DATA="form",a.XML="xml",a.ENCODED="encoded",a.JSON="json",a.TEXT="text",a))(zh||{}),Qb=(a=>(a.GET="GET",a.POST="POST",a.PATCH="PATCH",a.PUT="PUT",a.HEAD="HEAD",a.DELETE="DELETE",a))(Qb||{});var Un="bb_internal";var Jc=(s=>(s.CREATED_BY="createdBy",s.CREATED_AT="createdAt",s.UPDATED_BY="updatedBy",s.UPDATED_AT="updatedAt",s.AUTO_ID="autoID",s))(Jc||{});function zA(e){return e.type==="link"}o(zA,"isRelationshipField");function YA(e){return e.relationshipType==="one-to-many"}o(YA,"isOneToMany");function JA(e){return e.relationshipType==="many-to-one"}o(JA,"isManyToOne");var qX="rev",Le=(S=>(S.STRING="string",S.LONGFORM="longform",S.OPTIONS="options",S.NUMBER="number",S.BOOLEAN="boolean",S.ARRAY="array",S.DATETIME="datetime",S.ATTACHMENTS="attachment",S.ATTACHMENT_SINGLE="attachment_single",S.LINK="link",S.FORMULA="formula",S.AUTO="auto",S.AI="ai",S.JSON="json",S.INTERNAL="internal",S.BARCODEQR="barcodeqr",S.SIGNATURE_SINGLE="signature_single",S.BIGINT="bigint",S.BB_REFERENCE="bb_reference",S.BB_REFERENCE_SINGLE="bb_reference_single",S))(Le||{}),XA=["attachment_single","attachment","signature_single","bb_reference","json","array"],BKe=["number","bigint"];function LM(e){return BKe.includes(e)}o(LM,"isNumeric");function jX(e){return e.type==="formula"&&e.formulaType==="static"&&e.responseType&&LM(e.responseType)}o(jX,"isNumericStaticFormula");var qKe=["string","longform","options","number","boolean","datetime","bigint","ai"];function jKe(e){return qKe.includes(e)}o(jKe,"canGroupBy");function kM(e){return e.type==="formula"&&e.formulaType==="static"}o(kM,"isStaticFormula");function WX(e){return jKe(e.type)||kM(e)}o(WX,"canGroupBySchema");var lt={};G(lt,{AutomationViewMode:()=>u1,BUDIBASE_DATASOURCE_TYPE:()=>Yre,Config:()=>rne,Cookie:()=>gm,DEFAULT_BB_DATASOURCE_ID:()=>Kb,DEFAULT_EMPLOYEE_TABLE_ID:()=>ene,DEFAULT_EXPENSES_TABLE_ID:()=>Zre,DEFAULT_INVENTORY_TABLE_ID:()=>Xre,DEFAULT_JOBS_TABLE_ID:()=>Jre,DEFAULT_TENANT_ID:()=>Lr,DeprecatedViews:()=>W_,DesignDocuments:()=>yd,DocumentType:()=>Me,GlobalRole:()=>tne,Header:()=>yi,InternalTable:()=>vu,MAX_VALID_DATE:()=>f1,MIN_VALID_DATE:()=>F7e,SEPARATOR:()=>ce,SQLITE_DESIGN_DOC_ID:()=>Fn,SQS_DATASOURCE_INTERNAL:()=>ul,StaticDatabases:()=>tr,UNICODE_MAX:()=>Mn,USER_METADATA_PREFIX:()=>VR,UserStatus:()=>l1,ViewName:()=>al,WORKSPACE_DEV:()=>c1,WORKSPACE_DEV_PREFIX:()=>Ms,WORKSPACE_PREFIX:()=>ks});var $X={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var yi=(E=>(E.API_KEY="x-budibase-api-key",E.LICENSE_KEY="x-budibase-license-key",E.API_VER="x-budibase-api-version",E.APP_ID="x-budibase-app-id",E.SESSION_ID="x-budibase-session-id",E.CLIENT="x-budibase-client",E.TYPE="x-budibase-type",E.PREVIEW_ROLE="x-budibase-role",E.TENANT_ID="x-budibase-tenant-id",E.VERIFICATION_CODE="x-budibase-verification-code",E.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",E.RESET_PASSWORD_CODE="x-budibase-reset-password-code",E.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",E.TOKEN="x-budibase-token",E.CSRF_TOKEN="x-csrf-token",E.CORRELATION_ID="x-budibase-correlation-id",E.AUTHORIZATION="authorization",E.MIGRATING_APP="x-budibase-migrating-app",E.COOKIE="cookie",E))(yi||{});var vn=["_id","_rev","type","createdAt","updatedAt","tableId"],Os=["_id","_rev","tableId"];function Zf(e){return vn.includes(e)}o(Zf,"isInternalColumnName");function VX(e){return Os.includes(e)}o(VX,"isExternalColumnName");var Yh={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},ZA={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var fo={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},ContainsAny:{value:"containsAny",label:"Has any"}},HX={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var MM=/^[^()]*$/;var Kb="datasource_internal_bb_default";var Tt={};G(Tt,{ColumnSplitter:()=>fF,NoEmptyFilterStrings:()=>Ire,buildQuery:()=>Cre,cleanupQuery:()=>mF,fixupFilterArrays:()=>yF,getKeyNumbering:()=>gF,getValidOperatorsForType:()=>SJe,hasFilters:()=>dF,limit:()=>Dre,recurseLogicalOperators:()=>hF,removeKeyNumbering:()=>eR,runQuery:()=>BR,search:()=>AJe,sort:()=>xre,splitFiltersArray:()=>tR});var hm=U(require("dayjs"));var Be={};G(Be,{filterValueToLabel:()=>KKe,hasSchema:()=>zKe,isSupportedUserSearch:()=>KX,nameToUrl:()=>e6e,parallelForeach:()=>QKe,processSearchFilters:()=>UM,toMap:()=>JKe,trimOtherProps:()=>YKe,unreachable:()=>HKe});var QX=U(require("lodash/pick"));var VKe=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function HKe(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}o(HKe,"unreachable");async function QKe(e,t,r){let n=[],i=Symbol.asyncIterator in e,s=i?e[Symbol.asyncIterator]():e[Symbol.iterator](),a=o(async()=>{let u=await(i?s.next():Promise.resolve(s.next()));for(;!u.done;)await t(u.value),u=await(i?s.next():Promise.resolve(s.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}o(QKe,"parallelForeach");function KKe(){return Object.keys(fo).reduce((e,t)=>{let n=fo[t];return e[n.value]=n.label,e},{})}o(KKe,"filterValueToLabel");function zKe(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}o(zKe,"hasSchema");function YKe(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}o(YKe,"trimOtherProps");function KX(e){let t=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=e;for(let[s,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Hc(s)){for(let l of e[s].conditions)if(!KX(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!t.find(l=>l.op===s&&u.length===1&&u[0]===l.key))return!1}return!0}o(KX,"isSupportedUserSearch");function UM(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=tR(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let s=(0,QX.default)(i,VKe);return s.field=eR(s.field),s})}]}}o(UM,"processSearchFilters");function JKe(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}o(JKe,"toMap");var XKe=o(e=>e?e.trim():null,"resolveWorkspaceName"),ZKe=o(e=>{let t,r=XKe(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),e6e=o(e=>{let t=ZKe(e);return t6e(t)},"nameToUrl"),t6e=o(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var de={};G(de,{accountPortalAccountUrl:()=>bre,accountPortalBillingUrl:()=>_re,accountPortalUpgradeUrl:()=>wre,builderAppsUrl:()=>Are,builderSettingsAuthUrl:()=>Tre,builderSettingsEmailUrl:()=>Sre,builderSettingsPeopleUsersUrl:()=>vre,builderWorkspacesUrl:()=>Ere,cancelableTimeout:()=>zX,cron:()=>bJe,deepGet:()=>FM,duplicateName:()=>dJe,formatBytes:()=>yJe,getSequentialName:()=>pJe,getUserColor:()=>n6e,getUserInitials:()=>r6e,getUserLabel:()=>i6e,isGoogleSheets:()=>s6e,isSQL:()=>a6e,lists:()=>cF,retry:()=>u6e,roles:()=>uF,schema:()=>U_,structuredOutput:()=>oF,urlHelpers:()=>gJe,views:()=>aF,wait:()=>BM,withTimeout:()=>o6e});var FM=o((e,t)=>{if(!e||!t)return null;if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let r=t.split(".");for(let n=0;n<r.length;n++)e=e?.[r[n]];return e},"deepGet"),r6e=o(e=>{if(!e)return"?";let t="";return t+=e.firstName?e.firstName[0]:"",t+=e.lastName?e.lastName[0]:"",t!==""?t:e.email?.[0]||"U"},"getUserInitials"),n6e=o(e=>{let t=e?._id;if(!t)return"var(--spectrum-global-color-blue-400)";t=t.replace("ro_ta_users_","");let r=1;for(let n=0;n<t.length;n++)r+=t.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),i6e=o(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function zX(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}o(zX,"cancelableTimeout");async function o6e(e,t){let[r,n]=zX(e),i=await Promise.race([t(),r]);return n(),i}o(o6e,"withTimeout");function s6e(e){return e==="GOOGLE_SHEETS"}o(s6e,"isGoogleSheets");function a6e(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}o(a6e,"isSQL");async function BM(e){return new Promise(t=>setTimeout(t,e))}o(BM,"wait");async function u6e(e,t){let{times:r=3}=t||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await BM(s);try{return await e()}catch(a){n=a}}throw n}o(u6e,"retry");var pre=U(Ea()),hre=U(fre());var dre="(Input cron: ",YYe={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function JYe(e){let t=[];for(let r of e){r.includes(dre)&&(r=r.split(dre)[0].trim());for(let[n,i]of Object.entries(YYe))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}o(JYe,"improveErrors");function mre(e,t=4){let r=hre.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}o(mre,"getNextExecutionDates");function gre(e){let t=(0,pre.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:JYe(t.getError())}}o(gre,"validate");var U_={};G(U_,{decodeNonAscii:()=>iF,encodeNonAscii:()=>eJe,isDeprecatedSingleUserColumn:()=>XYe,isNumeric:()=>tJe,isRequired:()=>ZYe});function XYe(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}o(XYe,"isDeprecatedSingleUserColumn");function ZYe(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}o(ZYe,"isRequired");function eJe(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}o(eJe,"encodeNonAscii");function iF(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}o(iF,"decodeNonAscii");function tJe(e){return e.type==="number"||e.type==="bigint"}o(tJe,"isNumeric");var oF={};G(oF,{normalizeSchemaForStructuredOutput:()=>rJe});function rJe(e){function t(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let s=i.properties,a=[],u={};for(let[f,d]of Object.entries(s))if(typeof d=="object"&&d!==null){let p=d;if(p.required===!0){a.push(f);let{required:h,...m}=p;u[f]=t(m)}else u[f]=t(p)}else u[f]=d;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=t(i.items));for(let s of["anyOf","oneOf","allOf"])Array.isArray(i[s])&&(i[s]=i[s].map(a=>t(a)));return i}o(t,"processSchema");let r=t(e);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}o(rJe,"normalizeSchemaForStructuredOutput");var aF={};G(aF,{basicFields:()=>aJe,calculationFields:()=>sJe,hasCalculationFields:()=>oJe,isBasicViewField:()=>nJe,isCalculationField:()=>F_,isCalculationView:()=>iJe,isV2:()=>uJe,isVisible:()=>yre});var sF=U(require("lodash/pickBy"));function F_(e){return"calculationType"in e}o(F_,"isCalculationField");function nJe(e){return!F_(e)}o(nJe,"isBasicViewField");function iJe(e){return e.type==="calculation"}o(iJe,"isCalculationView");function oJe(e){return Object.values(e.schema||{}).some(F_)}o(oJe,"hasCalculationFields");function sJe(e){return(0,sF.default)(e.schema||{},F_)}o(sJe,"calculationFields");function yre(e){return e.visible!==!1}o(yre,"isVisible");function aJe(e,t){let{visible:r=!0}=t||{};return(0,sF.default)(e.schema||{},n=>!F_(n)&&(!r||yre(n)))}o(aJe,"basicFields");function uJe(e){return e.version===2}o(uJe,"isV2");var uF={};G(uF,{checkForRoleInheritanceLoops:()=>lJe});function cJe(e){return`role${ce}${e}`}o(cJe,"prefixForCheck");function lJe(e){let t=new Map;e.forEach(s=>{t.set(s._id,s)});let r=new Set,n=new Set;function i(s){let a=cJe(s);if(n.has(s)||n.has(a))return!0;if(r.has(s)||r.has(a))return!1;n.add(s);let u=t.get(a)||t.get(s);if(!u)return n.delete(s),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(s),r.add(s),!1}return o(i,"hasLoop"),!!e.find(s=>i(s._id))}o(lJe,"checkForRoleInheritanceLoops");var cF={};G(cF,{punctuateList:()=>fJe});function fJe(e){return e.length===0?"":e.length===1?e[0]:e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+" and "+e[e.length-1]}o(fJe,"punctuateList");var dJe=o((e,t)=>{let r=new RegExp("\\s(\\d+)$"),n=e.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];t.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(s.push(parseInt(c[1])),!0):!1}),s.sort((u,c)=>u-c);let a;if(s.length===0)a=1;else{for(let u=0;u<s.length;u++)if(s[u]!==u+1){a=u+1;break}a||(a=s.length+1)}return`${n} ${a}`},"duplicateName"),pJe=o((e,t,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!t?.length)return"";let s=t.trim(),a=n?`${t}1`:s;if(!e?.length)return a;let u=0;return e.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(s))return;let f=l.split(s);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>u&&(u=d)}),u===0?a:`${t}${i}${u+1}`},"getSequentialName");var hJe=o(e=>e?e.startsWith("/")?e:`/${e}`:"","normalizePath"),mJe=o(e=>e?e.endsWith("/")?e.slice(0,-1):e:"","normalizeBase"),ol=o((e,t)=>{let r=hJe(t);if(!e)return r;let n=mJe(e);return r?`${n}${r}`:n},"joinBaseAndPath"),bre=o(e=>ol(e,ZA.ACCOUNT),"accountPortalAccountUrl"),_re=o(e=>ol(e,ZA.BILLING),"accountPortalBillingUrl"),wre=o(e=>ol(e,ZA.UPGRADE),"accountPortalUpgradeUrl"),Ere=o(e=>ol(e,Yh.WORKSPACES),"builderWorkspacesUrl"),Sre=o(e=>ol(e,Yh.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Tre=o(e=>ol(e,Yh.SETTINGS_AUTH),"builderSettingsAuthUrl"),vre=o(e=>ol(e,Yh.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Are=o(e=>ol(e,Yh.APPS),"builderAppsUrl"),gJe={accountPortalAccountUrl:bre,accountPortalBillingUrl:_re,accountPortalUpgradeUrl:wre,builderWorkspacesUrl:Ere,builderSettingsEmailUrl:Sre,builderSettingsAuthUrl:Tre,builderSettingsPeopleUsersUrl:vre,builderAppsUrl:Are};function yJe(e,t=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,s=typeof e=="string"?parseInt(e,10):e||0;for(;s>=1024&&i<r.length-1&&++i;)s/=1024;return`${s.toFixed(s<10&&i>0?1:0)}${t}${r[i]}`}o(yJe,"formatBytes");var bJe={getNextExecutionDates:mre,validate:gre};var FR=U(require("lodash/isPlainObject")),lF=U(require("lodash/isEmpty"));var wJe=/{{([^{].*?)}}/g,Ore=Object.values(Gb),EJe=[...Object.values(Jf),...Object.values(wa),...Object.values(Hh)],SJe=o((e,t,r)=>{let n=fo,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:f}=e;c==="string"?f==="array"?u=a:u=i:c==="number"||c==="bigint"?u=s:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=s:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||U_.isDeprecatedSingleUserColumn(e)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let d=r?.tableId?.includes("datasource_plus");return t==="_id"&&d&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),Ire=[fo.StartsWith.value,fo.Like.value,fo.Equals.value,fo.NotEquals.value,fo.Contains.value,fo.NotContains.value,fo.ContainsAny.value,fo.In.value];function hF(e,t){for(let r of Ore)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}o(hF,"recurseLogicalOperators");var mF=o(e=>{for(let t of Ire)if(e[t])for(let r of Object.keys(e)){if(r!==t)continue;if(typeof e[r]=="object")for(let[i,s]of Object.entries(e[r]))(s==null||s===""||TJe(s))&&delete e[t][i]}return e=hF(e,mF),e},"cleanupQuery");function TJe(e){return Array.isArray(e)&&e.length===0}o(TJe,"isEmptyArray");var eR=o(e=>gF(e).key,"removeKeyNumbering"),gF=o(e=>{if(typeof e=="string"&&e.match(/\d[0-9]*:/g)!=null){let t=e.split(":");return{prefix:`${t.shift()}:`,key:t.join(":")}}else return{key:e}},"getKeyNumbering"),fF=class{static{o(this,"ColumnSplitter")}constructor(t,r){if(this.tableNames=t.map(n=>n.name),this.tableIds=t.map(n=>n._id),this.relationshipColumnNames=t.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(t){let{prefix:r,key:n}=gF(t),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let s;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),s=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=iF(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function vJe(e){if(!e||!e?.operator||!e?.field)return;let t={},{operator:r,field:n,type:i,externalType:s}=e,{value:a}=e;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(wJe)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(jA(r))return t[r]??={},t[r][n]=a,t}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(jA(r)){let l=HX[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};t[r]??={},t[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],low:a};else if(DX(r)||PX(r)||jA(r))i==="boolean"?r==="equal"&&a===!1?(t.notEqual=t.notEqual||{},t.notEqual[n]=!0):r==="notEqual"&&a===!1?(t.equal=t.equal||{},t.equal[n]=!0):(t[r]??={},t[r][n]=a):(t[r]??={},t[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return t}o(vJe,"buildCondition");function tR(e){let t={filters:[]};for(let r of e)"operator"in r&&r.operator==="allOr"?t.allOr=!0:"onEmptyFilter"in r?t.onEmptyFilter=r.onEmptyFilter:t.filters.push(r);return t}o(tR,"splitFiltersArray");function Cre(e){if(!e)return{};if(Array.isArray(e)&&(e=UM(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Rre(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let c=Cre(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:s,filters:a}=tR(n.filters||[]);s&&(t.onEmptyFilter=s);let u=i?"$or":"$and";return n.logicalOperator&&(u=Rre(n.logicalOperator)),{[u]:{conditions:a.map(vJe).filter(c=>c)}}})},t}o(Cre,"buildQuery");function Rre(e){return e==="all"?"$and":"$or"}o(Rre,"logicalOperatorFromUI");function yF(e){if(!e)return e;for(let t of Object.values(wa)){let r=e[t];if(!(r==null||!(0,FR.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return hF(e,yF),e}o(yF,"fixupFilterArrays");function AJe(e,t){let r=BR(e,t.query);t.sort&&(r=xre(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Dre(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}o(AJe,"search");function BR(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=mF(t),t=yF(t),!dF(t)&&t.onEmptyFilter==="none")return[];let r=o((T,R)=>A=>{for(let[O,I]of Object.entries(t[T]||{})){let D=Hc(T)?A:FM(A,eR(O)),x=R(D,I);if(t.allOr&&x)return!0;if(!t.allOr&&!x)return!1}return!t.allOr},"match"),n=r("string",(T,R)=>typeof T!="string"||typeof R!="string"?!1:T.toLowerCase().startsWith(R.toLowerCase())),i=r("fuzzy",(T,R)=>typeof T!="string"||typeof R!="string"?!1:T.toLowerCase().includes(R.toLowerCase())),s=r("range",(T,R)=>{if(T==null||T===""||((0,FR.default)(R.low)&&(0,lF.default)(R.low)&&(R.low=void 0),(0,FR.default)(R.high)&&(0,lF.default)(R.high)&&(R.high=void 0),R.low==null&&R.high==null))return!1;let A=+T;if(!isNaN(A)){let I=+R.low,D=+R.high;if(!isNaN(I)&&!isNaN(D))return A>=I&&A<=D;if(isNaN(I)){if(!isNaN(D))return A<=D}else return A>=I}let O=(0,hm.default)(T);if(O.isValid()){let I=(0,hm.default)(R.low||"0000-00-00T00:00:00.000Z"),D=(0,hm.default)(R.high||"9999-00-00T00:00:00.000Z");if(I.isValid()&&D.isValid())return O.isAfter(I)&&O.isBefore(D)||O.isSame(I)||O.isSame(D);if(I.isValid())return O.isAfter(I)||O.isSame(I);if(D.isValid())return O.isBefore(D)||O.isSame(D)}return R.low!=null&&R.high!=null?T>=R.low&&T<=R.high:R.low!=null?T>=R.low:R.high!=null?T<=R.high:!1}),a=o((T,R)=>{if(Array.isArray(T)){for(let O of T)if(a(O,R))return!0;return!1}if(T&&typeof T=="object"&&typeof R=="string")return T._id===R;if(T===R)return!0;if(T==null&&R!=null||T!=null&&R==null)return!1;let A=(0,hm.default)(T);if(A.isValid()){let O=(0,hm.default)(R);if(O.isValid())return A.isSame(O)}return!1},"_valueMatches"),u=o(T=>(...R)=>!T(...R),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=o(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),d=r("empty",f),p=r("notEmpty",u(f)),h=r("oneOf",(T,R)=>(typeof R=="string"&&(R=R.split(",")),typeof T=="number"&&(R=R.map(A=>parseFloat(A))),Array.isArray(R)?R.some(A=>a(T,A)):!1)),m=o(T=>(R,A)=>!Array.isArray(R)||(typeof A=="string"&&(A=A.split(","),typeof R[0]=="number"&&(A=A.map(O=>parseFloat(O)))),!Array.isArray(A))?!1:A.length===0?!0:A[T](O=>a(R,O)),"_contains"),g=r("contains",(T,R)=>Array.isArray(R)&&R.length===0?!0:m("every")(T,R)),y=r("notContains",(T,R)=>Array.isArray(R)&&R.length===0?!0:u(m("every"))(T,R)),b=r("containsAny",m("some")),w=r("$and",(T,R)=>{if(!R.length)return!1;for(let A of R)if(!BR([T],A).length)return!1;return!0}),E=r("$or",(T,R)=>{if(!R.length)return!1;for(let A of R)if(BR([T],{...A,allOr:!0}).length)return!0;return!1}),S=o(T=>{let R={string:n,fuzzy:i,range:s,equal:c,notEqual:l,empty:d,notEmpty:p,oneOf:h,contains:g,containsAny:b,notContains:y,$and:w,$or:E},A=Object.entries(t||{}).filter(([O,I])=>!["allOr","onEmptyFilter"].includes(O)&&I&&Object.keys(I).length>0).map(([O])=>R[O]?.(T)??!1);return dF(t)?t.allOr?A.some(O=>O===!0):A.every(O=>O===!0):!0},"docMatch");return e.filter(S)}o(BR,"runQuery");function xre(e,t,r,n="string"){if(!t||!r||!n)return e;let i=o(s=>s==null?s:n==="string"?`${s}`:parseFloat(s),"parse");return e.slice().sort((s,a)=>{let u=i(s[t]),c=i(a[t]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}o(xre,"sort");function Dre(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}o(Dre,"limit");var dF=o(e=>{if(!e)return!1;let t=o(r=>{for(let n of Ore)if(r[n])for(let i of r[n]?.conditions||[]){let s=t(i);if(s)return s}for(let n of EJe){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return t(e)},"hasFilters");var ln={};G(ln,{applications:()=>_F,automations:()=>EF,screens:()=>AF,users:()=>vF});var _F={};G(_F,{getDevAppID:()=>RJe,getProdAppID:()=>q_});var bF=ti("app"),B_=ti("app_dev");function RJe(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(B_))return e;let t=e.split(bF);t.shift();let r=t.join(bF);return`${B_}${r}`}o(RJe,"getDevAppID");function q_(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(B_))return e;let t=e.split(B_);t.shift();let r=t.join(B_);return`${bF}${r}`}o(q_,"getProdAppID");var EF={};G(EF,{checkForCollectStep:()=>wF,isAppAction:()=>CJe,isRowAction:()=>OJe,isWebhookAction:()=>IJe});function OJe(e){return e.definition.trigger?.stepId==="ROW_ACTION"}o(OJe,"isRowAction");function IJe(e){return e.definition.trigger?.stepId==="WEBHOOK"}o(IJe,"isWebhookAction");function CJe(e){return e.definition.trigger?.stepId==="APP"}o(CJe,"isAppAction");function Pre(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(BX(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(Pre(r))return!0}}return!1}o(Pre,"hasCollectBlockRecursive");function wF(e){return Pre(e.definition.steps)}o(wF,"checkForCollectStep");var vF={};G(vF,{canCreateApps:()=>xJe,containsUserID:()=>FJe,getGlobalUserID:()=>UJe,getUserAppGroups:()=>BJe,hasAdminPermissions:()=>TF,hasAppBuilderPermissions:()=>WR,hasBuilderPermissions:()=>kJe,hasCreatorPermissions:()=>GR,isAdmin:()=>j_,isAdminOrBuilder:()=>PJe,isAdminOrGlobalBuilder:()=>NJe,isAdminOrWorkspaceBuilder:()=>DJe,isBuilder:()=>SF,isCreator:()=>MJe,isGlobalBuilder:()=>jR,userAppAccessList:()=>qJe});function SF(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(q_(t))):!1}o(SF,"isBuilder");function jR(e){return SF(e)&&!WR(e)||j_(e)}o(jR,"isGlobalBuilder");function xJe(e){return jR(e)||GR(e)}o(xJe,"canCreateApps");function j_(e){return e?TF(e):!1}o(j_,"isAdmin");function DJe(e,t){return e?!!(j_(e)||t&&e.builder?.apps?.includes(q_(t))):!1}o(DJe,"isAdminOrWorkspaceBuilder");function PJe(e,t){return SF(e,t)||j_(e)}o(PJe,"isAdminOrBuilder");function NJe(e){return jR(e)||j_(e)}o(NJe,"isAdminOrGlobalBuilder");function WR(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}o(WR,"hasAppBuilderPermissions");function LJe(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}o(LJe,"hasAppCreatorPermissions");function kJe(e){return e?e.builder?.global||WR(e)||GR(e):!1}o(kJe,"hasBuilderPermissions");function TF(e){return e?!!e.admin?.global:!1}o(TF,"hasAdminPermissions");function GR(e){return e?!!e.builder?.creator:!1}o(GR,"hasCreatorPermissions");function MJe(e){return e?jR(e)||TF(e)||GR(e)||WR(e)||LJe(e):!1}o(MJe,"isCreator");function UJe(e){if(typeof e!="string")return e;let t=`ro${ce}ta_users${ce}`;return e.startsWith(t)?e.split(t)[1]:e}o(UJe,"getGlobalUserID");function FJe(e){return typeof e!="string"?!1:e.includes(`us${ce}`)}o(FJe,"containsUserID");function Nre(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}o(Nre,"getUserGroups");function BJe(e,t,r){let n=q_(e);return Nre(t,r).filter(s=>Object.keys(s.roles||{}).find(a=>a===n))}o(BJe,"getUserAppGroups");function qJe(e,t){let n=Nre(e._id,t).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}o(qJe,"userAppAccessList");var AF={};G(AF,{findInSettings:()=>jJe});function jJe(e,t){let r=[];function n(i,s=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(t)?r.push({setting:s?`${s}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return o(n,"recurse"),n(e.props),r}o(jJe,"findInSettings");var Vdr={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},Hdr={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},Qdr={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};function Lre(e){let t=Object.keys(e.schema),r=t.map(s=>s.toLowerCase()),n=new Set(r),i=[];if(n.size!==r.length)for(let s of n.keys())r.filter(u=>u===s).length>1&&i.push(s);for(let s of vn)t.find(a=>a===s)&&i.push(s);return i}o(Lre,"findDuplicateInternalColumns");var Ve={};G(Ve,{steps:()=>s1,triggers:()=>a1});var s1={};G(s1,{agent:()=>n1,apiRequest:()=>LF,bash:()=>RF,branch:()=>OF,classifyText:()=>JF,collect:()=>IF,createRow:()=>CF,delay:()=>xF,deleteRow:()=>DF,discord:()=>PF,executeQuery:()=>NF,executeScript:()=>kF,executeScriptV2:()=>MF,extract:()=>r1,extractState:()=>i1,filter:()=>UF,generate:()=>t1,getRow:()=>FF,loop:()=>BF,loopV2:()=>o1,make:()=>qF,n8n:()=>jF,openai:()=>WF,outgoingWebhook:()=>GF,promptLLM:()=>XF,queryRows:()=>$F,sendSmtpEmail:()=>VF,serverLog:()=>HF,slack:()=>QF,summarise:()=>e1,translate:()=>ZF,triggerAutomationRun:()=>KF,updateRow:()=>zF,zapier:()=>YF});var RF={};G(RF,{definition:()=>WJe});var WJe={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var OF={};G(OF,{definition:()=>GJe});var GJe={name:"Branch",icon:"git-branch",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var IF={};G(IF,{definition:()=>$Je});var $Je={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var CF={};G(CF,{definition:()=>VJe});var VJe={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var xF={};G(xF,{definition:()=>HJe});var HJe={name:"Delay",icon:"clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var DF={};G(DF,{definition:()=>QJe});var QJe={description:"Delete a row from your database",icon:"trash-simple",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var PF={};G(PF,{definition:()=>KJe});var KJe={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var NF={};G(NF,{definition:()=>zJe});var zJe={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var LF={};G(LF,{definition:()=>YJe});var YJe={name:"API Request",tagline:"Execute a REST request",icon:"globe",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var kF={};G(kF,{definition:()=>JJe});var JJe={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var MF={};G(MF,{definition:()=>XJe});var XJe={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var UF={};G(UF,{PrettyFilterConditions:()=>kre,definition:()=>ZJe});var kre={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},ZJe={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(KA),pretty:Object.values(kre)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var FF={};G(FF,{definition:()=>t7e});var e7e={ascending:"Ascending",descending:"Descending"},t7e={description:"Get a single row from the database",icon:"box-arrow-down",name:"Get Row",tagline:"Get a row from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"GET_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},rowId:{type:"string",title:"Row ID"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(co),pretty:Object.values(e7e)}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["row","success"]}}};var BF={};G(BF,{definition:()=>r7e});var r7e={name:"Looping",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var qF={};G(qF,{definition:()=>n7e});var n7e={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var jF={};G(jF,{definition:()=>i7e});var i7e={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Qb)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var WF={};G(WF,{definition:()=>o7e});var Mre=(u=>(u.GPT_4O_MINI="gpt-4o-mini",u.GPT_4O="gpt-4o",u.GPT_4="gpt-4",u.GPT_35_TURBO="gpt-3.5-turbo",u.GPT_5_MINI="gpt-5-mini",u.GPT_5="gpt-5",u.GPT_5_NANO="gpt-5-nano",u))(Mre||{}),o7e={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(Mre)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var GF={};G(GF,{definition:()=>s7e});var Ure=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(Ure||{}),s7e={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(Ure),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var $F={};G($F,{definition:()=>u7e});var a7e={ascending:"Ascending",descending:"Descending"},u7e={description:"Query rows from the database",icon:"magnifying-glass",name:"Query Rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(co),pretty:Object.values(a7e)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var VF={};G(VF,{definition:()=>c7e});var c7e={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var HF={};G(HF,{definition:()=>l7e});var l7e={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var QF={};G(QF,{definition:()=>f7e});var f7e={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var KF={};G(KF,{definition:()=>d7e});var d7e={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var zF={};G(zF,{definition:()=>p7e});var p7e={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var YF={};G(YF,{definition:()=>h7e});var h7e={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var JF={};G(JF,{definition:()=>m7e});var m7e={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var XF={};G(XF,{definition:()=>g7e});var g7e={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var ZF={};G(ZF,{definition:()=>y7e});var y7e={name:"Translate",tagline:"Translate text to a different language",icon:"globe",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var e1={};G(e1,{definition:()=>b7e});var Fre=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(Fre||{}),b7e={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(Fre)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var t1={};G(t1,{definition:()=>_7e});var _7e={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},features:{LOOPING:!0},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values($A),pretty:Object.values(FX)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var r1={};G(r1,{definition:()=>w7e});var w7e={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(VA),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(HA),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var n1={};G(n1,{definition:()=>E7e});var E7e={name:"Agent",icon:"Effect",tagline:"Run an AI agent with tools",description:"Execute a pre-configured AI agent that can use tools to accomplish tasks",stepId:"AGENT",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{agentId:{customType:"agent",title:"Agent",description:"Select the agent to run"},prompt:{type:"longform",title:"Prompt",description:"The task or question to send to the agent"},useStructuredOutput:{type:"boolean",title:"Use structured output",description:"Constrain the agent response to a specific JSON structure"},outputSchema:{type:"object",customType:"outputSchema",title:"Output Schema",description:"Define the structure of the agent's output",dependsOn:"useStructuredOutput"}},required:["agentId","prompt"]},outputs:{properties:{response:{type:"string",description:"The agent's response"},success:{type:"boolean",description:"Whether the agent completed successfully"},steps:{type:"array",description:"The steps taken by the agent"},output:{type:"object",description:"Structured output from the agent (when output schema is defined)"}},required:["response","success"]}},type:"ACTION"};var i1={};G(i1,{definition:()=>S7e});var S7e={name:"State",tagline:"Extract automation state",icon:"brackets-curly",description:"Extract automation state into a named variable",type:"ACTION",internal:!0,new:!1,stepId:"EXTRACT_STATE",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{key:{type:"string",title:"Key"},value:{type:"longform",title:"Value"}},required:["value","key"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var o1={};G(o1,{definition:()=>T7e});var T7e={name:"Loop",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP_V2",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{children:{type:"array",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}}},outputs:{properties:{success:{type:"boolean",description:"Loop success"},iterations:{type:"number",description:"The number of iterations executed"},items:{type:"json",description:"Per-step iteration results"},summary:{type:"json",description:"Loop summary including per-step counters"}},required:["success"]}},type:"LOGIC"};var a1={};G(a1,{definitions:()=>P7e});var Bre={name:"User action",event:"app:trigger",icon:"cursor-click",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var qre={name:"CRON / Schedule",event:"cron:trigger",icon:"clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var jre={name:"Email Received",event:"email:trigger",icon:"envelope",tagline:"Email Trigger",description:"Triggers automation when an email is received",stepId:"EMAIL",inputs:{host:"",port:993,secure:!0,username:"",password:"",mailbox:"INBOX"},schema:{inputs:{properties:{host:{type:"string",description:"IMAP host address"},port:{type:"number",description:"IMAP port"},secure:{type:"boolean",description:"Use TLS/SSL for the IMAP connection"},username:{type:"string",description:"IMAP username"},password:{type:"string",description:"IMAP password"},mailbox:{type:"string",description:"Mailbox to monitor"}},required:["host","port","secure","username","password"]},outputs:{properties:{from:{type:"string",description:"Who sent the email"},to:{type:"string",description:"Who received the email"},cc:{type:"array",subtype:"string",description:"Who was CC'd on the email"},subject:{type:"string",description:"What was the subject of the email"},sentAt:{type:"datetime",description:"When the email was sent"},bodyText:{type:"string",description:"Email content (plain text)"}},required:["from","to"]}},type:"TRIGGER"};var Wre={name:"Row Deleted",event:"row:delete",icon:"trash-simple",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Gre={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var $re={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Vre={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var Hre={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"row action workflow",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var P7e={ROW_SAVED:Gre,ROW_UPDATED:$re,ROW_DELETED:Wre,WEBHOOK:Vre,APP:Bre,CRON:qre,EMAIL:jre,ROW_ACTION:Hre};var N7e=Object.values(Me).sort((e,t)=>t.length-e.length);function Qre(e){return N7e.find(t=>e.startsWith(`${t}${ce}`))}o(Qre,"getDocumentType");var L7e=Object.values(Kc).sort((e,t)=>t.length-e.length);function Kre(e){return L7e.find(t=>e.startsWith(`${t}${ce}`))}o(Kre,"getVirtualDocumentType");var k7e=new RegExp("^datasource_plus_(.+)__(.+)$"),$R=o(e=>t=>!!t&&t.startsWith(`${e}${ce}`),"idCheckFor"),M7e=o(e=>{let t=e.match(k7e);return!!e&&t!==null},"isExternalTableId"),Ls=o(e=>U7e(e)||M7e(e),"isTableIdOrExternalTableId"),U7e=$R("ta"),dn=$R("view"),mm=$R("datasource"),zre=$R("query");function Zr(e){if(!dn(e))throw new Error("Unable to extract table ID, is not a view ID");let t=e.split(ce);return t.shift(),e=t.join(ce),new RegExp(`^(?<tableId>.+)${ce}([^${ce}]+)$`).exec(e).groups.tableId}o(Zr,"getTableIdFromViewId");var u1=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(u1||{}),al=(f=>(f.USER_BY_WORKSPACE="by_app",f.USER_BY_EMAIL="by_email2",f.BY_API_KEY="by_api_key",f.LINK="by_link",f.ROUTING="screen_routes_2",f.AUTOMATION_LOGS="automation_logs",f.ACCOUNT_BY_EMAIL="account_by_email",f.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",f.USER_BY_GROUP="user_by_group",f.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",f))(al||{}),W_={by_email2:["by_email"]},tr={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},ks=ti("app"),c1=ti("app_dev"),Ms=c1,ul="internal",Yre="budibase",Fn="_design/sqlite",Jre="ta_bb_jobs",Xre="ta_bb_inventory",Zre="ta_bb_expenses",ene="ta_bb_employee",VR=`ro${ce}ta_users${ce}`,yd=(r=>(r[r.SQLITE=Fn]="SQLITE",r.MIGRATIONS="_design/migrations",r))(yd||{});var l1=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(l1||{}),gm=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(gm||{}),tne=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(tne||{}),rne=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(rne||{}),F7e=new Date(-2147483647e3),f1=new Date(2147483647e3),Lr="default";var Fe={};G(Fe,{CacheKey:()=>_n,TTL:()=>Dp,bustCache:()=>ey,destroy:()=>bS,docWritethrough:()=>JH,generic:()=>_S,get:()=>Pp,invite:()=>ZH,keys:()=>V0,passwordReset:()=>e4,store:()=>cc,user:()=>hf,withCache:()=>rf,withCacheWithDynamicTTL:()=>JRe,workspace:()=>zw,writethrough:()=>F3});var JH={};G(JH,{DocWritethrough:()=>YH,DocWritethroughProcessor:()=>yS,getProcessor:()=>MMt,init:()=>YRe});var Vn={};G(Vn,{BudibaseQueue:()=>$s,InMemoryQueue:()=>AI,JobQueue:()=>ag,QueuedProcessor:()=>zH,UnretriableError:()=>G0,shutdown:()=>fct});var d1=require("crypto"),QR=require("fs"),q7e=require("lodash"),G_=require("path");var j7e=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,G_.resolve)((0,G_.join)(__dirname,"..","..","..")),nne=!1;!nne&&HR()&&!p1()&&(require("dotenv").config({path:(0,G_.join)(j7e,".env")}),nne=!0);function p1(){return one()}o(p1,"isTest");function one(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}o(one,"isJest");function HR(){return process.env.NODE_ENV!=="production"}o(HR,"isDev");function W7e(e){if(e)return parseInt(e)}o(W7e,"parseIntSafe");var ym={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},ine=!!parseInt(process.env.SELF_HOSTED||"");function G7e(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}o(G7e,"getAPIEncryptionKey");function $7e(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}o($7e,"httpLogging");function V7e(){function e(r){function n(u,c){let l=`${c}/${u}`;if((0,QR.existsSync)(l))return l;let f=`${c}/..`;return f===c?null:n(u,f)}o(n,"findFileInAncestors");let i=n(r,process.cwd()),s=(0,QR.readFileSync)(i,"utf-8");return JSON.parse(s)}o(e,"getParentFile");let t;if(HR()&&!p1())try{t=`${e("lerna.json").version}+local`}catch{}try{let r=e("package.json");return{VERSION:t||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}o(V7e,"getPackageJsonFields");function H7e(){return cl.SERVICE_TYPE==="worker"}o(H7e,"isWorker");function Q7e(){return cl.SERVICE_TYPE==="apps"}o(Q7e,"isApps");function K7e(){return cl.BUDIBASE_ENVIRONMENT==="QA"}o(K7e,"isQA");function z7e(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}o(z7e,"getServiceName");var cl={isTest:p1,isJest:one,isDev:HR,isWorker:H7e,isApps:Q7e,isQA:K7e,isProd:()=>!HR(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,d1.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,d1.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:G7e(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:ine,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||ym.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||ym.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||ym.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||ym.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||ym.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||ym.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:z7e(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:$7e(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:ine?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...V7e(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(e,t){process.env[e]=t,cl[e]=t},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:W7e(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC};var sne=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD","REDIS_USERNAME"];for(let[e,t]of Object.entries(cl))t==="0"&&(cl[e]=0),t==="false"&&(cl[e]=0);var L=cl;var YR={};G(YR,{Databases:()=>h1,SEPARATOR:()=>bm,SelectableDatabase:()=>KR,getRedisClusterOptions:()=>m1,getRedisConnectionDetails:()=>zR,getRedisOptions:()=>bd,removeDbPrefix:()=>g1});var bm="-",h1=(E=>(E.PW_RESETS="pwReset",E.VERIFICATIONS="verification",E.INVITATIONS="invitation",E.DEV_LOCKS="devLocks",E.DEBOUNCE="debounce",E.SESSIONS="session",E.USER_CACHE="users",E.FLAGS="flags",E.WORKSPACE_METADATA="appMetadata",E.QUERY_VARS="queryVars",E.LICENSES="license",E.GENERIC_CACHE="data_cache",E.WRITE_THROUGH="writeThrough",E.LOCKS="locks",E.SOCKET_IO="socket_io",E.BPM_EVENTS="bpmEvents",E.DOC_WRITE_THROUGH="docWriteThrough",E.RECAPTCHA_SESSION="recaptchaSession",E.OPENAPI_IMPORT_SPECS="openapiImportSpecs",E))(h1||{}),KR=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(KR||{});function zR(){let e=L.REDIS_PASSWORD,t=L.REDIS_USERNAME,r=L.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");t=t||a[0]||void 0,e=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),s=parseInt(i);return{host:n,password:e,username:t,port:isNaN(s)?6379:s}}o(zR,"getRedisConnectionDetails");function m1(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...bd(),tls:{}}}}o(m1,"getRedisClusterOptions");function bd(){let{host:e,password:t,port:r,username:n}=zR();return{connectTimeout:3e4,port:r,host:e,password:t,...n&&{username:n}}}o(bd,"getRedisOptions");function g1(e){let t=e.split(bm);return t.length>=2?(t.shift(),t.join(bm)):t[0]}o(g1,"removeDbPrefix");var Mle=U(require("events"));var it={};G(it,{Duration:()=>nr,DurationType:()=>kle,GZIP_PREFIX:()=>vI,clearCookie:()=>Nl,compare:()=>_1,getCookie:()=>Vu,getDispatcher:()=>Xut,getWorkspaceIdFromCtx:()=>Gd,gunzipFromBase64:()=>rct,gzipToBase64:()=>tct,hasCircularStructure:()=>$ut,hash:()=>b1,isAudited:()=>$q,isClient:()=>Gut,isPublicApiRequest:()=>jut,isServingApp:()=>Fut,isServingBuilder:()=>But,isServingBuilderPreview:()=>qut,isValidInternalAPIKey:()=>nE,newid:()=>Nt,openJwt:()=>EI,setCookie:()=>Lle,time:()=>Hut,timeout:()=>Gq,urlHasProtocol:()=>Vut,validEmail:()=>Vq});var ane=require("uuid");function Nt(){return(0,ane.v4)().replace(/-/g,"")}o(Nt,"newid");var y1=require("bcrypt"),Y7e=L.SALT_ROUNDS||10;async function b1(e){let t=await y1.genSalt(Y7e);return y1.hash(e,t)}o(b1,"hash");async function _1(e,t){return y1.compare(e,t)}o(_1,"compare");var wI=U(require("jsonwebtoken"));var C={};G(C,{DEFAULT_TENANT_ID:()=>Lr,baseGlobalDBName:()=>Hw,doInAutomationContext:()=>Hat,doInContext:()=>bq,doInEnvironmentContext:()=>nut,doInFeatureFlagOverrideContext:()=>Aq,doInIPContext:()=>Eq,doInIdentityContext:()=>H_,doInLicenseContext:()=>Kat,doInScimContext:()=>iut,doInSelfHostTenantUsingCloud:()=>Qat,doInTenant:()=>Wi,doInWorkspaceContext:()=>Jat,doInWorkspaceMigrationContext:()=>Zat,ensureSnippetContext:()=>qce,getAuditLogDBName:()=>Fce,getAuditLogsDB:()=>sut,getAutomationId:()=>_q,getCurrentContext:()=>Bd,getDevWorkspaceDB:()=>uut,getDevWorkspaceId:()=>tut,getEnvironmentVariables:()=>out,getFeatureFlagOverrides:()=>vq,getFeatureFlags:()=>Sq,getGlobalDB:()=>gt,getGlobalDBName:()=>Fd,getIP:()=>wq,getIdentity:()=>Pu,getLicense:()=>zat,getOrThrowWorkspaceId:()=>eut,getPlatformURL:()=>yq,getProdWorkspaceDB:()=>aut,getProdWorkspaceId:()=>rut,getScimDBName:()=>Wat,getSelfHostCloudDB:()=>Yat,getTableForView:()=>cut,getTenantIDFromWorkspaceID:()=>tg,getTenantId:()=>Ue,getWorkspaceDB:()=>rg,getWorkspaceId:()=>Si,identity:()=>V_,isMultiTenant:()=>Dl,isScim:()=>Gs,isSelfHostUsingCloud:()=>nI,isTenancyEnabled:()=>$at,isTenantIdSet:()=>Gat,setFeatureFlags:()=>Tq,setTableForView:()=>lut});var V_={};G(V_,{doInAccountContext:()=>J7e,doInIdentityContext:()=>E1,doInUserContext:()=>S1,getAccountUserId:()=>une,getIdentity:()=>w1});function w1(){return Pu()}o(w1,"getIdentity");function E1(e,t){return H_(e,t)}o(E1,"doInIdentityContext");function S1(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return E1(n,r)}o(S1,"doInUserContext");function J7e(e,t){let r=une(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return E1(i,t)}o(J7e,"doInAccountContext");function une(e){let t;return WA(e)?t=e.budibaseUserId:t=e.accountId,t}o(une,"getAccountUserId");var Us=o(e=>{let t=T1(e),r,n;if(t.auth?.username)r=t.auth.username;else if(L.COUCH_DB_USERNAME)r=L.COUCH_DB_USERNAME;else if(!L.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(L.COUCH_DB_PASSWORD)n=L.COUCH_DB_PASSWORD;else if(!L.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=L.COUCH_DB_SQL_URL;if(L.isDev()&&!s)s="http://localhost:4006";else if(!s&&t.url){let a=new URL(t.url);s=t.url.replace(a.port,"4984")}return{url:t.url,sqlUrl:T1(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),T1=o((e=L.COUCH_DB_URL)=>{let t,r,n,i;if(e){/^https?:\/\//i.test(e)||(e=`http://${e}`);let a=e.split("://"),u=a[0],c=a.slice(1).join("://");if(e.includes("@")){let l=c.split("@");i=l[l.length-1];let f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=c;t=`${u}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var kce=U(require("@budibase/nano"));var cne=U(require("node-fetch"));function JR(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}o(JR,"checkSlashesInUrl");async function lne(e,t="GET",r){let{url:n,cookie:i}=Us(),s=`${n}/${e}`;return await Q_({url:s,cookie:i,method:t,body:r})}o(lne,"directCouchCall");async function Q_({url:e,cookie:t,method:r,body:n}){let i={method:r,headers:{Authorization:t}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,cne.default)(JR(encodeURI(e)),i)}o(Q_,"directCouchUrlCall");async function v1(e,t="GET",r){let n=await lne(e,t,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}o(v1,"directCouchQuery");var Ud=U(require("pouchdb"));var xce,Dce=!1,sq=o((e={})=>{let{url:t,cookie:r}=Us(),n={prefix:t,fetch:(i,s)=>(s.headers.set("Authorization",r),Ud.default.fetch(i,s))};if(e.inMemory){let i=Tae();Ud.default.plugin(i),n={adapter:"memory"}}if(e.onDisk&&(n={adapter:"leveldb"}),e.replication){let i=Cce();Ud.default.plugin(i.plugin),Ud.default.adapter("writableStream",i.adapters.writableStream)}if(e.find){let i=require("pouchdb-find");Ud.default.plugin(i)}return Ud.default.defaults(n)},"getPouch");function XO(e){xce=sq(e),Dce=!0}o(XO,"init");var vat=o(()=>{if(!Dce)throw new Error("init has not been called")},"checkInitialised");function ts(e,t){vat();let r=new xce(e,t),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}o(ts,"getPouchDB");async function Gw(e){if(!(!e||L.isTest()))try{return await e.close()}catch{}}o(Gw,"closePouchDB");var Mr=U(require("dd-trace"));var Xm=class{constructor(t){this.db=t}static{o(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return Mr.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:t}),t?this.db.exists(t):this.db.exists()))}get(t){return Mr.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return Mr.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:t});let n=await this.db.tryGet(t);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(t,r){return Mr.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:t?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(t,r);return n.addTags({num_docs_found:i.length}),i})}remove(t,r){return Mr.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:t,rev:r});let i=typeof t=="object",s=i?t._id:t;r=i?t._rev:r;let a=await this.db.remove(s,r);return n.addTags({ok:a.ok}),a})}bulkRemove(t,r){return Mr.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:t.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(t,r)))}put(t,r){return Mr.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:t._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(t,r);return n.addTags({ok:i.ok}),i})}bulkDocs(t){return Mr.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return Mr.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.find(t);return r.addTags({rows_length:n.docs.length}),n})}allDocs(t){return Mr.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.allDocs(t);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(t,r){return Mr.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:t,...r});let i=await this.db.query(t,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Mr.default.trace("db.destroy",async t=>{t.addTags({db_name:this.name});let r=await this.db.destroy();return t.addTags({ok:r.ok}),r})}compact(){return Mr.default.trace("db.compact",async t=>{t.addTags({db_name:this.name});let r=await this.db.compact();return t.addTags({ok:r.ok}),r})}dump(t,r){return Mr.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(t,r)))}load(...t){return Mr.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return Mr.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return Mr.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return Mr.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return Mr.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(t,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(t){return Mr.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(t)?t.length:1}),this.db.sqlPurgeDocument(t)))}sqlDiskCleanup(){return Mr.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var hq={};G(hq,{breakExternalTableId:()=>cq,breakRowIdField:()=>Uat,buildExternalTableId:()=>Dat,convertRowId:()=>Mat,encodeTableId:()=>Pat,encodeViewId:()=>Nat,extractDate:()=>fq,generateRowIdField:()=>Lat,getNativeSql:()=>Zm,isExternalTable:()=>uq,isExternalTableID:()=>ZO,isInternalTableID:()=>xat,isRowId:()=>kat,isValidFilter:()=>tI,isValidISODateString:()=>eI,isValidISODateStringWithoutTimezone:()=>lq,isValidTime:()=>dq,sqlLog:()=>$w,validateManyToMany:()=>pq});var aq=`${ce}${ce}`,Pce=/^\[.*]$/g,Aat=encodeURIComponent(" "),Rat=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Oat=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Iat=/(\d{4}-\d{2}-\d{2})/,Cat=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ZO(e){return e.startsWith("datasource"+ce)}o(ZO,"isExternalTableID");function xat(e){return!ZO(e)}o(xat,"isInternalTableID");function Zm(e){let t=e.toSQL();if(Array.isArray(t))return t;let r;return t.toNative&&(r=t.toNative()),{sql:r?.sql||t.sql,bindings:r?.bindings||t.bindings}}o(Zm,"getNativeSql");function uq(e){return e?.sourceId&&e.sourceId.includes("datasource"+ce)&&e?.sourceId!==Kb||e?.sourceType==="external"?!0:!!(e?._id&&ZO(e._id))}o(uq,"isExternalTable");function Dat(e,t){return`${e}${aq}${encodeURIComponent(t)}`}o(Dat,"buildExternalTableId");function Pat(e){return ZO(e)?encodeURIComponent(e):e}o(Pat,"encodeTableId");function Nat(e){return encodeURIComponent(e)}o(Nat,"encodeViewId");function cq(e){let t=e.split(aq),r=t.shift(),n=t.join(aq);if(n.includes(Aat)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}o(cq,"breakExternalTableId");function Lat(e=[]){Array.isArray(e)||(e=[e]);for(let t in e)e[t]instanceof Buffer&&(e[t]=e[t].toString());return encodeURIComponent(JSON.stringify(e).replace(/"/g,"'"))}o(Lat,"generateRowIdField");function kat(e){return Array.isArray(e)||typeof e=="string"&&e.match(Pce)!=null}o(kat,"isRowId");function Mat(e){return Array.isArray(e)?e[0]:typeof e=="string"&&e.match(Pce)!=null?e.substring(1,e.length-1):e}o(Mat,"convertRowId");function Uat(e){if(!e)return[];let t=typeof e=="string"?e:e._id,r=decodeURIComponent(t).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[e]}}o(Uat,"breakRowIdField");function eI(e){let t=e.trim();if(!Rat.test(t))return!1;let r=new Date(t);return!isNaN(r.getTime())}o(eI,"isValidISODateString");function lq(e){let t=e.trim();if(!Oat.test(t))return!1;let r=new Date(t);return!isNaN(r.getTime())}o(lq,"isValidISODateStringWithoutTimezone");function fq(e){let t=e.match(Iat);if(t)return t[0]}o(fq,"extractDate");function tI(e){return e!=null&&e!==""}o(tI,"isValidFilter");function dq(e){return Cat.test(e)}o(dq,"isValidTime");function $w(e,t,r){if(!L.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}o($w,"sqlLog");function Fat(e){return!!e.through&&!!e.fromPrimary&&!!e.from&&!!e.toPrimary&&!!e.to}o(Fat,"isValidManyToManyRelationship");function pq(e){if(Fat(e))return e}o(pq,"validateManyToMany");var Nce="Database does not exist.";function Lce(e){return(0,kce.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}o(Lce,"buildNano");var Cl=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{o(this,"CouchDBError")}};function Bat(e,t,r){if(!e||!t)throw new Error("Unable to create database without database name or connection");let n=new eg(e,r,t);return new Xm(n)}o(Bat,"DatabaseWithConnection");var eg=class e{constructor(t,r,n){this.couchInfo=Us();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=Us(n),this.instanceNano=Lce(this.couchInfo)),e.nano||e.init()}static{o(this,"DatabaseImpl")}static init(){let t=Us();e.nano=Lce(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await Q_({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(t){try{return await this.performCall(r=>()=>r.head(t)),!0}catch{return!1}}nano(){return this.instanceNano||e.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let t=!this.pouchOpts?.skip_setup,r=await this.exists();if(!t&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Cl(n.message,n)}return this.getDb()}async performCallWithDBCreation(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===Nce)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new Cl(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new Cl(`CouchDB error: ${i.message}`,i)}}async get(t){return this.performCall(r=>{if(!t)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(t)})}async tryGet(t){try{return await this.get(t)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(t,r){if(!t||t.length===0)return[];t=[...new Set(t)];let n=!r?.excludeDocs,i=await this.allDocs({keys:t,include_docs:n}),s=o(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!s(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(f=>s(f)).map(f=>f.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(t,r){return this.performCall(n=>{let i,s;if(LX(t)?(i=t._id,s=t._rev):(i=t,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(t,r){let n=await this.performCall(a=>()=>a.bulk({docs:t.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,s+=a.error);if(i)throw new Cl(s,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=Nt()),this.put(t,r)}async put(t,r){if(!t._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(t.createdAt||(t.createdAt=new Date().toISOString()),t.updatedAt=new Date().toISOString(),r?.force&&t._id)try{let i=await this.get(t._id);i&&(t._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(t);return r?.returnDoc?{...i,doc:{...t,_rev:i.rev}}:i}})}async bulkDocs(t){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:t.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(t){return this.performCall(r=>async()=>r.find(t))}async allDocs(t){return this.performCall(r=>async()=>{try{return await r.list(t)}catch(n){if(n.reason===Nce)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=JR(`${this.couchInfo.sqlUrl}/${t}`);let i={url:t,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Q_(i),a=await s.text();if(s.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Cl("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw u}return JSON.parse(a)})}async sql(t,r){let i=`/${this.name}/${Fn}`;return $w("sqlite3",t,r),await this._sqlQuery(i,"POST",{query:t,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(t){Array.isArray(t)||(t=[t]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:t})}async query(t,r){return this.performCall(n=>{let[i,s]=t.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Fn)){let t=await this.get(Fn);t.sql.tables={},await this.put(t),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(t){if(t.statusCode===404)return{ok:!0};throw new Cl(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return ts(this.name).dump(t,r)}async load(t){return ts(this.name).load(t)}async createIndex(t){return ts(this.name).createIndex(t)}async deleteIndex(t){return ts(this.name).deleteIndex(t)}async getIndexes(){return ts(this.name).getIndexes()}};function Ei(e,t){return new Xm(new eg(e,t))}o(Ei,"getDB");async function Io(e,t,r){let n=Ei(e,r);return await t(n)}o(Io,"doWithDB");async function mq(e){let t="/_all_dbs";return e&&(t+=`?${e}`),await v1(t)}o(mq,"directCouchAllDbs");var gq="No app provided";function xl(e){if(!e)throw gq;return e.startsWith(Ms)}o(xl,"isDevWorkspaceID");function qat(e){if(!e)throw gq;return e.startsWith(ks)&&!xl(e)}o(qat,"isProdWorkspaceID");function Vw(e){if(!e)throw gq;return xl(e.appId)}o(Vw,"isDevWorkspace");function rI(e){if(!e||e.startsWith(Ms))return e;let t=e.split(ks);t.shift();let r=t.join(ks);return`${Ms}${r}`}o(rI,"getDevWorkspaceID");function Co(e){if(!e||!e.startsWith(Ms))return e;let t=e.split(Ms);t.shift();let r=t.join(Ms);return`${ks}${r}`}o(Co,"getProdWorkspaceID");var Mce=require("async_hooks");var tn=class e{static{o(this,"Context")}static{this.storage=new Mce.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var Uce=null;function Fd(e){return e||(e=Ue()),Hw(e)}o(Fd,"getGlobalDBName");function Fce(e){return e||(e=Ue()),e===Lr?tr.AUDIT_LOGS.name:`${e}${ce}${tr.AUDIT_LOGS.name}`}o(Fce,"getAuditLogDBName");function Wat(e){return e||(e=Ue()),e===Lr?tr.SCIM_LOGS.name:`${e}${ce}${tr.SCIM_LOGS.name}`}o(Wat,"getScimDBName");function Hw(e){return!e||e===Lr?tr.GLOBAL.name:`${e}${ce}${tr.GLOBAL.name}`}o(Hw,"baseGlobalDBName");function yq(){return L.PLATFORM_URL}o(yq,"getPlatformURL");function Dl(){return!!L.MULTI_TENANCY}o(Dl,"isMultiTenant");function Gat(){return!!tn.get()?.tenantId}o(Gat,"isTenantIdSet");function $at(){return L.MULTI_TENANCY}o($at,"isTenancyEnabled");function tg(e){if(!e)return;if(!Dl())return Lr;let t=e.split(ce),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}o(tg,"getTenantIDFromWorkspaceID");function Vat(e){let t;try{t=tn.get()}catch{t={}}return t={...t,...e},t}o(Vat,"updateContext");async function Ws(e,t){Xat();let r=Vat(e);return tn.run(r,t)}o(Ws,"newContext");async function Hat(e){return await qce(),await Ws({tenantId:tg(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}o(Hat,"doInAutomationContext");async function bq(e,t){let r=tg(e);return Ws({tenantId:r,appId:e},t)}o(bq,"doInContext");async function Wi(e,t){return L.MULTI_TENANCY||(e=e||Lr),Ws(e?{tenantId:e}:{},t)}o(Wi,"doInTenant");async function Qat(e,t){return Ws({tenantId:e,isSelfHostUsingCloud:!0},t)}o(Qat,"doInSelfHostTenantUsingCloud");async function Kat(e,t){return Ws({license:e},t)}o(Kat,"doInLicenseContext");function zat(){return tn.get()?.license}o(zat,"getLicense");function nI(){return!!tn.get()?.isSelfHostUsingCloud}o(nI,"isSelfHostUsingCloud");function Yat(){let e=tn.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ei(tr.SELF_HOST_CLOUD.name)}o(Yat,"getSelfHostCloudDB");async function Jat(e,t){return Bce(e,t)}o(Jat,"doInWorkspaceContext");async function Bce(e,t,r){if(!e)throw new Error("workspaceId is required");let n=tg(e),i={appId:e,...r};return n&&(i.tenantId=n),Ws(i,t)}o(Bce,"_doInWorkspaceContext");async function H_(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),Ws(r,t)}o(H_,"doInIdentityContext");function Xat(){if(tn.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}o(Xat,"guardMigration");async function Zat(e,t){return Bce(e,t,{isMigrating:!0})}o(Zat,"doInWorkspaceMigrationContext");function Pu(){try{return tn.get()?.identity}catch{}}o(Pu,"getIdentity");function Ue(){if(!Dl())return Lr;let t=tn.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}o(Ue,"getTenantId");function _q(){return tn.get()?.automationId}o(_q,"getAutomationId");function Si(){let t=tn.get()?.appId;return!t&&L.isTest()&&Uce?Uce:t}o(Si,"getWorkspaceId");function eut(){let e=Si();if(!e)throw new Error("Workspace id not set");return e}o(eut,"getOrThrowWorkspaceId");function wq(){return tn.get()?.ip}o(wq,"getIP");var tut=o(()=>{let e=Si();if(!e)throw new Error("Could not get workspaceId");return rI(e)},"getDevWorkspaceId"),rut=o(()=>{let e=Si();if(!e)throw new Error("Could not get workspaceId");return Co(e)},"getProdWorkspaceId");function nut(e,t){if(!e)throw new Error("Must supply environment variables.");return Ws({environmentVariables:e},t)}o(nut,"doInEnvironmentContext");function iut(e){return Ws({isScim:!0},e)}o(iut,"doInScimContext");function Eq(e,t){return Ws({ip:e},t)}o(Eq,"doInIPContext");async function qce(){let e=Bd();if(!e||e.snippets)return;let t,r=rg();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}o(qce,"ensureSnippetContext");function out(){let e=tn.get();return e.environmentVariables?e.environmentVariables:null}o(out,"getEnvironmentVariables");function gt(){let e=tn.get();if(!e||L.MULTI_TENANCY&&!e.tenantId)throw new Error("Global DB not found");if(e.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return Ei(Hw(e?.tenantId))}o(gt,"getGlobalDB");function sut(){if(!Ue())throw new Error("No tenant ID found - cannot open audit log DB");return Ei(Fce())}o(sut,"getAuditLogsDB");function rg(e){let t=Si();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(nI())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Ei(t,e)}o(rg,"getWorkspaceDB");function aut(e){let t=Si();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Ei(Co(t),e)}o(aut,"getProdWorkspaceDB");function uut(e){let t=Si();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Ei(rI(t),e)}o(uut,"getDevWorkspaceDB");function Gs(){return!!tn.get()?.isScim}o(Gs,"isScim");function Bd(){try{return tn.get()}catch{return}}o(Bd,"getCurrentContext");function Sq(e){let t=Bd();if(t)return t.featureFlagCache?.[e]}o(Sq,"getFeatureFlags");function Tq(e,t){let r=Bd();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}o(Tq,"setFeatureFlags");function vq(){return Bd()?.featureFlagOverrides||{}}o(vq,"getFeatureFlagOverrides");async function Aq(e,t){return await Ws({featureFlagOverrides:e},t)}o(Aq,"doInFeatureFlagOverrideContext");function cut(e){let t=Bd();if(t)return t.viewToTableCache?.[e]}o(cut,"getTableForView");function lut(e,t){let r=Bd();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}o(lut,"setTableForView");var F={};G(F,{AutomationViewMode:()=>u1,BUDIBASE_DATASOURCE_TYPE:()=>Yre,DEFAULT_BB_DATASOURCE_ID:()=>Kb,DEFAULT_EMPLOYEE_TABLE_ID:()=>ene,DEFAULT_EXPENSES_TABLE_ID:()=>Zre,DEFAULT_INVENTORY_TABLE_ID:()=>Xre,DEFAULT_JOBS_TABLE_ID:()=>Jre,DatabaseImpl:()=>eg,DatabaseWithConnection:()=>Bat,DeprecatedViews:()=>W_,DesignDocuments:()=>yd,DocumentType:()=>Me,InternalTable:()=>vu,QueryBuilder:()=>$u,Replication:()=>Ole,SEPARATOR:()=>ce,SQLITE_DESIGN_DOC_ID:()=>Fn,SQS_DATASOURCE_INTERNAL:()=>ul,StaticDatabases:()=>tr,UNICODE_MAX:()=>Mn,USER_METADATA_PREFIX:()=>VR,ViewName:()=>al,WORKSPACE_DEV:()=>c1,WORKSPACE_DEV_PREFIX:()=>Ms,WORKSPACE_PREFIX:()=>ks,baseGlobalDBName:()=>Hw,checkErrorCode:()=>Dle,closePouchDB:()=>Gw,createApiKeyView:()=>Ele,createNewUserEmailView:()=>_le,createPlatformAccountEmailView:()=>Tle,createPlatformUserView:()=>vle,createUserAppView:()=>wle,createView:()=>sg,dbExists:()=>Rut,directCouchAllDbs:()=>mq,directCouchCall:()=>lne,directCouchQuery:()=>v1,directCouchUrlCall:()=>Q_,doWithDB:()=>Io,fullSearch:()=>Dut,generateAIConfigID:()=>sle,generateAgentFileID:()=>ole,generateAgentID:()=>tle,generateAgentToolSourceID:()=>ile,generateAppUserID:()=>yI,generateChatAppID:()=>rle,generateChatConversationID:()=>nle,generateDevInfoID:()=>Xce,generateGlobalUserID:()=>og,generateOAuth2LogID:()=>ele,generatePluginID:()=>Zce,generateRoleID:()=>Pq,generateRowID:()=>Dq,generateTableID:()=>Qce,generateTemplateID:()=>Jce,generateUserMetadataID:()=>zce,generateVectorDbID:()=>lle,generateWorkspaceAppID:()=>ule,generateWorkspaceFavouriteID:()=>cle,generateWorkspaceID:()=>Hce,getAllDbs:()=>ble,getAllWorkspaces:()=>Jw,getCouchInfo:()=>Us,getDB:()=>Ei,getDevWorkspaceID:()=>rI,getDevWorkspaceIDs:()=>vut,getDocParams:()=>Wu,getGlobalDBName:()=>Fd,getGlobalIDFromUserMetadataID:()=>Yce,getGlobalUserParams:()=>jd,getLiteLLMKeyID:()=>ale,getOAuth2ConfigParams:()=>mle,getPluginParams:()=>hle,getPouch:()=>sq,getPouchDB:()=>ts,getProdWorkpaceIDs:()=>Tut,getProdWorkspaceID:()=>Co,getQueryIndex:()=>fle,getRoleParams:()=>_I,getRowParams:()=>Nq,getStartEndKeyURL:()=>Yw,getTemplateParams:()=>ple,getUrlInfo:()=>T1,getUserMetadataParams:()=>dle,getUsersByWorkspaceParams:()=>bI,getWorkspaceAppParams:()=>gle,getWorkspaceFavouriteParams:()=>yle,getWorkspacesByIDs:()=>Sut,init:()=>XO,isDevWorkspace:()=>Vw,isDevWorkspaceID:()=>xl,isDocumentConflictError:()=>Nut,isGlobalUserID:()=>Kce,isProdWorkspaceID:()=>qat,isSameWorkspaceID:()=>Aut,paginatedSearch:()=>xut,pagination:()=>Lq,prefixRoleID:()=>ju,queryGlobalView:()=>Gu,queryGlobalViewRaw:()=>Uq,queryPlatformView:()=>Zw,queryView:()=>Mq,queryViewRaw:()=>Xw,removeKeyNumbering:()=>eE,searchIndexes:()=>qq});var zw={};G(zw,{WorkspaceState:()=>xq,getWorkspaceMetadata:()=>gI,invalidateWorkspaceMetadata:()=>wut});var Pl={};G(Pl,{getCacheClient:()=>Oq,getDocWritethroughClient:()=>gut,getInviteClient:()=>qd,getLockClient:()=>Cq,getOpenapiImportSpecsClient:()=>hut,getPasswordResetClient:()=>Kw,getSessionClient:()=>ig,getSocketClient:()=>mut,getUserClient:()=>Qw,getWorkspaceClient:()=>mI,getWritethroughClient:()=>Iq,init:()=>rs,shutdown:()=>$ce});var oI=U(require("ioredis"));var iI=require("dd-trace"),Wce=require("lodash");var jce;if(L.MOCK_REDIS)try{jce=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function fut(e=0){return await iI.tracer.trace("Redis.init",async t=>{if(L.MOCK_REDIS)return t.addTags({mock:!0}),new jce(bd());let r;if(L.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=zR();r=new oI.Cluster([{host:n,port:i}],m1())}else r=new oI.default(bd());return new Promise((n,i)=>{r.on("error",s=>{t.addTags({error:!0}),console.error(`failed to connect to redis (db: ${e})`,s),i(s)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${e})`)}),r.on("ready",()=>{t.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${e})`),n(r)})})})}o(fut,"init");function dut(e,t){return new Promise((r,n)=>{let i=new Set;e.on("data",s=>s.forEach(a=>i.add(a))),e.on("error",s=>n(s)),e.on("end",async()=>{try{let s=Array.from(i).map(async a=>{let u=await t.get(a);return u&&(u=JSON.parse(u)),{key:g1(a),value:u}});r(await Promise.all(s))}catch(s){n(s)}})})}o(dut,"promisifyStream");function put(e){return e.isCluster}o(put,"isCluster");var Rq=class e{static{o(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await iI.tracer.trace("RedisWrapper.init",async n=>{let i=await fut(r);return r&&!L.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return iI.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${bm}${t}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(t=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:t}),t=`${this.db}${bm}${t}`;let n;put(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:100}):n=this.client.scanStream({match:t+"*",count:100});let i=await dut(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(t){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:t}),this.client.keys(this.prefixed(t))))}async exists(t){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:t}),await this.client.exists(this.prefixed(t))))}async get(t){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:t});let n=await this.client.get(this.prefixed(t));n!=null&&n.key&&(n.key=t);try{return JSON.parse(n)}catch{return n}})}async bulkGet(t){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:t.length}),t.length===0)return{};let n=await this.client.mget(t.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,Wce.zip)(t,n).reduce((i,[s,a])=>{if(s===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${t.length} vs ${n.length}`);try{i[s]=a?JSON.parse(a):null}catch{i[s]=a}return i},{})})}async store(t,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:t,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(t),r),n&&await this.client.expire(this.prefixed(t),n)})}async bulkStore(t,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(t).length,expirySeconds:r});let i=Object.entries(t).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let a of Object.keys(i))s.expire(a,r);await s.exec()})}async getTTL(t){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:t}),await this.client.ttl(this.prefixed(t))))}async setExpiry(t,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:t,expirySeconds:r}),await this.client.expire(this.prefixed(t),r)))}async delete(t){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:t}),await this.client.del(this.prefixed(t))})}async bulkDelete(t){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:t.length}),await this.client.del(t.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async t=>{let r=await this.scan();t.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(t){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:t});let n=await this.client.incr(this.prefixed(t));if(isNaN(n))throw new Error(`Redis ${t} does not contain a number`);return n})}async deleteIfValue(t,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:t});let i=`
433
+ Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta. Donec sollicitudin molestie malesuada. Pellentesque in ipsum id orci porta dapibus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.`;u2e.exports=M5t});var x8=v((l2e,f2e)=>{"use strict";var Pn=Jn(),ph=MT(),tt=f2e.exports,U5t=c2e();tt.append=function(e,t){return typeof e=="string"&&typeof t=="string"?e+t:e};tt.camelcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return t.toUpperCase()})};tt.capitalize=function(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)};tt.capitalizeAll=function(e){if(typeof e!="string")return"";if(Pn.isString(e))return e.replace(/\w\S*/g,function(t){return tt.capitalize(t)})};tt.center=function(e,t){if(typeof e!="string")return"";for(var r="",n=0;n<t;)r+="&nbsp;",n++;return r+e+r};tt.chop=function(e){return typeof e!="string"?"":ph.chop(e)};tt.dashcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"-"+t})};tt.dotcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"."+t})};tt.downcase=function(){return tt.lowercase.apply(this,arguments)};tt.ellipsis=function(e,t){if(Pn.isString(e))return e.length<=t?e:tt.truncate(e,t)+"\u2026"};tt.hyphenate=function(e){return typeof e!="string"?"":e.split(" ").join("-")};tt.isString=function(e){return typeof e=="string"};tt.lowercase=function(e){return Pn.isObject(e)&&e.fn?e.fn(this).toLowerCase():typeof e!="string"?"":e.toLowerCase()};tt.occurrences=function(e,t){if(typeof e!="string")return"";for(var r=t.length,n=0,i=0;(n=e.indexOf(t,n))>-1;)i++,n+=r;return i};tt.pascalcase=function(e){return typeof e!="string"?"":(e=ph.changecase(e,function(t){return t.toUpperCase()}),e.charAt(0).toUpperCase()+e.slice(1))};tt.pathcase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"/"+t})};tt.plusify=function(e,t){return typeof e!="string"?"":(Pn.isString(t)||(t=" "),e.split(t).join("+"))};tt.prepend=function(e,t){return typeof e=="string"&&typeof t=="string"?t+e:e};tt.raw=function(e){var t=e.fn(),r=Pn.options(this,e);if(r.escape!==!1)for(var n=0;(n=t.indexOf("{{",n))!==-1;)t[n-1]!=="\\"&&(t=t.slice(0,n)+"\\"+t.slice(n)),n+=3;return t};tt.remove=function(e,t){return typeof e!="string"?"":Pn.isString(t)?e.split(t).join(""):e};tt.removeFirst=function(e,t){return typeof e!="string"?"":Pn.isString(t)?e.replace(t,""):e};tt.replace=function(e,t,r){return typeof e!="string"?"":Pn.isString(t)?(Pn.isString(r)||(r=""),e.split(t).join(r)):e};tt.replaceFirst=function(e,t,r){return typeof e!="string"?"":Pn.isString(t)?(Pn.isString(r)||(r=""),e.replace(t,r)):e};tt.reverse=Wy().reverse;tt.sentence=function(e){return typeof e!="string"?"":e.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})};tt.snakecase=function(e){return typeof e!="string"?"":ph.changecase(e,function(t){return"_"+t})};tt.split=function(e,t){return typeof e!="string"?"":(Pn.isString(t)||(t=","),e.split(t))};tt.startsWith=function(e,t,r){var n=[].slice.call(arguments);return r=n.pop(),Pn.isString(t)&&t.indexOf(e)===0?r.fn(this):typeof r.inverse=="function"?r.inverse(this):""};tt.titleize=function(e){if(typeof e!="string")return"";for(var t=e.replace(/[- _]+/g," "),r=t.split(" "),n=r.length,i=[],s=0;n--;){var a=r[s++];i.push(l2e.capitalize(a))}return i.join(" ")};tt.trim=function(e){return typeof e=="string"?e.trim():""};tt.trimLeft=function(e){if(Pn.isString(e))return e.replace(/^\s+/,"")};tt.trimRight=function(e){if(Pn.isString(e))return e.replace(/\s+$/,"")};tt.truncate=function(e,t,r){if(Pn.isString(e))return typeof r!="string"&&(r=""),e.length>t?e.slice(0,t-r.length)+r:e};tt.truncateWords=function(e,t,r){if(Pn.isString(e)&&!isNaN(t)){typeof r!="string"&&(r="\u2026");var n=Number(t),i=e.split(/[ \t]/);if(n>=i.length)return e;i=i.slice(0,n);var s=i.join(" ").trim();return s+r}};tt.upcase=function(){return tt.uppercase.apply(this,arguments)};tt.uppercase=function(e){return Pn.isObject(e)&&e.fn?e.fn(this).toUpperCase():typeof e!="string"?"":e.toUpperCase()};tt.lorem=function(e){return(isNaN(e)||e<1||!e)&&(e=11),U5t.substring(0,e)}});var P8=v((a8r,d2e)=>{"use strict";var D8=require("url"),GT=Jn(),F5t=require("querystring"),hh=d2e.exports;hh.encodeURI=function(e){if(GT.isString(e))return encodeURIComponent(e)};hh.escape=function(e){if(GT.isString(e))return F5t.escape(e)};hh.decodeURI=function(e){if(GT.isString(e))return decodeURIComponent(e)};hh.urlResolve=function(e,t){return D8.resolve(e,t)};hh.urlParse=function(e){return D8.parse(e)};hh.stripQuerystring=function(e){if(GT.isString(e))return e.split("?")[0]};hh.stripProtocol=function(e){if(GT.isString(e)){var t=D8.parse(e);return t.protocol="",t.format()}}});var N8=v((u8r,p2e)=>{"use strict";var B5t=require("uuid"),q5t=p2e.exports;q5t.uuid=function(){return B5t.v4()}});var m2e=v((c8r,h2e)=>{"use strict";h2e.exports={array:Wy(),code:HFe(),collection:a1e(),comparison:a8(),html:R1e(),i18n:I1e(),inflection:D1e(),match:GBe(),math:O8(),misc:HBe(),number:I8(),object:FN(),path:o2e(),regex:C8(),string:x8(),url:P8(),uuid:N8()}});var g2e=v((l8r,Hy)=>{"use strict";var $T=m2e();Hy.exports=o(function(t,r){typeof t=="string"?t=[t]:Array.isArray(t)||(r=t,t=null),r=r||{};var n=r.handlebars||r.hbs||PT();if(Hy.exports.handlebars=n,t)t.forEach(function(i){n.registerHelper($T[i])});else for(let i in $T){let s=$T[i];n.registerHelper(s)}return n.helpers},"helpers");for(let e in $T){let t=$T[e];Hy.exports[e]=function(r){r=r||{};var n=r.handlebars||r.hbs||PT();return Hy.exports.handlebars=n,n.registerHelper(t),t}}Hy.exports.utils=MT()});var KGe=v(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.InvalidRemoveOpPath=ar.NoTarget=ar.InvalidScimPatchRequest=ar.NoPathInScimPatchOp=ar.FilterArrayTargetNotFound=ar.FilterOnEmptyArray=ar.InvalidScimPatchOp=ar.RemoveValueNotArray=ar.RemoveValueNestedArrayNotSupported=ar.InvalidScimRemoveValue=ar.InvalidScimPatch=ar.ScimError=void 0;var Wv=class extends Error{static{o(this,"ScimError")}constructor(t){super(),this.scimCode=t}};ar.ScimError=Wv;var Bf=class extends Wv{static{o(this,"InvalidScimPatch")}constructor(t,r="invalidSyntax"){super(r),this.message=`Invalid SCIM Patch: ${t}`}};ar.InvalidScimPatch=Bf;var Gv=class extends Wv{static{o(this,"InvalidScimRemoveValue")}constructor(t,r="invalidSyntax"){super(r),this.message=`Invalid SCIM Remove Operation: ${t}`}};ar.InvalidScimRemoveValue=Gv;var lY=class extends Gv{static{o(this,"RemoveValueNestedArrayNotSupported")}constructor(){super("Invalid patch value, remove does not support arrays inside arrays.")}};ar.RemoveValueNestedArrayNotSupported=lY;var fY=class extends Gv{static{o(this,"RemoveValueNotArray")}constructor(){super("Remove with patch value is supported only for array properties.")}};ar.RemoveValueNotArray=fY;var $v=class extends Bf{static{o(this,"InvalidScimPatchOp")}constructor(t){super(`${t}`,"invalidSyntax")}};ar.InvalidScimPatchOp=$v;var dY=class extends $v{static{o(this,"FilterOnEmptyArray")}constructor(t,r,n){super(`${t}`),this.attrName=r,this.valuePath=n}};ar.FilterOnEmptyArray=dY;var pY=class extends $v{static{o(this,"FilterArrayTargetNotFound")}constructor(t,r,n,i){super(`${t}`),this.attrName=r,this.valuePath=n,this.schema=i}};ar.FilterArrayTargetNotFound=pY;var hY=class extends Bf{static{o(this,"NoPathInScimPatchOp")}constructor(){super('Missing path in "remove" patch operation',"noTarget")}};ar.NoPathInScimPatchOp=hY;var mY=class extends Bf{static{o(this,"InvalidScimPatchRequest")}constructor(t){super(`The SCIM patch request is invalid: ${t}`)}};ar.InvalidScimPatchRequest=mY;var gY=class extends Bf{static{o(this,"NoTarget")}constructor(t){super(`Target location is a multi-valued attribute for which a value selection filter (${t}) has been supplied and no record match was made.`,"noTarget")}};ar.NoTarget=gY;var yY=class extends Bf{static{o(this,"InvalidRemoveOpPath")}constructor(){super("Path specified in 'remove' operation doesn't exist")}};ar.InvalidRemoveOpPath=yY});var XGe=v(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.parseExpression=fu.parseFilter=fu.Tokens=fu.tokenizer=void 0;var YGe={type:"EOT",literal:""};function AXt(e){let t=[],r=e,n=/^(?:(\s+)|(-?\d+(?:\.\d+)?(?:[eE][-+]?\d+)?(?![-\w._:\/\)\s]))|("(?:[^"\\]|\\.|\n)*")|([[()]|]\.?)|(\w[-\w._:\/%]*))/,i;for(;i=n.exec(r);){if(!(i[1]||i[0].length===0))if(i[2])t.push({literal:i[2],type:"Number"});else if(i[3]){let s=i[3].replace(/\\(?!")/g,"\\\\");t.push({literal:s,type:"Quoted"})}else i[4]?t.push({literal:i[4],type:"Bracket"}):i[5]&&t.push({literal:i[5],type:"Word"});r=r.substring(i.index+i[0].length)}if(r.length!==0)throw new Error(`unexpected token ${r}`);return t.push(YGe),t}o(AXt,"tokenizer");fu.tokenizer=AXt;var bY=class{static{o(this,"Tokens")}getList(){return this.list.map((t,r)=>r==this.i?`[${t.literal}]`:t.literal)}peek(){return this.current||YGe}constructor(t){this.list=t,this.i=0,this.current=this.list[this.i]}forward(){return this.current=this.list[++this.i],this}shift(){let t=this.peek();return this.forward(),t}};fu.Tokens=bY;var RXt=new Set(["eq","ne","co","sw","ew","gt","lt","ge","le"]),OXt=new Set(["pr"]);function _Y(e){return XL(ZL(e),e,Dh.LOWEST)}o(_Y,"parseFilter");fu.parseFilter=_Y;function ZL(e){let t=e.shift();if(t.literal=="("){let r=_Y(e),n=e.shift();if(n.literal!==")")throw new Error(`Unexpected token [${n.literal}(${n.type})] expected ')'`);return r}else if(t.literal.toLowerCase()=="not"){let r={op:"not",filter:ZL(e)};return XL(r,e,Dh.NOT)}else{if(t.type=="Word")return JGe(t,e);throw new Error(`Unexpected token ${t.literal} (${t.type})`)}}o(ZL,"parseExpression");fu.parseExpression=ZL;var Dh;(function(e){e[e.LOWEST=1]="LOWEST",e[e.OR=2]="OR",e[e.AND=3]="AND",e[e.NOT=4]="NOT"})(Dh||(Dh={}));var zGe={or:Dh.OR,and:Dh.AND,not:Dh.NOT};function XL(e,t,r){let n=t.peek().literal.toLowerCase(),i=zGe[n];if(!i||r>=i)return e;let s=[e];for(;t.peek().literal.toLowerCase()===n;){let a=ZL(t.forward()),u=t.peek().literal.toLowerCase();zGe[u]>i&&(a=XL(a,t,i)),s.push(a)}return XL({op:n,filters:s},t,r)}o(XL,"parseInxif");function JGe(e,t){if(e.type!=="Word")throw new Error(`Unexpected token ${e.literal} expected Word`);let r=e.literal,n=t.shift(),i=n.literal.toLowerCase();if(RXt.has(i)){let s=IXt(t);return{op:i,attrPath:r,compValue:s}}else{if(OXt.has(i))return{op:i,attrPath:r};if(i==="["){let s=_Y(t),a=t.shift();if(a.literal[0]!=="]")throw new Error(`Unexpected token ${a.literal} expected ']'`);let u={op:"[]",attrPath:r,valFilter:s};if(a.literal[1]!=="."||t.peek().type!=="Word")return u;let c=t.shift();return c.literal=`${r}.${c.literal}`,{op:"and",filters:[u,JGe(c,t)]}}else throw new Error(`Unexpected token ${r} ${n.literal} as valFilter operator`)}}o(JGe,"readValFilter");function IXt(e){let t=e.shift();try{let r=JSON.parse(t.literal);if(r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;throw new Error(`${t.literal} is ${typeof r} (un supported value)`)}catch{throw new Error(`[${t.literal}(${t.type})] is not json`)}}o(IXt,"parseCompValue")});var ZGe=v(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});tk.Tester=void 0;var ek=class{static{o(this,"Tester")}constructor(){}test(t,r){switch(r.op){case"or":return r.filters.some(n=>this.test(t,n));case"and":return r.filters.every(n=>this.test(t,n));case"not":return!this.test(t,r.filter);case"[]":return this.attrTest(this.attrPath(r.attrPath),t,n=>this.test(n,r.valFilter));case"pr":return this.attrTest(this.attrPath(r.attrPath),t,n=>this[r.op](n));case"eq":case"ne":case"co":case"sw":case"ew":case"gt":case"lt":case"ge":case"le":return this.attrTest(this.attrPath(r.attrPath),t,n=>this[r.op](n,r.compValue))}}attrPath(t){let r=t.lastIndexOf(":");return r===-1?t.split("."):[t.substring(0,r),...t.substring(r+1).split(".")]}attrTest(t,r,n){if(t.length===0)return n(r);if(typeof r!="object"||r===null)return!1;if(Array.isArray(r))return r.some(a=>this.attrTest(t,a,n));let i=t[0].toLowerCase(),s=Object.keys(r).find(a=>a.toLowerCase()===i);return s===void 0?!1:this.attrTest(t.slice(1),r[s],n)}pr(t,r){return t!==void 0}eq(t,r){return t===r}ne(t,r){return t!==r}gt(t,r){return r!==null&&t>r}lt(t,r){return r!==null&&t<r}le(t,r){return r!==null&&t<=r}ge(t,r){return r!==null&&t>=r}sw(t,r){return r!==null&&t!==null&&t.toString().startsWith(r.toString())}ew(t,r){return r!==null&&t!==null&&t.toString().endsWith(r.toString())}co(t,r){return typeof t=="object"||r===null?t==r:(typeof t!="string"&&(t=t.toString()),t.indexOf(r.toString())!==-1)}};tk.Tester=ek;ek.UNDEF=Symbol("undefined")});var e$e=v(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.log=du.valfilter=void 0;var CXt=o((e,t)=>{switch(t&&"attrPath"in e&&(e=Object.assign(Object.assign({},e),{attrPath:`${t}.${e.attrPath}`})),e.op){case"and":case"or":return Object.assign(Object.assign({},e),{filters:e.filters.map(r=>(0,du.valfilter)(r,t))});case"not":return Object.assign(Object.assign({},e),{filter:(0,du.valfilter)(e,t)});case"[]":return(0,du.valfilter)(e.valFilter,e.attrPath)}return e},"valfilter");du.valfilter=CXt;var xXt=o(e=>{switch(e.op){case"and":case"or":let t=e.filters.map(du.log),r=[];return t.forEach(n=>{n.op==e.op?n.filters.forEach(i=>r.push(i)):r.push(n)}),Object.assign(Object.assign({},e),{filters:r})}return e},"log");du.log=xXt});var t$e=v(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.stringify=void 0;function Vv(e,t=!1){let r="";switch(e.op){case"eq":case"ne":case"co":case"sw":case"ew":case"gt":case"lt":case"ge":case"le":r=`${e.attrPath} ${e.op} ${JSON.stringify(e.compValue)}`;break;case"pr":r=`${e.attrPath} ${e.op}`;break;case"or":let n=e.filters.map(i=>Vv(i)).join(` ${e.op} `);r=t?`(${n})`:n;break;case"and":r=e.filters.map(i=>Vv(i,!0)).join(` ${e.op} `);break;case"not":r=`${e.op} (${Vv(e.filter)})`;break;case"[]":r=`${e.attrPath}[${Vv(e.valFilter)}]`;break}return r}o(Vv,"stringify");rk.stringify=Vv});var nk=v(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.flatten=Go.parse=Go.filter=Go.Tester=Go.stringify=void 0;var wY=XGe(),DXt=ZGe(),r$e=e$e(),PXt=t$e();Object.defineProperty(Go,"stringify",{enumerable:!0,get:function(){return PXt.stringify}});Go.Tester=DXt.Tester;function NXt(e){let t=new Go.Tester;return r=>t.test(r,e)}o(NXt,"filter");Go.filter=NXt;function LXt(e){let t=new wY.Tokens(wY.tokenizer(e)),r=wY.parseFilter(t);if(t.peek().type!=="EOT")throw new Error(`unexpected EOT ${t.getList()}`);return r}o(LXt,"parse");Go.parse=LXt;function kXt(e){return r$e.log(r$e.valfilter(e))}o(kXt,"flatten");Go.flatten=kXt});var i$e=v((Psn,n$e)=>{"use strict";n$e.exports=o(function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,s;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(s=Object.keys(t),n=s.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;i--!==0;){var a=s[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r},"equal")});var xY=v(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.PATCH_OPERATION_SCHEMA=Er.InvalidScimRemoveValue=Er.RemoveValueNotArray=Er.RemoveValueNestedArrayNotSupported=Er.NoTarget=Er.InvalidScimPatchRequest=Er.NoPathInScimPatchOp=Er.InvalidScimPatchOp=Er.InvalidScimPatch=Er.ScimError=void 0;Er.patchBodyValidation=qXt;Er.scimPatch=jXt;var Pt=KGe();Object.defineProperty(Er,"ScimError",{enumerable:!0,get:function(){return Pt.ScimError}});Object.defineProperty(Er,"InvalidScimPatch",{enumerable:!0,get:function(){return Pt.InvalidScimPatch}});Object.defineProperty(Er,"InvalidScimPatchOp",{enumerable:!0,get:function(){return Pt.InvalidScimPatchOp}});Object.defineProperty(Er,"NoPathInScimPatchOp",{enumerable:!0,get:function(){return Pt.NoPathInScimPatchOp}});Object.defineProperty(Er,"InvalidScimPatchRequest",{enumerable:!0,get:function(){return Pt.InvalidScimPatchRequest}});Object.defineProperty(Er,"NoTarget",{enumerable:!0,get:function(){return Pt.NoTarget}});Object.defineProperty(Er,"RemoveValueNestedArrayNotSupported",{enumerable:!0,get:function(){return Pt.RemoveValueNestedArrayNotSupported}});Object.defineProperty(Er,"RemoveValueNotArray",{enumerable:!0,get:function(){return Pt.RemoveValueNotArray}});Object.defineProperty(Er,"InvalidScimRemoveValue",{enumerable:!0,get:function(){return Pt.InvalidScimRemoveValue}});var EY=nk(),SY=i$e(),AY=/(\[|\])/,MXt=/^(.+)\[(.+)\]$/,o$e=/(?!\B"[^[]*)\.(?![^\]]*"\B)/g,UXt=["remove","add","replace"],FXt="urn:ietf:params:scim:schemas:core:2.0:User",BXt="urn:ietf:params:scim:schemas:core:2.0:Group";Er.PATCH_OPERATION_SCHEMA="urn:ietf:params:scim:api:messages:2.0:PatchOp";function qXt(e){if(!e.schemas||!e.schemas.includes(Er.PATCH_OPERATION_SCHEMA))throw new Pt.InvalidScimPatchRequest("Missing schemas.");if(!Array.isArray(e.Operations))throw new Pt.InvalidScimPatchRequest("Operations should be an array.");if(!e.Operations||e.Operations.length<=0)throw new Pt.InvalidScimPatchRequest("Missing operations.");e.Operations.forEach(RY)}o(qXt,"patchBodyValidation");function jXt(e,t,r={mutateDocument:!0,treatMissingAsAdd:!0}){return r.mutateDocument||(e=JSON.parse(JSON.stringify(e))),t.reduce((n,i)=>{switch(i.op){case"remove":case"Remove":return WXt(n,i);case"add":case"Add":case"replace":case"Replace":return a$e(n,i,!!r.treatMissingAsAdd);default:throw new Pt.InvalidScimPatchRequest(`Operator is invalid for SCIM patch request. ${i}`)}},e)}o(jXt,"scimPatch");function RY(e){if(typeof e.op!="string"||!HXt(e.op))throw new Pt.InvalidScimPatchRequest(`Invalid op "${e.op}" in the request.`);if(e.op==="remove"&&!e.path)throw new Pt.NoPathInScimPatchOp;if(Qv(e.op)&&!("value"in e))throw new Pt.InvalidScimPatchRequest(`The operation ${e.op} MUST contain a "value" member whose content specifies the value to be added`);if(e.path&&typeof e.path!="string")throw new Pt.InvalidScimPatchRequest("Path is supposed to be a string")}o(RY,"validatePatchOperation");function OY(e){let t=e.lastIndexOf(":");if(t<0)return e.split(o$e);let r=e.substring(0,t),n=e.substring(t+1).split(o$e);switch(r){case BXt:case FXt:break;default:n.unshift(r);break}return n}o(OY,"resolvePaths");function WXt(e,t){let r;RY(t);let n=OY(t.path);try{r=u$e(e,n,{isRemoveOp:!0})}catch(s){if(s instanceof Pt.InvalidRemoveOpPath)return e;throw s}let i=n[n.length-1];if(!AY.test(i)){for(let s of r)t.value?s[i]=VXt(s[i],t.value):delete s[i];return e}for(let s of r){let{attrName:a,valuePath:u,array:c}=IY(i,s);s[a]=CY(c,u,{excludeIfMatchFilter:!0}),s[a].length===0&&delete s[a]}return e}o(WXt,"applyRemoveOperation");function a$e(e,t,r){var n;let i;if(RY(t),!t.path)return Hv(e,t);let s=OY(t.path),a=s[s.length-1];try{i=u$e(e,s)}catch(u){if(u instanceof Pt.FilterOnEmptyArray||u instanceof Pt.FilterArrayTargetNotFound){let c=u.schema,l=(0,EY.parse)(u.valuePath);if(Qv(t.op)&&"compValue"in l&&l.compValue!==void 0&&l.op==="eq"){let f={};return f[l.attrPath]=l.compValue,f[a]=Hv(void 0,t,!0),c[u.attrName]=[...(n=c[u.attrName])!==null&&n!==void 0?n:[],f],e}else if(r&&TY(t.op)&&"compValue"in l&&l.compValue!==void 0&&l.op==="eq")return a$e(e,Object.assign(Object.assign({},t),{op:"add"}),!1);throw new Pt.NoTarget(t.path)}throw u}if(!AY.test(a)){for(let u of i)u[a]=Hv(u[a],t);return e}for(let u of i){let{valuePath:c,array:l}=IY(a,u),f=CY(l,c);if(TY(t.op)&&f.length===0)throw new Pt.NoTarget(t.path);for(let d=0;d<l.length;d++)f.includes(l[d])&&(l[d]=Hv(l[d],t))}return e}o(a$e,"applyAddOrReplaceOperation");function IY(e,t){let r=e.match(MXt);if(!r)throw new Pt.InvalidScimPatchOp(`This part of the path ${e} is invalid for SCIM patch request.`);let[,n,i]=r,s=t[n];if(!Array.isArray(s))throw new Pt.FilterOnEmptyArray("Impossible to search on a mono valued attribute.",n,i);return new vY(n,i,s)}o(IY,"extractArray");function u$e(e,t,r={}){let n=[e];for(let i=0;i<t.length-1;i++){let s=t[i];AY.test(s)?n=n.flatMap(a=>{try{let{attrName:u,valuePath:c,array:l}=IY(s,a),f=CY(l,c);if(f.length===0)throw new Pt.FilterArrayTargetNotFound("A matching array entry was not found using the supplied filter.",u,c,a);return f}catch(u){throw u instanceof Pt.FilterOnEmptyArray&&(u.schema=a),u}}):n=n.flatMap(a=>{if(!a[s]&&r.isRemoveOp)throw new Pt.InvalidRemoveOpPath;return a[s]||(a[s]={})})}return n}o(u$e,"navigate");function Hv(e,t,r){if(Array.isArray(e)){if(Array.isArray(t.value)){if(Qv(t.op)){let i=t.value.filter(s=>!s$e(e,s));return e.concat(i)}return t.value}if(TY(t.op))return e.map(i=>Hv(i,t,r));let n=e;return s$e(n,t.value)||n.push(t.value),n}return e!==null&&typeof e=="object"?GXt(e,t,r):t.value}o(Hv,"addOrReplaceAttribute");function GXt(e,t,r){if(typeof t.value!="object"){if(Qv(t.op)&&!r)throw new Pt.InvalidScimPatchOp("Invalid patch query.");return t.value}for(let[n,i]of Object.entries(t.value))$Xt(e,OY(n),i,t.op);return e}o(GXt,"addOrReplaceObjectAttribute");function $Xt(e,t,r,n){let i=t.length-1;for(let a=0;a<i;++a){let u=t[a];u in e||(e[u]={}),e=e[u]}let s=e[t[i]];if(Qv(n)&&Array.isArray(s)){if(Array.isArray(r)){e[t[i]]=[...s,...r];return}e[t[i]]=[...s,r];return}e[t[i]]=r}o($Xt,"assign");function CY(e,t,r={}){try{let n=(0,EY.filter)((0,EY.parse)(t));return e.filter(i=>r.excludeIfMatchFilter?!n(i):n(i))}catch(n){throw new Pt.InvalidScimPatchOp(`${n}`)}}o(CY,"filterWithQuery");function VXt(e,t){if(!Array.isArray(e))throw new Pt.RemoveValueNotArray;return Array.isArray(t)?(t.forEach(r=>{if(Array.isArray(r))throw new Pt.RemoveValueNestedArrayNotSupported;e=e.filter(n=>!SY(r,n))}),e):e.filter(r=>!SY(t,r))}o(VXt,"removeWithPatchValue");function s$e(e,t){return e.some(r=>SY(t,r))}o(s$e,"deepIncludes");function HXt(e){return UXt.includes(e.toLowerCase())}o(HXt,"isValidOperation");function Qv(e){return e!==void 0&&e.toLowerCase()==="add"}o(Qv,"isAddOperation");function TY(e){return e!==void 0&&e.toLowerCase()==="replace"}o(TY,"isReplaceOperation");var vY=class{static{o(this,"ScimSearchQuery")}constructor(t,r,n){this.attrName=t,this.valuePath=r,this.array=n}}});var lor={};var K3e,z3e=er(()=>{"use strict";K3e=U(require("dd-trace"));process.env.DD_APM_ENABLED&&(console.log("Starting dd-trace"),K3e.default.init({debug:process.env.DD_ENV==="qa",llmobs:{mlApp:process.env.DD_LLMOBS_ML_APP||"budibase"}}))});var Sur={};G(Sur,{execute:()=>Eur});module.exports=qA(Sur);var Qn={};G(Qn,{analyticsEnabled:()=>z0,generateConfigID:()=>nT,getAIConfig:()=>aWt,getConfig:()=>Ii,getDefaultGoogleConfig:()=>B3,getGoogleConfig:()=>UD,getGoogleDatasourceConfig:()=>j3,getOIDCConfig:()=>iWt,getOIDCConfigById:()=>W3,getOIDCLogosDoc:()=>rWt,getPlatformUrl:()=>iT,getRecaptchaConfig:()=>uWt,getSCIMConfig:()=>sWt,getSMTPConfig:()=>oWt,getSMTPConfigDoc:()=>b0e,getSettingsConfig:()=>q3,getSettingsConfigDoc:()=>dy,getTranslationsConfig:()=>eWt,getTranslationsConfigDoc:()=>y0e,save:()=>Zjt});var co=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(co||{});var ct=(te=>(te.USER_CREATED="user:created",te.USER_UPDATED="user:updated",te.USER_DELETED="user:deleted",te.USER_ONBOARDING_COMPLETE="user:onboarding:complete",te.USER_PERMISSION_ADMIN_ASSIGNED="user:admin:assigned",te.USER_PERMISSION_ADMIN_REMOVED="user:admin:removed",te.USER_PERMISSION_BUILDER_ASSIGNED="user:builder:assigned",te.USER_PERMISSION_BUILDER_REMOVED="user:builder:removed",te.USER_INVITED="user:invited",te.USER_INVITED_ACCEPTED="user:invite:accepted",te.USER_PASSWORD_FORCE_RESET="user:password:force:reset",te.USER_PASSWORD_UPDATED="user:password:updated",te.USER_PASSWORD_RESET_REQUESTED="user:password:reset:requested",te.USER_PASSWORD_RESET="user:password:reset",te.USER_DATA_COLLABORATION="user:data:collaboration",te.EMAIL_SMTP_CREATED="email:smtp:created",te.EMAIL_SMTP_UPDATED="email:smtp:updated",te.AI_CONFIG_CREATED="ai:config:created",te.AI_CONFIG_UPDATED="ai:config:updated",te.AUTH_SSO_CREATED="auth:sso:created",te.AUTH_SSO_UPDATED="auth:sso:updated",te.AUTH_SSO_ACTIVATED="auth:sso:activated",te.AUTH_SSO_DEACTIVATED="auth:sso:deactivated",te.AUTH_LOGIN="auth:login",te.AUTH_LOGOUT="auth:logout",te.ORG_NAME_UPDATED="org:info:name:updated",te.ORG_LOGO_UPDATED="org:info:logo:updated",te.ORG_PLATFORM_URL_UPDATED="org:platformurl:updated",te.INSTALLATION_VERSION_CHECKED="installation:version:checked",te.INSTALLATION_VERSION_UPGRADED="installation:version:upgraded",te.INSTALLATION_VERSION_DOWNGRADED="installation:version:downgraded",te.INSTALLATION_FIRST_STARTUP="installation:firstStartup",te.ANALYTICS_OPT_OUT="analytics:opt:out",te.ANALYTICS_OPT_IN="analytics:opt:in",te.WORKSPACE_CREATED="app:created",te.WORKSPACE_UPDATED="app:updated",te.WORKSPACE_DELETED="app:deleted",te.WORKSPACE_DUPLICATED="app:duplicated",te.WORKSPACE_PUBLISHED="app:published",te.WORKSPACE_UNPUBLISHED="app:unpublished",te.WORKSPACE_TEMPLATE_IMPORTED="app:template:imported",te.WORKSPACE_FILE_IMPORTED="app:file:imported",te.WORKSPACE_APP_VERSION_UPDATED="app:version:updated",te.WORKSPACE_APP_VERSION_REVERTED="app:version:reverted",te.WORKSPACE_REVERTED="app:reverted",te.WORKSPACE_EXPORTED="app:exported",te.ROLE_CREATED="role:created",te.ROLE_UPDATED="role:updated",te.ROLE_DELETED="role:deleted",te.ROLE_ASSIGNED="role:assigned",te.ROLE_UNASSIGNED="role:unassigned",te.SERVED_BUILDER="served:builder",te.SERVED_APP="served:app",te.SERVED_APP_PREVIEW="served:app:preview",te.DATASOURCE_CREATED="datasource:created",te.DATASOURCE_UPDATED="datasource:updated",te.DATASOURCE_DELETED="datasource:deleted",te.QUERY_CREATED="query:created",te.QUERY_UPDATED="query:updated",te.QUERY_DELETED="query:deleted",te.QUERY_IMPORT="query:import",te.QUERIES_RUN="queries:run",te.QUERY_PREVIEWED="query:previewed",te.TABLE_CREATED="table:created",te.TABLE_UPDATED="table:updated",te.TABLE_DELETED="table:deleted",te.TABLE_EXPORTED="table:exported",te.TABLE_IMPORTED="table:imported",te.TABLE_DATA_IMPORTED="table:data:imported",te.VIEW_CREATED="view:created",te.VIEW_UPDATED="view:updated",te.VIEW_DELETED="view:deleted",te.VIEW_EXPORTED="view:exported",te.VIEW_FILTER_CREATED="view:filter:created",te.VIEW_FILTER_UPDATED="view:filter:updated",te.VIEW_FILTER_DELETED="view:filter:deleted",te.VIEW_CALCULATION_CREATED="view:calculation:created",te.VIEW_CALCULATION_UPDATED="view:calculation:updated",te.VIEW_CALCULATION_DELETED="view:calculation:deleted",te.VIEW_JOIN_CREATED="view:join:created",te.ROWS_CREATED="rows:created",te.ROWS_IMPORTED="rows:imported",te.COMPONENT_CREATED="component:created",te.COMPONENT_DELETED="component:deleted",te.SCREEN_CREATED="screen:created",te.SCREEN_DELETED="screen:deleted",te.LAYOUT_CREATED="layout:created",te.LAYOUT_DELETED="layout:deleted",te.AUTOMATION_CREATED="automation:created",te.AUTOMATION_DELETED="automation:deleted",te.AUTOMATION_TESTED="automation:tested",te.AUTOMATIONS_RUN="automations:run",te.AUTOMATION_STEP_CREATED="automation:step:created",te.AUTOMATION_STEP_DELETED="automation:step:deleted",te.AUTOMATION_TRIGGER_UPDATED="automation:trigger:updated",te.LICENSE_PLAN_CHANGED="license:plan:changed",te.LICENSE_ACTIVATED="license:activated",te.LICENSE_PAYMENT_FAILED="license:payment:failed",te.LICENSE_PAYMENT_RECOVERED="license:payment:recovered",te.LICENSE_CHECKOUT_OPENED="license:checkout:opened",te.LICENSE_CHECKOUT_SUCCESS="license:checkout:success",te.LICENSE_PORTAL_OPENED="license:portal:opened",te.ACCOUNT_CREATED="account:created",te.ACCOUNT_DELETED="account:deleted",te.ACCOUNT_VERIFIED="account:verified",te.APP_BACKFILL_SUCCEEDED="app:backfill:succeeded",te.APP_BACKFILL_FAILED="app:backfill:failed",te.TENANT_BACKFILL_SUCCEEDED="tenant:backfill:succeeded",te.TENANT_BACKFILL_FAILED="tenant:backfill:failed",te.INSTALLATION_BACKFILL_SUCCEEDED="installation:backfill:succeeded",te.INSTALLATION_BACKFILL_FAILED="installation:backfill:failed",te.USER_GROUP_CREATED="user_group:created",te.USER_GROUP_UPDATED="user_group:updated",te.USER_GROUP_DELETED="user_group:deleted",te.USER_GROUP_USERS_ADDED="user_group:user_added",te.USER_GROUP_USERS_REMOVED="user_group:users_deleted",te.USER_GROUP_PERMISSIONS_EDITED="user_group:permissions_edited",te.USER_GROUP_ONBOARDING="user_group:onboarding_added",te.PLUGIN_INIT="plugin:init",te.PLUGIN_IMPORTED="plugin:imported",te.PLUGIN_DELETED="plugin:deleted",te.APP_BACKUP_RESTORED="app:backup:restored",te.APP_BACKUP_TRIGGERED="app:backup:triggered",te.ENVIRONMENT_VARIABLE_CREATED="environment_variable:created",te.ENVIRONMENT_VARIABLE_DELETED="environment_variable:deleted",te.ENVIRONMENT_VARIABLE_UPGRADE_PANEL_OPENED="environment_variable:upgrade_panel_opened",te.AUDIT_LOGS_FILTERED="audit_log:filtered",te.AUDIT_LOGS_DOWNLOADED="audit_log:downloaded",te.ROW_ACTION_CREATED="row_action:created",te.ACTION_AUTOMATION_STEP_EXECUTED="action:automation_step:executed",te.ACTION_CRUD_EXECUTED="action:crud:executed",te.ACTION_AI_AGENT_EXECUTED="action:ai_agent:executed",te.WORKSPACE_APP_CREATED="workspace_app:created",te.WORKSPACE_APP_UPDATED="workspace_app:updated",te.WORKSPACE_APP_DELETED="workspace_app:deleted",te.RESOURCE_COPIED_TO_WORKSPACE="resource:copied_to_workspace",te))(ct||{}),vX=["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"],AX=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],RX=[...vX,...AX],Vh={"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,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":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,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var OX=o((e,t,r)=>e==="usage"&&t==="static","isStaticQuota"),IX=o((e,t,r)=>e==="usage"&&t==="monthly","isMonthlyQuota"),CX=o((e,t)=>e==="constant","isConstantQuota");var Fi="--secret-value--";var an=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(an||{}),Jr=(h=>(h.STRING="string",h.CODE="code",h.LONGFORM="longForm",h.SENSITIVE_LONGFORM="sensitiveLongForm",h.BOOLEAN="boolean",h.NUMBER="number",h.PASSWORD="password",h.LIST="list",h.OBJECT="object",h.JSON="json",h.FILE="file",h.FIELD_GROUP="fieldGroup",h.SELECT="select",h))(Jr||{}),un=(b=>(b.AIRTABLE="AIRTABLE",b.ARANGODB="ARANGODB",b.BUDIBASE="BUDIBASE",b.COUCHDB="COUCHDB",b.DYNAMODB="DYNAMODB",b.ELASTICSEARCH="ELASTICSEARCH",b.FIRESTORE="FIRESTORE",b.GOOGLE_SHEETS="GOOGLE_SHEETS",b.MONGODB="MONGODB",b.MYSQL="MYSQL",b.ORACLE="ORACLE",b.POSTGRES="POSTGRES",b.REDIS="REDIS",b.REST="REST",b.S3="S3",b.SNOWFLAKE="SNOWFLAKE",b.SQL_SERVER="SQL_SERVER",b))(un||{});var Tn=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Tn||{});var xX=U(require("lodash/isPlainObject"));var Jf=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Jf||{}),wa=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(wa||{}),Hh=(t=>(t.RANGE="range",t))(Hh||{}),Gb=(r=>(r.AND="$and",r.OR="$or",r))(Gb||{});function Hc(e){return Object.values(Gb).includes(e)}o(Hc,"isLogicalSearchOperator");function DX(e){return Object.values(Jf).includes(e)}o(DX,"isBasicSearchOperator");function PX(e){return Object.values(wa).includes(e)}o(PX,"isArraySearchOperator");function jA(e){return Object.values(Hh).includes(e)}o(jA,"isRangeSearchOperator");function NX(e){return(0,xX.default)(e)&&"conditions"in e}o(NX,"isLogicalFilter");var LX=o(e=>typeof e=="object"&&e._id&&e._rev,"isDocument");var $b=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))($b||{});var Qc=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Qc||{});var Vb=(d=>(d.WORKSPACE="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Vb||{});var WA=o(e=>e.hosting==="cloud","isCloudAccount");var GA=o(e=>e.authType==="sso","isSSOAccount");var ce="_",Mn="\uFFF0",ti=o(e=>`${e}${ce}`,"prefixed"),Me=(se=>(se.USER="us",se.GROUP="gr",se.CONFIG="config",se.TEMPLATE="template",se.WORKSPACE="app",se.DEV="dev",se.WORKSPACE_DEV="app_dev",se.WORKSPACE_METADATA="app_metadata",se.ROLE="role",se.DEV_INFO="devinfo",se.AUTOMATION_LOG="log_au",se.ACCOUNT_METADATA="acc_metadata",se.PLUGIN="plg",se.DATASOURCE="datasource",se.DATASOURCE_PLUS="datasource_plus",se.APP_BACKUP="backup",se.TABLE="ta",se.ROW="ro",se.AUTOMATION="au",se.LINK="li",se.WEBHOOK="wh",se.INSTANCE="inst",se.LAYOUT="layout",se.SCREEN="screen",se.QUERY="query",se.DEPLOYMENTS="deployments",se.METADATA="metadata",se.MEM_VIEW="view",se.USER_FLAG="flag",se.AUTOMATION_METADATA="meta_au",se.AUDIT_LOG="al",se.SCIM_LOG="scimlog",se.ROW_ACTIONS="ra",se.OAUTH2_CONFIG="oauth2",se.OAUTH2_CONFIG_LOG="oauth2log",se.AGENT="agent",se.CHAT_APP="chatapp",se.CHAT_CONVERSATION="chatconvo",se.AGENT_TOOL_SOURCE="agenttoolsource",se.AGENT_FILE="agentfile",se.AI_CONFIG="aiconfig",se.LITELLM_KEY="litellmkey",se.VECTOR_STORE="vectordb",se.WORKSPACE_APP="workspace_app",se.WORKSPACE_FAVOURITE="workspace_favourite",se.AUTO_COLUMN_STATE="autocolumn_state",se))(Me||{}),PM=["role","datasource","datasource_plus","ta","au","wh","screen","query","metadata","view","workspace_app","workspace_favourite","inst","layout"],vu=(t=>(t.USER_METADATA="ta_users",t))(vu||{}),Kc=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Kc||{});function Qh(e){return!!e.providerType}o(Qh,"isSSOUser");var Kh=["rows","queries","automations"],kX=["queries","automations"];var MX="SYSTEM",Xf="auditLog";var He=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f))(He||{}),Bt=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R.AGENT="agent",R.OUTPUT_SCHEMA="outputSchema",R))(Bt||{}),lo=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(lo||{});var nt=($=>($.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",$.CREATE_ROW="CREATE_ROW",$.GET_ROW="GET_ROW",$.UPDATE_ROW="UPDATE_ROW",$.DELETE_ROW="DELETE_ROW",$.QUERY_ROWS="QUERY_ROWS",$.EXECUTE_BASH="EXECUTE_BASH",$.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",$.EXECUTE_SCRIPT="EXECUTE_SCRIPT",$.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",$.EXECUTE_QUERY="EXECUTE_QUERY",$.SERVER_LOG="SERVER_LOG",$.DELAY="DELAY",$.FILTER="FILTER",$.API_REQUEST="API_REQUEST",$.LOOP="LOOP",$.COLLECT="COLLECT",$.OPENAI="OPENAI",$.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",$.BRANCH="BRANCH",$.CLASSIFY_CONTENT="CLASSIFY_CONTENT",$.PROMPT_LLM="PROMPT_LLM",$.TRANSLATE="TRANSLATE",$.SUMMARISE="SUMMARISE",$.GENERATE_TEXT="GENERATE_TEXT",$.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",$.EXTRACT_STATE="EXTRACT_STATE",$.LOOP_V2="LOOP_V2",$.AGENT="AGENT",$.discord="discord",$.slack="slack",$.zapier="zapier",$.integromat="integromat",$.n8n="n8n",$))(nt||{}),UX=[...Object.values(nt),...Object.values(lo)];var $A=(u=>(u.EMAIL="email",u.DOCUMENT="document",u.BLOG_POST="blog_post",u.CHAT_MESSAGE="chat_message",u.LETTER="letter",u.PROPOSAL="proposal",u.OTHER="other",u))($A||{}),FX={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},VA=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(VA||{}),HA=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(HA||{}),QA=["png","jpg","jpeg","image/png","image/jpeg","image/jpg","image/jpeg"];function BX(e){return e.stepId==="BRANCH"}o(BX,"isBranchStep");function NM(e){return e.stepId==="CRON"}o(NM,"isCronTrigger");function zc(e){return e?.stepId==="EMAIL"}o(zc,"isEmailTrigger");var KA=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(KA||{});var Hb=(r=>(r.BACKUP="backup",r.RESTORE="restore",r))(Hb||{});var Yc=(i=>(i.PUBLISH="publish",i.MANUAL="manual",i.SCHEDULED="scheduled",i.RESTORING="restoring",i))(Yc||{});var zh=(a=>(a.NONE="none",a.FORM_DATA="form",a.XML="xml",a.ENCODED="encoded",a.JSON="json",a.TEXT="text",a))(zh||{}),Qb=(a=>(a.GET="GET",a.POST="POST",a.PATCH="PATCH",a.PUT="PUT",a.HEAD="HEAD",a.DELETE="DELETE",a))(Qb||{});var Un="bb_internal";var Jc=(s=>(s.CREATED_BY="createdBy",s.CREATED_AT="createdAt",s.UPDATED_BY="updatedBy",s.UPDATED_AT="updatedAt",s.AUTO_ID="autoID",s))(Jc||{});function zA(e){return e.type==="link"}o(zA,"isRelationshipField");function YA(e){return e.relationshipType==="one-to-many"}o(YA,"isOneToMany");function JA(e){return e.relationshipType==="many-to-one"}o(JA,"isManyToOne");var qX="rev",Le=(S=>(S.STRING="string",S.LONGFORM="longform",S.OPTIONS="options",S.NUMBER="number",S.BOOLEAN="boolean",S.ARRAY="array",S.DATETIME="datetime",S.ATTACHMENTS="attachment",S.ATTACHMENT_SINGLE="attachment_single",S.LINK="link",S.FORMULA="formula",S.AUTO="auto",S.AI="ai",S.JSON="json",S.INTERNAL="internal",S.BARCODEQR="barcodeqr",S.SIGNATURE_SINGLE="signature_single",S.BIGINT="bigint",S.BB_REFERENCE="bb_reference",S.BB_REFERENCE_SINGLE="bb_reference_single",S))(Le||{}),XA=["attachment_single","attachment","signature_single","bb_reference","json","array"],BKe=["number","bigint"];function LM(e){return BKe.includes(e)}o(LM,"isNumeric");function jX(e){return e.type==="formula"&&e.formulaType==="static"&&e.responseType&&LM(e.responseType)}o(jX,"isNumericStaticFormula");var qKe=["string","longform","options","number","boolean","datetime","bigint","ai"];function jKe(e){return qKe.includes(e)}o(jKe,"canGroupBy");function kM(e){return e.type==="formula"&&e.formulaType==="static"}o(kM,"isStaticFormula");function WX(e){return jKe(e.type)||kM(e)}o(WX,"canGroupBySchema");var lt={};G(lt,{AutomationViewMode:()=>u1,BUDIBASE_DATASOURCE_TYPE:()=>Yre,Config:()=>rne,Cookie:()=>gm,DEFAULT_BB_DATASOURCE_ID:()=>Kb,DEFAULT_EMPLOYEE_TABLE_ID:()=>ene,DEFAULT_EXPENSES_TABLE_ID:()=>Zre,DEFAULT_INVENTORY_TABLE_ID:()=>Xre,DEFAULT_JOBS_TABLE_ID:()=>Jre,DEFAULT_TENANT_ID:()=>Lr,DeprecatedViews:()=>W_,DesignDocuments:()=>yd,DocumentType:()=>Me,GlobalRole:()=>tne,Header:()=>yi,InternalTable:()=>vu,MAX_VALID_DATE:()=>f1,MIN_VALID_DATE:()=>F7e,SEPARATOR:()=>ce,SQLITE_DESIGN_DOC_ID:()=>Fn,SQS_DATASOURCE_INTERNAL:()=>ul,StaticDatabases:()=>tr,UNICODE_MAX:()=>Mn,USER_METADATA_PREFIX:()=>VR,UserStatus:()=>l1,ViewName:()=>al,WORKSPACE_DEV:()=>c1,WORKSPACE_DEV_PREFIX:()=>Ms,WORKSPACE_PREFIX:()=>ks});var $X={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var yi=(E=>(E.API_KEY="x-budibase-api-key",E.LICENSE_KEY="x-budibase-license-key",E.API_VER="x-budibase-api-version",E.APP_ID="x-budibase-app-id",E.SESSION_ID="x-budibase-session-id",E.CLIENT="x-budibase-client",E.TYPE="x-budibase-type",E.PREVIEW_ROLE="x-budibase-role",E.TENANT_ID="x-budibase-tenant-id",E.VERIFICATION_CODE="x-budibase-verification-code",E.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",E.RESET_PASSWORD_CODE="x-budibase-reset-password-code",E.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",E.TOKEN="x-budibase-token",E.CSRF_TOKEN="x-csrf-token",E.CORRELATION_ID="x-budibase-correlation-id",E.AUTHORIZATION="authorization",E.MIGRATING_APP="x-budibase-migrating-app",E.COOKIE="cookie",E))(yi||{});var vn=["_id","_rev","type","createdAt","updatedAt","tableId"],Os=["_id","_rev","tableId"];function Zf(e){return vn.includes(e)}o(Zf,"isInternalColumnName");function VX(e){return Os.includes(e)}o(VX,"isExternalColumnName");var Yh={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},ZA={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var fo={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},ContainsAny:{value:"containsAny",label:"Has any"}},HX={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var MM=/^[^()]*$/;var Kb="datasource_internal_bb_default";var Tt={};G(Tt,{ColumnSplitter:()=>fF,NoEmptyFilterStrings:()=>Ire,buildQuery:()=>Cre,cleanupQuery:()=>mF,fixupFilterArrays:()=>yF,getKeyNumbering:()=>gF,getValidOperatorsForType:()=>SJe,hasFilters:()=>dF,limit:()=>Dre,recurseLogicalOperators:()=>hF,removeKeyNumbering:()=>eR,runQuery:()=>BR,search:()=>AJe,sort:()=>xre,splitFiltersArray:()=>tR});var hm=U(require("dayjs"));var Be={};G(Be,{filterValueToLabel:()=>KKe,hasSchema:()=>zKe,isSupportedUserSearch:()=>KX,nameToUrl:()=>e6e,parallelForeach:()=>QKe,processSearchFilters:()=>UM,toMap:()=>JKe,trimOtherProps:()=>YKe,unreachable:()=>HKe});var QX=U(require("lodash/pick"));var VKe=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function HKe(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}o(HKe,"unreachable");async function QKe(e,t,r){let n=[],i=Symbol.asyncIterator in e,s=i?e[Symbol.asyncIterator]():e[Symbol.iterator](),a=o(async()=>{let u=await(i?s.next():Promise.resolve(s.next()));for(;!u.done;)await t(u.value),u=await(i?s.next():Promise.resolve(s.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}o(QKe,"parallelForeach");function KKe(){return Object.keys(fo).reduce((e,t)=>{let n=fo[t];return e[n.value]=n.label,e},{})}o(KKe,"filterValueToLabel");function zKe(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}o(zKe,"hasSchema");function YKe(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}o(YKe,"trimOtherProps");function KX(e){let t=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=e;for(let[s,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Hc(s)){for(let l of e[s].conditions)if(!KX(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!t.find(l=>l.op===s&&u.length===1&&u[0]===l.key))return!1}return!0}o(KX,"isSupportedUserSearch");function UM(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=tR(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let s=(0,QX.default)(i,VKe);return s.field=eR(s.field),s})}]}}o(UM,"processSearchFilters");function JKe(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}o(JKe,"toMap");var XKe=o(e=>e?e.trim():null,"resolveWorkspaceName"),ZKe=o(e=>{let t,r=XKe(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),e6e=o(e=>{let t=ZKe(e);return t6e(t)},"nameToUrl"),t6e=o(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var de={};G(de,{accountPortalAccountUrl:()=>bre,accountPortalBillingUrl:()=>_re,accountPortalUpgradeUrl:()=>wre,builderAppsUrl:()=>Are,builderSettingsAuthUrl:()=>Tre,builderSettingsEmailUrl:()=>Sre,builderSettingsPeopleUsersUrl:()=>vre,builderWorkspacesUrl:()=>Ere,cancelableTimeout:()=>zX,cron:()=>bJe,deepGet:()=>FM,duplicateName:()=>dJe,formatBytes:()=>yJe,getSequentialName:()=>pJe,getUserColor:()=>n6e,getUserInitials:()=>r6e,getUserLabel:()=>i6e,isGoogleSheets:()=>s6e,isSQL:()=>a6e,lists:()=>cF,retry:()=>u6e,roles:()=>uF,schema:()=>U_,structuredOutput:()=>oF,urlHelpers:()=>gJe,views:()=>aF,wait:()=>BM,withTimeout:()=>o6e});var FM=o((e,t)=>{if(!e||!t)return null;if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let r=t.split(".");for(let n=0;n<r.length;n++)e=e?.[r[n]];return e},"deepGet"),r6e=o(e=>{if(!e)return"?";let t="";return t+=e.firstName?e.firstName[0]:"",t+=e.lastName?e.lastName[0]:"",t!==""?t:e.email?.[0]||"U"},"getUserInitials"),n6e=o(e=>{let t=e?._id;if(!t)return"var(--spectrum-global-color-blue-400)";t=t.replace("ro_ta_users_","");let r=1;for(let n=0;n<t.length;n++)r+=t.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),i6e=o(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function zX(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}o(zX,"cancelableTimeout");async function o6e(e,t){let[r,n]=zX(e),i=await Promise.race([t(),r]);return n(),i}o(o6e,"withTimeout");function s6e(e){return e==="GOOGLE_SHEETS"}o(s6e,"isGoogleSheets");function a6e(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}o(a6e,"isSQL");async function BM(e){return new Promise(t=>setTimeout(t,e))}o(BM,"wait");async function u6e(e,t){let{times:r=3}=t||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await BM(s);try{return await e()}catch(a){n=a}}throw n}o(u6e,"retry");var pre=U(Ea()),hre=U(fre());var dre="(Input cron: ",YYe={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function JYe(e){let t=[];for(let r of e){r.includes(dre)&&(r=r.split(dre)[0].trim());for(let[n,i]of Object.entries(YYe))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}o(JYe,"improveErrors");function mre(e,t=4){let r=hre.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}o(mre,"getNextExecutionDates");function gre(e){let t=(0,pre.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:JYe(t.getError())}}o(gre,"validate");var U_={};G(U_,{decodeNonAscii:()=>iF,encodeNonAscii:()=>eJe,isDeprecatedSingleUserColumn:()=>XYe,isNumeric:()=>tJe,isRequired:()=>ZYe});function XYe(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}o(XYe,"isDeprecatedSingleUserColumn");function ZYe(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}o(ZYe,"isRequired");function eJe(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}o(eJe,"encodeNonAscii");function iF(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}o(iF,"decodeNonAscii");function tJe(e){return e.type==="number"||e.type==="bigint"}o(tJe,"isNumeric");var oF={};G(oF,{normalizeSchemaForStructuredOutput:()=>rJe});function rJe(e){function t(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let s=i.properties,a=[],u={};for(let[f,d]of Object.entries(s))if(typeof d=="object"&&d!==null){let p=d;if(p.required===!0){a.push(f);let{required:h,...m}=p;u[f]=t(m)}else u[f]=t(p)}else u[f]=d;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=t(i.items));for(let s of["anyOf","oneOf","allOf"])Array.isArray(i[s])&&(i[s]=i[s].map(a=>t(a)));return i}o(t,"processSchema");let r=t(e);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}o(rJe,"normalizeSchemaForStructuredOutput");var aF={};G(aF,{basicFields:()=>aJe,calculationFields:()=>sJe,hasCalculationFields:()=>oJe,isBasicViewField:()=>nJe,isCalculationField:()=>F_,isCalculationView:()=>iJe,isV2:()=>uJe,isVisible:()=>yre});var sF=U(require("lodash/pickBy"));function F_(e){return"calculationType"in e}o(F_,"isCalculationField");function nJe(e){return!F_(e)}o(nJe,"isBasicViewField");function iJe(e){return e.type==="calculation"}o(iJe,"isCalculationView");function oJe(e){return Object.values(e.schema||{}).some(F_)}o(oJe,"hasCalculationFields");function sJe(e){return(0,sF.default)(e.schema||{},F_)}o(sJe,"calculationFields");function yre(e){return e.visible!==!1}o(yre,"isVisible");function aJe(e,t){let{visible:r=!0}=t||{};return(0,sF.default)(e.schema||{},n=>!F_(n)&&(!r||yre(n)))}o(aJe,"basicFields");function uJe(e){return e.version===2}o(uJe,"isV2");var uF={};G(uF,{checkForRoleInheritanceLoops:()=>lJe});function cJe(e){return`role${ce}${e}`}o(cJe,"prefixForCheck");function lJe(e){let t=new Map;e.forEach(s=>{t.set(s._id,s)});let r=new Set,n=new Set;function i(s){let a=cJe(s);if(n.has(s)||n.has(a))return!0;if(r.has(s)||r.has(a))return!1;n.add(s);let u=t.get(a)||t.get(s);if(!u)return n.delete(s),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(s),r.add(s),!1}return o(i,"hasLoop"),!!e.find(s=>i(s._id))}o(lJe,"checkForRoleInheritanceLoops");var cF={};G(cF,{punctuateList:()=>fJe});function fJe(e){return e.length===0?"":e.length===1?e[0]:e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+" and "+e[e.length-1]}o(fJe,"punctuateList");var dJe=o((e,t)=>{let r=new RegExp("\\s(\\d+)$"),n=e.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];t.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(s.push(parseInt(c[1])),!0):!1}),s.sort((u,c)=>u-c);let a;if(s.length===0)a=1;else{for(let u=0;u<s.length;u++)if(s[u]!==u+1){a=u+1;break}a||(a=s.length+1)}return`${n} ${a}`},"duplicateName"),pJe=o((e,t,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!t?.length)return"";let s=t.trim(),a=n?`${t}1`:s;if(!e?.length)return a;let u=0;return e.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(s))return;let f=l.split(s);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>u&&(u=d)}),u===0?a:`${t}${i}${u+1}`},"getSequentialName");var hJe=o(e=>e?e.startsWith("/")?e:`/${e}`:"","normalizePath"),mJe=o(e=>e?e.endsWith("/")?e.slice(0,-1):e:"","normalizeBase"),ol=o((e,t)=>{let r=hJe(t);if(!e)return r;let n=mJe(e);return r?`${n}${r}`:n},"joinBaseAndPath"),bre=o(e=>ol(e,ZA.ACCOUNT),"accountPortalAccountUrl"),_re=o(e=>ol(e,ZA.BILLING),"accountPortalBillingUrl"),wre=o(e=>ol(e,ZA.UPGRADE),"accountPortalUpgradeUrl"),Ere=o(e=>ol(e,Yh.WORKSPACES),"builderWorkspacesUrl"),Sre=o(e=>ol(e,Yh.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Tre=o(e=>ol(e,Yh.SETTINGS_AUTH),"builderSettingsAuthUrl"),vre=o(e=>ol(e,Yh.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Are=o(e=>ol(e,Yh.APPS),"builderAppsUrl"),gJe={accountPortalAccountUrl:bre,accountPortalBillingUrl:_re,accountPortalUpgradeUrl:wre,builderWorkspacesUrl:Ere,builderSettingsEmailUrl:Sre,builderSettingsAuthUrl:Tre,builderSettingsPeopleUsersUrl:vre,builderAppsUrl:Are};function yJe(e,t=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,s=typeof e=="string"?parseInt(e,10):e||0;for(;s>=1024&&i<r.length-1&&++i;)s/=1024;return`${s.toFixed(s<10&&i>0?1:0)}${t}${r[i]}`}o(yJe,"formatBytes");var bJe={getNextExecutionDates:mre,validate:gre};var FR=U(require("lodash/isPlainObject")),lF=U(require("lodash/isEmpty"));var wJe=/{{([^{].*?)}}/g,Ore=Object.values(Gb),EJe=[...Object.values(Jf),...Object.values(wa),...Object.values(Hh)],SJe=o((e,t,r)=>{let n=fo,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:f}=e;c==="string"?f==="array"?u=a:u=i:c==="number"||c==="bigint"?u=s:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=s:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||U_.isDeprecatedSingleUserColumn(e)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let d=r?.tableId?.includes("datasource_plus");return t==="_id"&&d&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),Ire=[fo.StartsWith.value,fo.Like.value,fo.Equals.value,fo.NotEquals.value,fo.Contains.value,fo.NotContains.value,fo.ContainsAny.value,fo.In.value];function hF(e,t){for(let r of Ore)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}o(hF,"recurseLogicalOperators");var mF=o(e=>{for(let t of Ire)if(e[t])for(let r of Object.keys(e)){if(r!==t)continue;if(typeof e[r]=="object")for(let[i,s]of Object.entries(e[r]))(s==null||s===""||TJe(s))&&delete e[t][i]}return e=hF(e,mF),e},"cleanupQuery");function TJe(e){return Array.isArray(e)&&e.length===0}o(TJe,"isEmptyArray");var eR=o(e=>gF(e).key,"removeKeyNumbering"),gF=o(e=>{if(typeof e=="string"&&e.match(/\d[0-9]*:/g)!=null){let t=e.split(":");return{prefix:`${t.shift()}:`,key:t.join(":")}}else return{key:e}},"getKeyNumbering"),fF=class{static{o(this,"ColumnSplitter")}constructor(t,r){if(this.tableNames=t.map(n=>n.name),this.tableIds=t.map(n=>n._id),this.relationshipColumnNames=t.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(t){let{prefix:r,key:n}=gF(t),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let s;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),s=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=iF(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function vJe(e){if(!e||!e?.operator||!e?.field)return;let t={},{operator:r,field:n,type:i,externalType:s}=e,{value:a}=e;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(wJe)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(jA(r))return t[r]??={},t[r][n]=a,t}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(jA(r)){let l=HX[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};t[r]??={},t[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],low:a};else if(DX(r)||PX(r)||jA(r))i==="boolean"?r==="equal"&&a===!1?(t.notEqual=t.notEqual||{},t.notEqual[n]=!0):r==="notEqual"&&a===!1?(t.equal=t.equal||{},t.equal[n]=!0):(t[r]??={},t[r][n]=a):(t[r]??={},t[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return t}o(vJe,"buildCondition");function tR(e){let t={filters:[]};for(let r of e)"operator"in r&&r.operator==="allOr"?t.allOr=!0:"onEmptyFilter"in r?t.onEmptyFilter=r.onEmptyFilter:t.filters.push(r);return t}o(tR,"splitFiltersArray");function Cre(e){if(!e)return{};if(Array.isArray(e)&&(e=UM(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Rre(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let c=Cre(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:s,filters:a}=tR(n.filters||[]);s&&(t.onEmptyFilter=s);let u=i?"$or":"$and";return n.logicalOperator&&(u=Rre(n.logicalOperator)),{[u]:{conditions:a.map(vJe).filter(c=>c)}}})},t}o(Cre,"buildQuery");function Rre(e){return e==="all"?"$and":"$or"}o(Rre,"logicalOperatorFromUI");function yF(e){if(!e)return e;for(let t of Object.values(wa)){let r=e[t];if(!(r==null||!(0,FR.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return hF(e,yF),e}o(yF,"fixupFilterArrays");function AJe(e,t){let r=BR(e,t.query);t.sort&&(r=xre(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Dre(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}o(AJe,"search");function BR(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=mF(t),t=yF(t),!dF(t)&&t.onEmptyFilter==="none")return[];let r=o((T,R)=>A=>{for(let[O,I]of Object.entries(t[T]||{})){let D=Hc(T)?A:FM(A,eR(O)),x=R(D,I);if(t.allOr&&x)return!0;if(!t.allOr&&!x)return!1}return!t.allOr},"match"),n=r("string",(T,R)=>typeof T!="string"||typeof R!="string"?!1:T.toLowerCase().startsWith(R.toLowerCase())),i=r("fuzzy",(T,R)=>typeof T!="string"||typeof R!="string"?!1:T.toLowerCase().includes(R.toLowerCase())),s=r("range",(T,R)=>{if(T==null||T===""||((0,FR.default)(R.low)&&(0,lF.default)(R.low)&&(R.low=void 0),(0,FR.default)(R.high)&&(0,lF.default)(R.high)&&(R.high=void 0),R.low==null&&R.high==null))return!1;let A=+T;if(!isNaN(A)){let I=+R.low,D=+R.high;if(!isNaN(I)&&!isNaN(D))return A>=I&&A<=D;if(isNaN(I)){if(!isNaN(D))return A<=D}else return A>=I}let O=(0,hm.default)(T);if(O.isValid()){let I=(0,hm.default)(R.low||"0000-00-00T00:00:00.000Z"),D=(0,hm.default)(R.high||"9999-00-00T00:00:00.000Z");if(I.isValid()&&D.isValid())return O.isAfter(I)&&O.isBefore(D)||O.isSame(I)||O.isSame(D);if(I.isValid())return O.isAfter(I)||O.isSame(I);if(D.isValid())return O.isBefore(D)||O.isSame(D)}return R.low!=null&&R.high!=null?T>=R.low&&T<=R.high:R.low!=null?T>=R.low:R.high!=null?T<=R.high:!1}),a=o((T,R)=>{if(Array.isArray(T)){for(let O of T)if(a(O,R))return!0;return!1}if(T&&typeof T=="object"&&typeof R=="string")return T._id===R;if(T===R)return!0;if(T==null&&R!=null||T!=null&&R==null)return!1;let A=(0,hm.default)(T);if(A.isValid()){let O=(0,hm.default)(R);if(O.isValid())return A.isSame(O)}return!1},"_valueMatches"),u=o(T=>(...R)=>!T(...R),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=o(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),d=r("empty",f),p=r("notEmpty",u(f)),h=r("oneOf",(T,R)=>(typeof R=="string"&&(R=R.split(",")),typeof T=="number"&&(R=R.map(A=>parseFloat(A))),Array.isArray(R)?R.some(A=>a(T,A)):!1)),m=o(T=>(R,A)=>!Array.isArray(R)||(typeof A=="string"&&(A=A.split(","),typeof R[0]=="number"&&(A=A.map(O=>parseFloat(O)))),!Array.isArray(A))?!1:A.length===0?!0:A[T](O=>a(R,O)),"_contains"),g=r("contains",(T,R)=>Array.isArray(R)&&R.length===0?!0:m("every")(T,R)),y=r("notContains",(T,R)=>Array.isArray(R)&&R.length===0?!0:u(m("every"))(T,R)),b=r("containsAny",m("some")),w=r("$and",(T,R)=>{if(!R.length)return!1;for(let A of R)if(!BR([T],A).length)return!1;return!0}),E=r("$or",(T,R)=>{if(!R.length)return!1;for(let A of R)if(BR([T],{...A,allOr:!0}).length)return!0;return!1}),S=o(T=>{let R={string:n,fuzzy:i,range:s,equal:c,notEqual:l,empty:d,notEmpty:p,oneOf:h,contains:g,containsAny:b,notContains:y,$and:w,$or:E},A=Object.entries(t||{}).filter(([O,I])=>!["allOr","onEmptyFilter"].includes(O)&&I&&Object.keys(I).length>0).map(([O])=>R[O]?.(T)??!1);return dF(t)?t.allOr?A.some(O=>O===!0):A.every(O=>O===!0):!0},"docMatch");return e.filter(S)}o(BR,"runQuery");function xre(e,t,r,n="string"){if(!t||!r||!n)return e;let i=o(s=>s==null?s:n==="string"?`${s}`:parseFloat(s),"parse");return e.slice().sort((s,a)=>{let u=i(s[t]),c=i(a[t]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}o(xre,"sort");function Dre(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}o(Dre,"limit");var dF=o(e=>{if(!e)return!1;let t=o(r=>{for(let n of Ore)if(r[n])for(let i of r[n]?.conditions||[]){let s=t(i);if(s)return s}for(let n of EJe){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return t(e)},"hasFilters");var ln={};G(ln,{applications:()=>_F,automations:()=>EF,screens:()=>AF,users:()=>vF});var _F={};G(_F,{getDevAppID:()=>RJe,getProdAppID:()=>q_});var bF=ti("app"),B_=ti("app_dev");function RJe(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(B_))return e;let t=e.split(bF);t.shift();let r=t.join(bF);return`${B_}${r}`}o(RJe,"getDevAppID");function q_(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(B_))return e;let t=e.split(B_);t.shift();let r=t.join(B_);return`${bF}${r}`}o(q_,"getProdAppID");var EF={};G(EF,{checkForCollectStep:()=>wF,isAppAction:()=>CJe,isRowAction:()=>OJe,isWebhookAction:()=>IJe});function OJe(e){return e.definition.trigger?.stepId==="ROW_ACTION"}o(OJe,"isRowAction");function IJe(e){return e.definition.trigger?.stepId==="WEBHOOK"}o(IJe,"isWebhookAction");function CJe(e){return e.definition.trigger?.stepId==="APP"}o(CJe,"isAppAction");function Pre(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(BX(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(Pre(r))return!0}}return!1}o(Pre,"hasCollectBlockRecursive");function wF(e){return Pre(e.definition.steps)}o(wF,"checkForCollectStep");var vF={};G(vF,{canCreateApps:()=>xJe,containsUserID:()=>FJe,getGlobalUserID:()=>UJe,getUserAppGroups:()=>BJe,hasAdminPermissions:()=>TF,hasAppBuilderPermissions:()=>WR,hasBuilderPermissions:()=>kJe,hasCreatorPermissions:()=>GR,isAdmin:()=>j_,isAdminOrBuilder:()=>PJe,isAdminOrGlobalBuilder:()=>NJe,isAdminOrWorkspaceBuilder:()=>DJe,isBuilder:()=>SF,isCreator:()=>MJe,isGlobalBuilder:()=>jR,userAppAccessList:()=>qJe});function SF(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(q_(t))):!1}o(SF,"isBuilder");function jR(e){return SF(e)&&!WR(e)||j_(e)}o(jR,"isGlobalBuilder");function xJe(e){return jR(e)||GR(e)}o(xJe,"canCreateApps");function j_(e){return e?TF(e):!1}o(j_,"isAdmin");function DJe(e,t){return e?!!(j_(e)||t&&e.builder?.apps?.includes(q_(t))):!1}o(DJe,"isAdminOrWorkspaceBuilder");function PJe(e,t){return SF(e,t)||j_(e)}o(PJe,"isAdminOrBuilder");function NJe(e){return jR(e)||j_(e)}o(NJe,"isAdminOrGlobalBuilder");function WR(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}o(WR,"hasAppBuilderPermissions");function LJe(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}o(LJe,"hasAppCreatorPermissions");function kJe(e){return e?e.builder?.global||WR(e)||GR(e):!1}o(kJe,"hasBuilderPermissions");function TF(e){return e?!!e.admin?.global:!1}o(TF,"hasAdminPermissions");function GR(e){return e?!!e.builder?.creator:!1}o(GR,"hasCreatorPermissions");function MJe(e){return e?jR(e)||TF(e)||GR(e)||WR(e)||LJe(e):!1}o(MJe,"isCreator");function UJe(e){if(typeof e!="string")return e;let t=`ro${ce}ta_users${ce}`;return e.startsWith(t)?e.split(t)[1]:e}o(UJe,"getGlobalUserID");function FJe(e){return typeof e!="string"?!1:e.includes(`us${ce}`)}o(FJe,"containsUserID");function Nre(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}o(Nre,"getUserGroups");function BJe(e,t,r){let n=q_(e);return Nre(t,r).filter(s=>Object.keys(s.roles||{}).find(a=>a===n))}o(BJe,"getUserAppGroups");function qJe(e,t){let n=Nre(e._id,t).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}o(qJe,"userAppAccessList");var AF={};G(AF,{findInSettings:()=>jJe});function jJe(e,t){let r=[];function n(i,s=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(t)?r.push({setting:s?`${s}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return o(n,"recurse"),n(e.props),r}o(jJe,"findInSettings");var Vdr={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},Hdr={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},Qdr={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};function Lre(e){let t=Object.keys(e.schema),r=t.map(s=>s.toLowerCase()),n=new Set(r),i=[];if(n.size!==r.length)for(let s of n.keys())r.filter(u=>u===s).length>1&&i.push(s);for(let s of vn)t.find(a=>a===s)&&i.push(s);return i}o(Lre,"findDuplicateInternalColumns");var Ve={};G(Ve,{steps:()=>s1,triggers:()=>a1});var s1={};G(s1,{agent:()=>n1,apiRequest:()=>LF,bash:()=>RF,branch:()=>OF,classifyText:()=>JF,collect:()=>IF,createRow:()=>CF,delay:()=>xF,deleteRow:()=>DF,discord:()=>PF,executeQuery:()=>NF,executeScript:()=>kF,executeScriptV2:()=>MF,extract:()=>r1,extractState:()=>i1,filter:()=>UF,generate:()=>t1,getRow:()=>FF,loop:()=>BF,loopV2:()=>o1,make:()=>qF,n8n:()=>jF,openai:()=>WF,outgoingWebhook:()=>GF,promptLLM:()=>XF,queryRows:()=>$F,sendSmtpEmail:()=>VF,serverLog:()=>HF,slack:()=>QF,summarise:()=>e1,translate:()=>ZF,triggerAutomationRun:()=>KF,updateRow:()=>zF,zapier:()=>YF});var RF={};G(RF,{definition:()=>WJe});var WJe={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var OF={};G(OF,{definition:()=>GJe});var GJe={name:"Branch",icon:"git-branch",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var IF={};G(IF,{definition:()=>$Je});var $Je={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var CF={};G(CF,{definition:()=>VJe});var VJe={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var xF={};G(xF,{definition:()=>HJe});var HJe={name:"Delay",icon:"clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var DF={};G(DF,{definition:()=>QJe});var QJe={description:"Delete a row from your database",icon:"trash-simple",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var PF={};G(PF,{definition:()=>KJe});var KJe={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var NF={};G(NF,{definition:()=>zJe});var zJe={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var LF={};G(LF,{definition:()=>YJe});var YJe={name:"API Request",tagline:"Execute a REST request",icon:"globe",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var kF={};G(kF,{definition:()=>JJe});var JJe={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var MF={};G(MF,{definition:()=>XJe});var XJe={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var UF={};G(UF,{PrettyFilterConditions:()=>kre,definition:()=>ZJe});var kre={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},ZJe={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(KA),pretty:Object.values(kre)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var FF={};G(FF,{definition:()=>t7e});var e7e={ascending:"Ascending",descending:"Descending"},t7e={description:"Get a single row from the database",icon:"box-arrow-down",name:"Get Row",tagline:"Get a row from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"GET_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},rowId:{type:"string",title:"Row ID"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(co),pretty:Object.values(e7e)}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["row","success"]}}};var BF={};G(BF,{definition:()=>r7e});var r7e={name:"Looping",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var qF={};G(qF,{definition:()=>n7e});var n7e={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var jF={};G(jF,{definition:()=>i7e});var i7e={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Qb)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var WF={};G(WF,{definition:()=>o7e});var Mre=(u=>(u.GPT_4O_MINI="gpt-4o-mini",u.GPT_4O="gpt-4o",u.GPT_4="gpt-4",u.GPT_35_TURBO="gpt-3.5-turbo",u.GPT_5_MINI="gpt-5-mini",u.GPT_5="gpt-5",u.GPT_5_NANO="gpt-5-nano",u))(Mre||{}),o7e={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(Mre)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var GF={};G(GF,{definition:()=>s7e});var Ure=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(Ure||{}),s7e={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(Ure),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var $F={};G($F,{definition:()=>u7e});var a7e={ascending:"Ascending",descending:"Descending"},u7e={description:"Query rows from the database",icon:"magnifying-glass",name:"Query Rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(co),pretty:Object.values(a7e)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var VF={};G(VF,{definition:()=>c7e});var c7e={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var HF={};G(HF,{definition:()=>l7e});var l7e={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var QF={};G(QF,{definition:()=>f7e});var f7e={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var KF={};G(KF,{definition:()=>d7e});var d7e={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var zF={};G(zF,{definition:()=>p7e});var p7e={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var YF={};G(YF,{definition:()=>h7e});var h7e={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var JF={};G(JF,{definition:()=>m7e});var m7e={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var XF={};G(XF,{definition:()=>g7e});var g7e={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var ZF={};G(ZF,{definition:()=>y7e});var y7e={name:"Translate",tagline:"Translate text to a different language",icon:"globe",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var e1={};G(e1,{definition:()=>b7e});var Fre=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(Fre||{}),b7e={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(Fre)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var t1={};G(t1,{definition:()=>_7e});var _7e={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},features:{LOOPING:!0},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values($A),pretty:Object.values(FX)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var r1={};G(r1,{definition:()=>w7e});var w7e={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(VA),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(HA),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var n1={};G(n1,{definition:()=>E7e});var E7e={name:"Agent",icon:"Effect",tagline:"Run an AI agent with tools",description:"Execute a pre-configured AI agent that can use tools to accomplish tasks",stepId:"AGENT",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{agentId:{customType:"agent",title:"Agent",description:"Select the agent to run"},prompt:{type:"longform",title:"Prompt",description:"The task or question to send to the agent"},useStructuredOutput:{type:"boolean",title:"Use structured output",description:"Constrain the agent response to a specific JSON structure"},outputSchema:{type:"object",customType:"outputSchema",title:"Output Schema",description:"Define the structure of the agent's output",dependsOn:"useStructuredOutput"}},required:["agentId","prompt"]},outputs:{properties:{response:{type:"string",description:"The agent's response"},success:{type:"boolean",description:"Whether the agent completed successfully"},steps:{type:"array",description:"The steps taken by the agent"},output:{type:"object",description:"Structured output from the agent (when output schema is defined)"}},required:["response","success"]}},type:"ACTION"};var i1={};G(i1,{definition:()=>S7e});var S7e={name:"State",tagline:"Extract automation state",icon:"brackets-curly",description:"Extract automation state into a named variable",type:"ACTION",internal:!0,new:!1,stepId:"EXTRACT_STATE",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{key:{type:"string",title:"Key"},value:{type:"longform",title:"Value"}},required:["value","key"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var o1={};G(o1,{definition:()=>T7e});var T7e={name:"Loop",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP_V2",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{children:{type:"array",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}}},outputs:{properties:{success:{type:"boolean",description:"Loop success"},iterations:{type:"number",description:"The number of iterations executed"},items:{type:"json",description:"Per-step iteration results"},summary:{type:"json",description:"Loop summary including per-step counters"}},required:["success"]}},type:"LOGIC"};var a1={};G(a1,{definitions:()=>P7e});var Bre={name:"User action",event:"app:trigger",icon:"cursor-click",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var qre={name:"CRON / Schedule",event:"cron:trigger",icon:"clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var jre={name:"Email Received",event:"email:trigger",icon:"envelope",tagline:"Email Trigger",description:"Triggers automation when an email is received",stepId:"EMAIL",inputs:{host:"",port:993,secure:!0,username:"",password:"",mailbox:"INBOX"},schema:{inputs:{properties:{host:{type:"string",description:"IMAP host address"},port:{type:"number",description:"IMAP port"},secure:{type:"boolean",description:"Use TLS/SSL for the IMAP connection"},username:{type:"string",description:"IMAP username"},password:{type:"string",description:"IMAP password"},mailbox:{type:"string",description:"Mailbox to monitor"}},required:["host","port","secure","username","password"]},outputs:{properties:{from:{type:"string",description:"Who sent the email"},to:{type:"string",description:"Who received the email"},cc:{type:"array",subtype:"string",description:"Who was CC'd on the email"},subject:{type:"string",description:"What was the subject of the email"},sentAt:{type:"datetime",description:"When the email was sent"},bodyText:{type:"string",description:"Email content (plain text)"}},required:["from","to"]}},type:"TRIGGER"};var Wre={name:"Row Deleted",event:"row:delete",icon:"trash-simple",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Gre={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var $re={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Vre={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var Hre={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"row action workflow",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var P7e={ROW_SAVED:Gre,ROW_UPDATED:$re,ROW_DELETED:Wre,WEBHOOK:Vre,APP:Bre,CRON:qre,EMAIL:jre,ROW_ACTION:Hre};var N7e=Object.values(Me).sort((e,t)=>t.length-e.length);function Qre(e){return N7e.find(t=>e.startsWith(`${t}${ce}`))}o(Qre,"getDocumentType");var L7e=Object.values(Kc).sort((e,t)=>t.length-e.length);function Kre(e){return L7e.find(t=>e.startsWith(`${t}${ce}`))}o(Kre,"getVirtualDocumentType");var k7e=new RegExp("^datasource_plus_(.+)__(.+)$"),$R=o(e=>t=>!!t&&t.startsWith(`${e}${ce}`),"idCheckFor"),M7e=o(e=>{let t=e.match(k7e);return!!e&&t!==null},"isExternalTableId"),Ls=o(e=>U7e(e)||M7e(e),"isTableIdOrExternalTableId"),U7e=$R("ta"),dn=$R("view"),mm=$R("datasource"),zre=$R("query");function Zr(e){if(!dn(e))throw new Error("Unable to extract table ID, is not a view ID");let t=e.split(ce);return t.shift(),e=t.join(ce),new RegExp(`^(?<tableId>.+)${ce}([^${ce}]+)$`).exec(e).groups.tableId}o(Zr,"getTableIdFromViewId");var u1=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(u1||{}),al=(f=>(f.USER_BY_WORKSPACE="by_app",f.USER_BY_EMAIL="by_email2",f.BY_API_KEY="by_api_key",f.LINK="by_link",f.ROUTING="screen_routes_2",f.AUTOMATION_LOGS="automation_logs",f.ACCOUNT_BY_EMAIL="account_by_email",f.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",f.USER_BY_GROUP="user_by_group",f.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",f))(al||{}),W_={by_email2:["by_email"]},tr={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},ks=ti("app"),c1=ti("app_dev"),Ms=c1,ul="internal",Yre="budibase",Fn="_design/sqlite",Jre="ta_bb_jobs",Xre="ta_bb_inventory",Zre="ta_bb_expenses",ene="ta_bb_employee",VR=`ro${ce}ta_users${ce}`,yd=(r=>(r[r.SQLITE=Fn]="SQLITE",r.MIGRATIONS="_design/migrations",r))(yd||{});var l1=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(l1||{}),gm=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(gm||{}),tne=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(tne||{}),rne=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(rne||{}),F7e=new Date(-2147483647e3),f1=new Date(2147483647e3),Lr="default";var Fe={};G(Fe,{CacheKey:()=>_n,TTL:()=>Dp,bustCache:()=>ey,destroy:()=>bS,docWritethrough:()=>JH,generic:()=>_S,get:()=>Pp,invite:()=>ZH,keys:()=>V0,passwordReset:()=>e4,store:()=>cc,user:()=>hf,withCache:()=>rf,withCacheWithDynamicTTL:()=>JRe,workspace:()=>zw,writethrough:()=>F3});var JH={};G(JH,{DocWritethrough:()=>YH,DocWritethroughProcessor:()=>yS,getProcessor:()=>MMt,init:()=>YRe});var Vn={};G(Vn,{BudibaseQueue:()=>$s,InMemoryQueue:()=>AI,JobQueue:()=>ag,QueuedProcessor:()=>zH,UnretriableError:()=>G0,shutdown:()=>fct});var d1=require("crypto"),QR=require("fs"),q7e=require("lodash"),G_=require("path");var j7e=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,G_.resolve)((0,G_.join)(__dirname,"..","..","..")),nne=!1;!nne&&HR()&&!p1()&&(require("dotenv").config({path:(0,G_.join)(j7e,".env")}),nne=!0);function p1(){return one()}o(p1,"isTest");function one(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}o(one,"isJest");function HR(){return process.env.NODE_ENV!=="production"}o(HR,"isDev");function W7e(e){if(e)return parseInt(e)}o(W7e,"parseIntSafe");var ym={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},ine=!!parseInt(process.env.SELF_HOSTED||"");function G7e(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}o(G7e,"getAPIEncryptionKey");function $7e(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}o($7e,"httpLogging");function V7e(){function e(r){function n(u,c){let l=`${c}/${u}`;if((0,QR.existsSync)(l))return l;let f=`${c}/..`;return f===c?null:n(u,f)}o(n,"findFileInAncestors");let i=n(r,process.cwd()),s=(0,QR.readFileSync)(i,"utf-8");return JSON.parse(s)}o(e,"getParentFile");let t;if(HR()&&!p1())try{t=`${e("lerna.json").version}+local`}catch{}try{let r=e("package.json");return{VERSION:t||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}o(V7e,"getPackageJsonFields");function H7e(){return cl.SERVICE_TYPE==="worker"}o(H7e,"isWorker");function Q7e(){return cl.SERVICE_TYPE==="apps"}o(Q7e,"isApps");function K7e(){return cl.BUDIBASE_ENVIRONMENT==="QA"}o(K7e,"isQA");function z7e(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}o(z7e,"getServiceName");var cl={isTest:p1,isJest:one,isDev:HR,isWorker:H7e,isApps:Q7e,isQA:K7e,isProd:()=>!HR(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,d1.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,d1.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:G7e(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:ine,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||ym.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||ym.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||ym.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||ym.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||ym.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||ym.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:z7e(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:$7e(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:ine?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...V7e(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(e,t){process.env[e]=t,cl[e]=t},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:W7e(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC};var sne=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD","REDIS_USERNAME"];for(let[e,t]of Object.entries(cl))t==="0"&&(cl[e]=0),t==="false"&&(cl[e]=0);var L=cl;var YR={};G(YR,{Databases:()=>h1,SEPARATOR:()=>bm,SelectableDatabase:()=>KR,getRedisClusterOptions:()=>m1,getRedisConnectionDetails:()=>zR,getRedisOptions:()=>bd,removeDbPrefix:()=>g1});var bm="-",h1=(E=>(E.PW_RESETS="pwReset",E.VERIFICATIONS="verification",E.INVITATIONS="invitation",E.DEV_LOCKS="devLocks",E.DEBOUNCE="debounce",E.SESSIONS="session",E.USER_CACHE="users",E.FLAGS="flags",E.WORKSPACE_METADATA="appMetadata",E.QUERY_VARS="queryVars",E.LICENSES="license",E.GENERIC_CACHE="data_cache",E.WRITE_THROUGH="writeThrough",E.LOCKS="locks",E.SOCKET_IO="socket_io",E.BPM_EVENTS="bpmEvents",E.DOC_WRITE_THROUGH="docWriteThrough",E.RECAPTCHA_SESSION="recaptchaSession",E.OPENAPI_IMPORT_SPECS="openapiImportSpecs",E))(h1||{}),KR=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(KR||{});function zR(){let e=L.REDIS_PASSWORD,t=L.REDIS_USERNAME,r=L.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");t=t||a[0]||void 0,e=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),s=parseInt(i);return{host:n,password:e,username:t,port:isNaN(s)?6379:s}}o(zR,"getRedisConnectionDetails");function m1(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...bd(),tls:{}}}}o(m1,"getRedisClusterOptions");function bd(){let{host:e,password:t,port:r,username:n}=zR();return{connectTimeout:3e4,port:r,host:e,password:t,...n&&{username:n}}}o(bd,"getRedisOptions");function g1(e){let t=e.split(bm);return t.length>=2?(t.shift(),t.join(bm)):t[0]}o(g1,"removeDbPrefix");var Mle=U(require("events"));var it={};G(it,{Duration:()=>nr,DurationType:()=>kle,GZIP_PREFIX:()=>vI,clearCookie:()=>Nl,compare:()=>_1,getCookie:()=>Vu,getDispatcher:()=>Xut,getWorkspaceIdFromCtx:()=>Gd,gunzipFromBase64:()=>rct,gzipToBase64:()=>tct,hasCircularStructure:()=>$ut,hash:()=>b1,isAudited:()=>$q,isClient:()=>Gut,isPublicApiRequest:()=>jut,isServingApp:()=>Fut,isServingBuilder:()=>But,isServingBuilderPreview:()=>qut,isValidInternalAPIKey:()=>nE,newid:()=>Nt,openJwt:()=>EI,setCookie:()=>Lle,time:()=>Hut,timeout:()=>Gq,urlHasProtocol:()=>Vut,validEmail:()=>Vq});var ane=require("uuid");function Nt(){return(0,ane.v4)().replace(/-/g,"")}o(Nt,"newid");var y1=require("bcrypt"),Y7e=L.SALT_ROUNDS||10;async function b1(e){let t=await y1.genSalt(Y7e);return y1.hash(e,t)}o(b1,"hash");async function _1(e,t){return y1.compare(e,t)}o(_1,"compare");var wI=U(require("jsonwebtoken"));var C={};G(C,{DEFAULT_TENANT_ID:()=>Lr,baseGlobalDBName:()=>Hw,doInAutomationContext:()=>Hat,doInContext:()=>bq,doInEnvironmentContext:()=>nut,doInFeatureFlagOverrideContext:()=>Aq,doInIPContext:()=>Eq,doInIdentityContext:()=>H_,doInLicenseContext:()=>Kat,doInScimContext:()=>iut,doInSelfHostTenantUsingCloud:()=>Qat,doInTenant:()=>Wi,doInWorkspaceContext:()=>Jat,doInWorkspaceMigrationContext:()=>Zat,ensureSnippetContext:()=>qce,getAuditLogDBName:()=>Fce,getAuditLogsDB:()=>sut,getAutomationId:()=>_q,getCurrentContext:()=>Bd,getDevWorkspaceDB:()=>uut,getDevWorkspaceId:()=>tut,getEnvironmentVariables:()=>out,getFeatureFlagOverrides:()=>vq,getFeatureFlags:()=>Sq,getGlobalDB:()=>gt,getGlobalDBName:()=>Fd,getIP:()=>wq,getIdentity:()=>Pu,getLicense:()=>zat,getOrThrowWorkspaceId:()=>eut,getPlatformURL:()=>yq,getProdWorkspaceDB:()=>aut,getProdWorkspaceId:()=>rut,getScimDBName:()=>Wat,getSelfHostCloudDB:()=>Yat,getTableForView:()=>cut,getTenantIDFromWorkspaceID:()=>tg,getTenantId:()=>Ue,getWorkspaceDB:()=>rg,getWorkspaceId:()=>Si,identity:()=>V_,isMultiTenant:()=>Dl,isScim:()=>Gs,isSelfHostUsingCloud:()=>nI,isTenancyEnabled:()=>$at,isTenantIdSet:()=>Gat,setFeatureFlags:()=>Tq,setTableForView:()=>lut});var V_={};G(V_,{doInAccountContext:()=>J7e,doInIdentityContext:()=>E1,doInUserContext:()=>S1,getAccountUserId:()=>une,getIdentity:()=>w1});function w1(){return Pu()}o(w1,"getIdentity");function E1(e,t){return H_(e,t)}o(E1,"doInIdentityContext");function S1(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return E1(n,r)}o(S1,"doInUserContext");function J7e(e,t){let r=une(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return E1(i,t)}o(J7e,"doInAccountContext");function une(e){let t;return WA(e)?t=e.budibaseUserId:t=e.accountId,t}o(une,"getAccountUserId");var Us=o(e=>{let t=T1(e),r,n;if(t.auth?.username)r=t.auth.username;else if(L.COUCH_DB_USERNAME)r=L.COUCH_DB_USERNAME;else if(!L.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(L.COUCH_DB_PASSWORD)n=L.COUCH_DB_PASSWORD;else if(!L.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=L.COUCH_DB_SQL_URL;if(L.isDev()&&!s)s="http://localhost:4006";else if(!s&&t.url){let a=new URL(t.url);s=t.url.replace(a.port,"4984")}return{url:t.url,sqlUrl:T1(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),T1=o((e=L.COUCH_DB_URL)=>{let t,r,n,i;if(e){/^https?:\/\//i.test(e)||(e=`http://${e}`);let a=e.split("://"),u=a[0],c=a.slice(1).join("://");if(e.includes("@")){let l=c.split("@");i=l[l.length-1];let f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=c;t=`${u}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var kce=U(require("@budibase/nano"));var cne=U(require("node-fetch"));function JR(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}o(JR,"checkSlashesInUrl");async function lne(e,t="GET",r){let{url:n,cookie:i}=Us(),s=`${n}/${e}`;return await Q_({url:s,cookie:i,method:t,body:r})}o(lne,"directCouchCall");async function Q_({url:e,cookie:t,method:r,body:n}){let i={method:r,headers:{Authorization:t}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,cne.default)(JR(encodeURI(e)),i)}o(Q_,"directCouchUrlCall");async function v1(e,t="GET",r){let n=await lne(e,t,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}o(v1,"directCouchQuery");var Ud=U(require("pouchdb"));var xce,Dce=!1,sq=o((e={})=>{let{url:t,cookie:r}=Us(),n={prefix:t,fetch:(i,s)=>(s.headers.set("Authorization",r),Ud.default.fetch(i,s))};if(e.inMemory){let i=Tae();Ud.default.plugin(i),n={adapter:"memory"}}if(e.onDisk&&(n={adapter:"leveldb"}),e.replication){let i=Cce();Ud.default.plugin(i.plugin),Ud.default.adapter("writableStream",i.adapters.writableStream)}if(e.find){let i=require("pouchdb-find");Ud.default.plugin(i)}return Ud.default.defaults(n)},"getPouch");function XO(e){xce=sq(e),Dce=!0}o(XO,"init");var vat=o(()=>{if(!Dce)throw new Error("init has not been called")},"checkInitialised");function ts(e,t){vat();let r=new xce(e,t),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}o(ts,"getPouchDB");async function Gw(e){if(!(!e||L.isTest()))try{return await e.close()}catch{}}o(Gw,"closePouchDB");var Mr=U(require("dd-trace"));var Xm=class{constructor(t){this.db=t}static{o(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return Mr.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:t}),t?this.db.exists(t):this.db.exists()))}get(t){return Mr.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return Mr.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:t});let n=await this.db.tryGet(t);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(t,r){return Mr.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:t?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(t,r);return n.addTags({num_docs_found:i.length}),i})}remove(t,r){return Mr.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:t,rev:r});let i=typeof t=="object",s=i?t._id:t;r=i?t._rev:r;let a=await this.db.remove(s,r);return n.addTags({ok:a.ok}),a})}bulkRemove(t,r){return Mr.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:t.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(t,r)))}put(t,r){return Mr.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:t._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(t,r);return n.addTags({ok:i.ok}),i})}bulkDocs(t){return Mr.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return Mr.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.find(t);return r.addTags({rows_length:n.docs.length}),n})}allDocs(t){return Mr.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.allDocs(t);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(t,r){return Mr.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:t,...r});let i=await this.db.query(t,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Mr.default.trace("db.destroy",async t=>{t.addTags({db_name:this.name});let r=await this.db.destroy();return t.addTags({ok:r.ok}),r})}compact(){return Mr.default.trace("db.compact",async t=>{t.addTags({db_name:this.name});let r=await this.db.compact();return t.addTags({ok:r.ok}),r})}dump(t,r){return Mr.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(t,r)))}load(...t){return Mr.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return Mr.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return Mr.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return Mr.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return Mr.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(t,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(t){return Mr.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(t)?t.length:1}),this.db.sqlPurgeDocument(t)))}sqlDiskCleanup(){return Mr.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var hq={};G(hq,{breakExternalTableId:()=>cq,breakRowIdField:()=>Uat,buildExternalTableId:()=>Dat,convertRowId:()=>Mat,encodeTableId:()=>Pat,encodeViewId:()=>Nat,extractDate:()=>fq,generateRowIdField:()=>Lat,getNativeSql:()=>Zm,isExternalTable:()=>uq,isExternalTableID:()=>ZO,isInternalTableID:()=>xat,isRowId:()=>kat,isValidFilter:()=>tI,isValidISODateString:()=>eI,isValidISODateStringWithoutTimezone:()=>lq,isValidTime:()=>dq,sqlLog:()=>$w,validateManyToMany:()=>pq});var aq=`${ce}${ce}`,Pce=/^\[.*]$/g,Aat=encodeURIComponent(" "),Rat=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Oat=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Iat=/(\d{4}-\d{2}-\d{2})/,Cat=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ZO(e){return e.startsWith("datasource"+ce)}o(ZO,"isExternalTableID");function xat(e){return!ZO(e)}o(xat,"isInternalTableID");function Zm(e){let t=e.toSQL();if(Array.isArray(t))return t;let r;return t.toNative&&(r=t.toNative()),{sql:r?.sql||t.sql,bindings:r?.bindings||t.bindings}}o(Zm,"getNativeSql");function uq(e){return e?.sourceId&&e.sourceId.includes("datasource"+ce)&&e?.sourceId!==Kb||e?.sourceType==="external"?!0:!!(e?._id&&ZO(e._id))}o(uq,"isExternalTable");function Dat(e,t){return`${e}${aq}${encodeURIComponent(t)}`}o(Dat,"buildExternalTableId");function Pat(e){return ZO(e)?encodeURIComponent(e):e}o(Pat,"encodeTableId");function Nat(e){return encodeURIComponent(e)}o(Nat,"encodeViewId");function cq(e){let t=e.split(aq),r=t.shift(),n=t.join(aq);if(n.includes(Aat)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}o(cq,"breakExternalTableId");function Lat(e=[]){Array.isArray(e)||(e=[e]);for(let t in e)e[t]instanceof Buffer&&(e[t]=e[t].toString());return encodeURIComponent(JSON.stringify(e).replace(/"/g,"'"))}o(Lat,"generateRowIdField");function kat(e){return Array.isArray(e)||typeof e=="string"&&e.match(Pce)!=null}o(kat,"isRowId");function Mat(e){return Array.isArray(e)?e[0]:typeof e=="string"&&e.match(Pce)!=null?e.substring(1,e.length-1):e}o(Mat,"convertRowId");function Uat(e){if(!e)return[];let t=typeof e=="string"?e:e._id,r=decodeURIComponent(t).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[e]}}o(Uat,"breakRowIdField");function eI(e){let t=e.trim();if(!Rat.test(t))return!1;let r=new Date(t);return!isNaN(r.getTime())}o(eI,"isValidISODateString");function lq(e){let t=e.trim();if(!Oat.test(t))return!1;let r=new Date(t);return!isNaN(r.getTime())}o(lq,"isValidISODateStringWithoutTimezone");function fq(e){let t=e.match(Iat);if(t)return t[0]}o(fq,"extractDate");function tI(e){return e!=null&&e!==""}o(tI,"isValidFilter");function dq(e){return Cat.test(e)}o(dq,"isValidTime");function $w(e,t,r){if(!L.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}o($w,"sqlLog");function Fat(e){return!!e.through&&!!e.fromPrimary&&!!e.from&&!!e.toPrimary&&!!e.to}o(Fat,"isValidManyToManyRelationship");function pq(e){if(Fat(e))return e}o(pq,"validateManyToMany");var Nce="Database does not exist.";function Lce(e){return(0,kce.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}o(Lce,"buildNano");var Cl=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{o(this,"CouchDBError")}};function Bat(e,t,r){if(!e||!t)throw new Error("Unable to create database without database name or connection");let n=new eg(e,r,t);return new Xm(n)}o(Bat,"DatabaseWithConnection");var eg=class e{constructor(t,r,n){this.couchInfo=Us();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=Us(n),this.instanceNano=Lce(this.couchInfo)),e.nano||e.init()}static{o(this,"DatabaseImpl")}static init(){let t=Us();e.nano=Lce(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await Q_({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(t){try{return await this.performCall(r=>()=>r.head(t)),!0}catch{return!1}}nano(){return this.instanceNano||e.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let t=!this.pouchOpts?.skip_setup,r=await this.exists();if(!t&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Cl(n.message,n)}return this.getDb()}async performCallWithDBCreation(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===Nce)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new Cl(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new Cl(`CouchDB error: ${i.message}`,i)}}async get(t){return this.performCall(r=>{if(!t)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(t)})}async tryGet(t){try{return await this.get(t)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(t,r){if(!t||t.length===0)return[];t=[...new Set(t)];let n=!r?.excludeDocs,i=await this.allDocs({keys:t,include_docs:n}),s=o(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!s(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(f=>s(f)).map(f=>f.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(t,r){return this.performCall(n=>{let i,s;if(LX(t)?(i=t._id,s=t._rev):(i=t,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(t,r){let n=await this.performCall(a=>()=>a.bulk({docs:t.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,s+=a.error);if(i)throw new Cl(s,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=Nt()),this.put(t,r)}async put(t,r){if(!t._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(t.createdAt||(t.createdAt=new Date().toISOString()),t.updatedAt=new Date().toISOString(),r?.force&&t._id)try{let i=await this.get(t._id);i&&(t._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(t);return r?.returnDoc?{...i,doc:{...t,_rev:i.rev}}:i}})}async bulkDocs(t){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:t.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(t){return this.performCall(r=>async()=>r.find(t))}async allDocs(t){return this.performCall(r=>async()=>{try{return await r.list(t)}catch(n){if(n.reason===Nce)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=JR(`${this.couchInfo.sqlUrl}/${t}`);let i={url:t,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Q_(i),a=await s.text();if(s.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Cl("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw u}return JSON.parse(a)})}async sql(t,r){let i=`/${this.name}/${Fn}`;return $w("sqlite3",t,r),await this._sqlQuery(i,"POST",{query:t,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(t){Array.isArray(t)||(t=[t]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:t})}async query(t,r){return this.performCall(n=>{let[i,s]=t.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Fn)){let t=await this.get(Fn);t.sql.tables={},await this.put(t),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(t){if(t.statusCode===404)return{ok:!0};throw new Cl(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return ts(this.name).dump(t,r)}async load(t){return ts(this.name).load(t)}async createIndex(t){return ts(this.name).createIndex(t)}async deleteIndex(t){return ts(this.name).deleteIndex(t)}async getIndexes(){return ts(this.name).getIndexes()}};function Ei(e,t){return new Xm(new eg(e,t))}o(Ei,"getDB");async function Io(e,t,r){let n=Ei(e,r);return await t(n)}o(Io,"doWithDB");async function mq(e){let t="/_all_dbs";return e&&(t+=`?${e}`),await v1(t)}o(mq,"directCouchAllDbs");var gq="No app provided";function xl(e){if(!e)throw gq;return e.startsWith(Ms)}o(xl,"isDevWorkspaceID");function qat(e){if(!e)throw gq;return e.startsWith(ks)&&!xl(e)}o(qat,"isProdWorkspaceID");function Vw(e){if(!e)throw gq;return xl(e.appId)}o(Vw,"isDevWorkspace");function rI(e){if(!e||e.startsWith(Ms))return e;let t=e.split(ks);t.shift();let r=t.join(ks);return`${Ms}${r}`}o(rI,"getDevWorkspaceID");function Co(e){if(!e||!e.startsWith(Ms))return e;let t=e.split(Ms);t.shift();let r=t.join(Ms);return`${ks}${r}`}o(Co,"getProdWorkspaceID");var Mce=require("async_hooks");var tn=class e{static{o(this,"Context")}static{this.storage=new Mce.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var Uce=null;function Fd(e){return e||(e=Ue()),Hw(e)}o(Fd,"getGlobalDBName");function Fce(e){return e||(e=Ue()),e===Lr?tr.AUDIT_LOGS.name:`${e}${ce}${tr.AUDIT_LOGS.name}`}o(Fce,"getAuditLogDBName");function Wat(e){return e||(e=Ue()),e===Lr?tr.SCIM_LOGS.name:`${e}${ce}${tr.SCIM_LOGS.name}`}o(Wat,"getScimDBName");function Hw(e){return!e||e===Lr?tr.GLOBAL.name:`${e}${ce}${tr.GLOBAL.name}`}o(Hw,"baseGlobalDBName");function yq(){return L.PLATFORM_URL}o(yq,"getPlatformURL");function Dl(){return!!L.MULTI_TENANCY}o(Dl,"isMultiTenant");function Gat(){return!!tn.get()?.tenantId}o(Gat,"isTenantIdSet");function $at(){return L.MULTI_TENANCY}o($at,"isTenancyEnabled");function tg(e){if(!e)return;if(!Dl())return Lr;let t=e.split(ce),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}o(tg,"getTenantIDFromWorkspaceID");function Vat(e){let t;try{t=tn.get()}catch{t={}}return t={...t,...e},t}o(Vat,"updateContext");async function Ws(e,t){Xat();let r=Vat(e);return tn.run(r,t)}o(Ws,"newContext");async function Hat(e){return await qce(),await Ws({tenantId:tg(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}o(Hat,"doInAutomationContext");async function bq(e,t){let r=tg(e);return Ws({tenantId:r,appId:e},t)}o(bq,"doInContext");async function Wi(e,t){return L.MULTI_TENANCY||(e=e||Lr),Ws(e?{tenantId:e}:{},t)}o(Wi,"doInTenant");async function Qat(e,t){return Ws({tenantId:e,isSelfHostUsingCloud:!0},t)}o(Qat,"doInSelfHostTenantUsingCloud");async function Kat(e,t){return Ws({license:e},t)}o(Kat,"doInLicenseContext");function zat(){return tn.get()?.license}o(zat,"getLicense");function nI(){return!!tn.get()?.isSelfHostUsingCloud}o(nI,"isSelfHostUsingCloud");function Yat(){let e=tn.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ei(tr.SELF_HOST_CLOUD.name)}o(Yat,"getSelfHostCloudDB");async function Jat(e,t){return Bce(e,t)}o(Jat,"doInWorkspaceContext");async function Bce(e,t,r){if(!e)throw new Error("workspaceId is required");let n=tg(e),i={appId:e,...r};return n&&(i.tenantId=n),Ws(i,t)}o(Bce,"_doInWorkspaceContext");async function H_(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),Ws(r,t)}o(H_,"doInIdentityContext");function Xat(){if(tn.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}o(Xat,"guardMigration");async function Zat(e,t){return Bce(e,t,{isMigrating:!0})}o(Zat,"doInWorkspaceMigrationContext");function Pu(){try{return tn.get()?.identity}catch{}}o(Pu,"getIdentity");function Ue(){if(!Dl())return Lr;let t=tn.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}o(Ue,"getTenantId");function _q(){return tn.get()?.automationId}o(_q,"getAutomationId");function Si(){let t=tn.get()?.appId;return!t&&L.isTest()&&Uce?Uce:t}o(Si,"getWorkspaceId");function eut(){let e=Si();if(!e)throw new Error("Workspace id not set");return e}o(eut,"getOrThrowWorkspaceId");function wq(){return tn.get()?.ip}o(wq,"getIP");var tut=o(()=>{let e=Si();if(!e)throw new Error("Could not get workspaceId");return rI(e)},"getDevWorkspaceId"),rut=o(()=>{let e=Si();if(!e)throw new Error("Could not get workspaceId");return Co(e)},"getProdWorkspaceId");function nut(e,t){if(!e)throw new Error("Must supply environment variables.");return Ws({environmentVariables:e},t)}o(nut,"doInEnvironmentContext");function iut(e){return Ws({isScim:!0},e)}o(iut,"doInScimContext");function Eq(e,t){return Ws({ip:e},t)}o(Eq,"doInIPContext");async function qce(){let e=Bd();if(!e||e.snippets)return;let t,r=rg();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}o(qce,"ensureSnippetContext");function out(){let e=tn.get();return e.environmentVariables?e.environmentVariables:null}o(out,"getEnvironmentVariables");function gt(){let e=tn.get();if(!e||L.MULTI_TENANCY&&!e.tenantId)throw new Error("Global DB not found");if(e.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return Ei(Hw(e?.tenantId))}o(gt,"getGlobalDB");function sut(){if(!Ue())throw new Error("No tenant ID found - cannot open audit log DB");return Ei(Fce())}o(sut,"getAuditLogsDB");function rg(e){let t=Si();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(nI())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Ei(t,e)}o(rg,"getWorkspaceDB");function aut(e){let t=Si();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Ei(Co(t),e)}o(aut,"getProdWorkspaceDB");function uut(e){let t=Si();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Ei(rI(t),e)}o(uut,"getDevWorkspaceDB");function Gs(){return!!tn.get()?.isScim}o(Gs,"isScim");function Bd(){try{return tn.get()}catch{return}}o(Bd,"getCurrentContext");function Sq(e){let t=Bd();if(t)return t.featureFlagCache?.[e]}o(Sq,"getFeatureFlags");function Tq(e,t){let r=Bd();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}o(Tq,"setFeatureFlags");function vq(){return Bd()?.featureFlagOverrides||{}}o(vq,"getFeatureFlagOverrides");async function Aq(e,t){return await Ws({featureFlagOverrides:e},t)}o(Aq,"doInFeatureFlagOverrideContext");function cut(e){let t=Bd();if(t)return t.viewToTableCache?.[e]}o(cut,"getTableForView");function lut(e,t){let r=Bd();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}o(lut,"setTableForView");var F={};G(F,{AutomationViewMode:()=>u1,BUDIBASE_DATASOURCE_TYPE:()=>Yre,DEFAULT_BB_DATASOURCE_ID:()=>Kb,DEFAULT_EMPLOYEE_TABLE_ID:()=>ene,DEFAULT_EXPENSES_TABLE_ID:()=>Zre,DEFAULT_INVENTORY_TABLE_ID:()=>Xre,DEFAULT_JOBS_TABLE_ID:()=>Jre,DatabaseImpl:()=>eg,DatabaseWithConnection:()=>Bat,DeprecatedViews:()=>W_,DesignDocuments:()=>yd,DocumentType:()=>Me,InternalTable:()=>vu,QueryBuilder:()=>$u,Replication:()=>Ole,SEPARATOR:()=>ce,SQLITE_DESIGN_DOC_ID:()=>Fn,SQS_DATASOURCE_INTERNAL:()=>ul,StaticDatabases:()=>tr,UNICODE_MAX:()=>Mn,USER_METADATA_PREFIX:()=>VR,ViewName:()=>al,WORKSPACE_DEV:()=>c1,WORKSPACE_DEV_PREFIX:()=>Ms,WORKSPACE_PREFIX:()=>ks,baseGlobalDBName:()=>Hw,checkErrorCode:()=>Dle,closePouchDB:()=>Gw,createApiKeyView:()=>Ele,createNewUserEmailView:()=>_le,createPlatformAccountEmailView:()=>Tle,createPlatformUserView:()=>vle,createUserAppView:()=>wle,createView:()=>sg,dbExists:()=>Rut,directCouchAllDbs:()=>mq,directCouchCall:()=>lne,directCouchQuery:()=>v1,directCouchUrlCall:()=>Q_,doWithDB:()=>Io,fullSearch:()=>Dut,generateAIConfigID:()=>sle,generateAgentFileID:()=>ole,generateAgentID:()=>tle,generateAgentToolSourceID:()=>ile,generateAppUserID:()=>yI,generateChatAppID:()=>rle,generateChatConversationID:()=>nle,generateDevInfoID:()=>Xce,generateGlobalUserID:()=>og,generateOAuth2LogID:()=>ele,generatePluginID:()=>Zce,generateRoleID:()=>Pq,generateRowID:()=>Dq,generateTableID:()=>Qce,generateTemplateID:()=>Jce,generateUserMetadataID:()=>zce,generateVectorDbID:()=>lle,generateWorkspaceAppID:()=>ule,generateWorkspaceFavouriteID:()=>cle,generateWorkspaceID:()=>Hce,getAllDbs:()=>ble,getAllWorkspaces:()=>Jw,getCouchInfo:()=>Us,getDB:()=>Ei,getDevWorkspaceID:()=>rI,getDevWorkspaceIDs:()=>vut,getDocParams:()=>Wu,getGlobalDBName:()=>Fd,getGlobalIDFromUserMetadataID:()=>Yce,getGlobalUserParams:()=>jd,getLiteLLMKeyID:()=>ale,getOAuth2ConfigParams:()=>mle,getPluginParams:()=>hle,getPouch:()=>sq,getPouchDB:()=>ts,getProdWorkpaceIDs:()=>Tut,getProdWorkspaceID:()=>Co,getQueryIndex:()=>fle,getRoleParams:()=>_I,getRowParams:()=>Nq,getStartEndKeyURL:()=>Yw,getTemplateParams:()=>ple,getUrlInfo:()=>T1,getUserMetadataParams:()=>dle,getUsersByWorkspaceParams:()=>bI,getWorkspaceAppParams:()=>gle,getWorkspaceFavouriteParams:()=>yle,getWorkspacesByIDs:()=>Sut,init:()=>XO,isDevWorkspace:()=>Vw,isDevWorkspaceID:()=>xl,isDocumentConflictError:()=>Nut,isGlobalUserID:()=>Kce,isProdWorkspaceID:()=>qat,isSameWorkspaceID:()=>Aut,paginatedSearch:()=>xut,pagination:()=>Lq,prefixRoleID:()=>ju,queryGlobalView:()=>Gu,queryGlobalViewRaw:()=>Uq,queryPlatformView:()=>Zw,queryView:()=>Mq,queryViewRaw:()=>Xw,removeKeyNumbering:()=>eE,searchIndexes:()=>qq});var zw={};G(zw,{WorkspaceState:()=>xq,getWorkspaceMetadata:()=>gI,invalidateWorkspaceMetadata:()=>wut});var Pl={};G(Pl,{getCacheClient:()=>Oq,getDocWritethroughClient:()=>gut,getInviteClient:()=>qd,getLockClient:()=>Cq,getOpenapiImportSpecsClient:()=>hut,getPasswordResetClient:()=>Kw,getSessionClient:()=>ig,getSocketClient:()=>mut,getUserClient:()=>Qw,getWorkspaceClient:()=>mI,getWritethroughClient:()=>Iq,init:()=>rs,shutdown:()=>$ce});var oI=U(require("ioredis"));var iI=require("dd-trace"),Wce=require("lodash");var jce;if(L.MOCK_REDIS)try{jce=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function fut(e=0){return await iI.tracer.trace("Redis.init",async t=>{if(L.MOCK_REDIS)return t.addTags({mock:!0}),new jce(bd());let r;if(L.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=zR();r=new oI.Cluster([{host:n,port:i}],m1())}else r=new oI.default(bd());return new Promise((n,i)=>{r.on("error",s=>{t.addTags({error:!0}),console.error(`failed to connect to redis (db: ${e})`,s),i(s)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${e})`)}),r.on("ready",()=>{t.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${e})`),n(r)})})})}o(fut,"init");function dut(e,t){return new Promise((r,n)=>{let i=new Set;e.on("data",s=>s.forEach(a=>i.add(a))),e.on("error",s=>n(s)),e.on("end",async()=>{try{let s=Array.from(i).map(async a=>{let u=await t.get(a);return u&&(u=JSON.parse(u)),{key:g1(a),value:u}});r(await Promise.all(s))}catch(s){n(s)}})})}o(dut,"promisifyStream");function put(e){return e.isCluster}o(put,"isCluster");var Rq=class e{static{o(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await iI.tracer.trace("RedisWrapper.init",async n=>{let i=await fut(r);return r&&!L.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return iI.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${bm}${t}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(t=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:t}),t=`${this.db}${bm}${t}`;let n;put(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:1e3}):n=this.client.scanStream({match:t+"*",count:1e3});let i=await dut(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(t){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:t}),this.client.keys(this.prefixed(t))))}async exists(t){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:t}),await this.client.exists(this.prefixed(t))))}async get(t){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:t});let n=await this.client.get(this.prefixed(t));n!=null&&n.key&&(n.key=t);try{return JSON.parse(n)}catch{return n}})}async bulkGet(t){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:t.length}),t.length===0)return{};let n=await this.client.mget(t.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,Wce.zip)(t,n).reduce((i,[s,a])=>{if(s===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${t.length} vs ${n.length}`);try{i[s]=a?JSON.parse(a):null}catch{i[s]=a}return i},{})})}async store(t,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:t,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(t),r),n&&await this.client.expire(this.prefixed(t),n)})}async bulkStore(t,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(t).length,expirySeconds:r});let i=Object.entries(t).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let a of Object.keys(i))s.expire(a,r);await s.exec()})}async getTTL(t){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:t}),await this.client.ttl(this.prefixed(t))))}async setExpiry(t,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:t,expirySeconds:r}),await this.client.expire(this.prefixed(t),r)))}async delete(t){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:t}),await this.client.del(this.prefixed(t))})}async bulkDelete(t){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:t.length}),await this.client.del(t.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async t=>{let r=await this.scan();t.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(t){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:t});let n=await this.client.incr(this.prefixed(t));if(isNaN(n))throw new Error(`Redis ${t} does not contain a number`);return n})}async deleteIfValue(t,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:t});let i=`
434
434
  if redis.call('GET', KEYS[1]) == ARGV[1] then
435
435
  redis.call('DEL', KEYS[1])
436
436
  end