@budibase/server 2.0.18 → 2.0.20

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.
Files changed (171) hide show
  1. package/builder/assets/{index.bef2492f.js → index.654c9538.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +171 -154
  4. package/coverage/coverage-final.json +2 -1
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/index.html +1 -1
  12. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  18. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/row/index.html +15 -15
  23. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +122 -116
  25. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  40. package/coverage/lcov-report/api/index.html +1 -1
  41. package/coverage/lcov-report/api/index.js.html +1 -1
  42. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  43. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  44. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/index.html +1 -1
  52. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  66. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  69. package/coverage/lcov-report/automations/actions.js.html +1 -1
  70. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  71. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  72. package/coverage/lcov-report/automations/index.html +1 -1
  73. package/coverage/lcov-report/automations/index.js.html +1 -1
  74. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/index.html +1 -1
  81. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  91. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  100. package/coverage/lcov-report/constants/index.html +1 -1
  101. package/coverage/lcov-report/constants/index.js.html +1 -1
  102. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  103. package/coverage/lcov-report/constants/screens.js.html +1 -1
  104. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  105. package/coverage/lcov-report/db/index.html +1 -1
  106. package/coverage/lcov-report/db/index.js.html +1 -1
  107. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  108. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  110. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  111. package/coverage/lcov-report/db/newid.js.html +1 -1
  112. package/coverage/lcov-report/db/utils.js.html +1 -1
  113. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  114. package/coverage/lcov-report/events/index.html +1 -1
  115. package/coverage/lcov-report/events/index.js.html +1 -1
  116. package/coverage/lcov-report/events/utils.js.html +1 -1
  117. package/coverage/lcov-report/index.html +26 -26
  118. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  119. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  120. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  121. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  122. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  123. package/coverage/lcov-report/middleware/index.html +1 -1
  124. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  125. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  126. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  127. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  128. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  129. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  130. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  131. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  132. package/coverage/lcov-report/utilities/global.js.html +1 -1
  133. package/coverage/lcov-report/utilities/index.html +24 -9
  134. package/coverage/lcov-report/utilities/index.js.html +1 -1
  135. package/coverage/lcov-report/utilities/plugins.js.html +148 -0
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  137. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +1 -1
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +1 -1
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  151. package/coverage/lcov.info +311 -278
  152. package/dist/api/controllers/application.js +4 -1
  153. package/dist/api/controllers/public/utils.js +1 -1
  154. package/dist/api/controllers/row/internalSearch.js +4 -2
  155. package/dist/api/controllers/static/index.js +3 -1
  156. package/dist/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  157. package/dist/api/controllers/table/internal.js +9 -1
  158. package/dist/api/controllers/table/utils.js +1 -1
  159. package/dist/package.json +6 -6
  160. package/dist/tsconfig.build.tsbuildinfo +1 -1
  161. package/dist/utilities/plugins.js +20 -0
  162. package/package.json +7 -7
  163. package/src/api/controllers/application.ts +5 -1
  164. package/src/api/controllers/public/utils.ts +1 -1
  165. package/src/api/controllers/row/internalSearch.js +4 -2
  166. package/src/api/controllers/static/index.ts +4 -1
  167. package/src/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  168. package/src/api/controllers/table/internal.ts +10 -2
  169. package/src/api/controllers/table/utils.ts +1 -1
  170. package/src/api/routes/tests/internalSearch.spec.js +20 -0
  171. package/src/utilities/plugins.js +21 -0
@@ -932,7 +932,7 @@ Use Save As... to download, then click back to return to this page.`)&&(location
932
932
  `),t=J("i"),i=oe(r),a=oe("?"),o=oe(`
933
933
  This action cannot be undone.`)},m(l,s){S(l,e,s),S(l,t,s),j(t,i),j(t,a),S(l,o,s)},p(l,s){s&1&&r!==(r=l[0].name+"")&&_t(i,r)},d(l){l&&C(e),l&&C(t),l&&C(o)}}}function _nt(n){let e,t,r,i,a,o;e=new Sc({props:{$$slots:{control:[gnt],default:[mnt]},$$scope:{ctx:n}}});let l={okText:"Delete Automation",onOk:n[3],title:"Confirm Deletion",$$slots:{default:[vnt]},$$scope:{ctx:n}};r=new au({props:l}),n[5](r);let s={automation:n[0]};return a=new fnt({props:s}),n[6](a),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment),i=U(),O(a.$$.fragment)},m(u,c){H(e,u,c),S(u,t,c),H(r,u,c),S(u,i,c),H(a,u,c),o=!0},p(u,[c]){const f={};c&518&&(f.$$scope={dirty:c,ctx:u}),e.$set(f);const h={};c&513&&(h.$$scope={dirty:c,ctx:u}),r.$set(h);const m={};c&1&&(m.automation=u[0]),a.$set(m)},i(u){o||(b(e.$$.fragment,u),b(r.$$.fragment,u),b(a.$$.fragment,u),o=!0)},o(u){$(e.$$.fragment,u),$(r.$$.fragment,u),$(a.$$.fragment,u),o=!1},d(u){B(e,u),u&&C(t),n[5](null),B(r,u),u&&C(i),n[6](null),B(a,u)}}}function bnt(n,e,t){let r,i;Ne(n,Or,h=>t(7,r=h)),Ne(n,si,h=>t(8,i=h));let{automation:a}=e,o,l;async function s(){try{await Or.actions.delete(a),yt.success("Automation deleted successfully"),i("../automate")}catch{yt.error("Error deleting automation")}}async function u(){try{await Or.actions.duplicate(a),yt.success("Automation has been duplicated successfully"),i(`./${r.selectedAutomation.automation._id}`)}catch{yt.error("Error duplicating automation")}}function c(h){He[h?"unshift":"push"](()=>{o=h,t(1,o)})}function f(h){He[h?"unshift":"push"](()=>{l=h,t(2,l)})}return n.$$set=h=>{"automation"in h&&t(0,a=h.automation)},[a,o,l,s,u,c,f]}class ynt extends Re{constructor(e){super(),Ve(this,e,bnt,_nt,Oe,{automation:0})}}function YR(n,e,t){const r=n.slice();return r[5]=e[t],r[7]=t,r}function $nt(n){let e,t,r;return e=new ynt({props:{automation:n[5]}}),{c(){O(e.$$.fragment),t=U()},m(i,a){H(e,i,a),S(i,t,a),r=!0},p(i,a){const o={};a&1&&(o.automation=i[5]),e.$set(o)},i(i){r||(b(e.$$.fragment,i),r=!0)},o(i){$(e.$$.fragment,i),r=!1},d(i){B(e,i),i&&C(t)}}}function KR(n){let e,t;function r(){return n[3](n[5])}return e=new k5({props:{border:n[7]>0,icon:"ShareAndroid",text:n[5].name,selected:n[5]._id===n[1],$$slots:{default:[$nt]},$$scope:{ctx:n}}}),e.$on("click",r),{c(){O(e.$$.fragment)},m(i,a){H(e,i,a),t=!0},p(i,a){n=i;const o={};a&1&&(o.text=n[5].name),a&3&&(o.selected=n[5]._id===n[1]),a&257&&(o.$$scope={dirty:a,ctx:n}),e.$set(o)},i(i){t||(b(e.$$.fragment,i),t=!0)},o(i){$(e.$$.fragment,i),t=!1},d(i){B(e,i)}}}function wnt(n){let e,t,r=n[0].automations.sort(XR),i=[];for(let o=0;o<r.length;o+=1)i[o]=KR(YR(n,r,o));const a=o=>$(i[o],1,1,()=>{i[o]=null});return{c(){e=J("div");for(let o=0;o<i.length;o+=1)i[o].c();D(e,"class","automations-list svelte-g64vb")},m(o,l){S(o,e,l);for(let s=0;s<i.length;s+=1)i[s].m(e,null);t=!0},p(o,[l]){if(l&7){r=o[0].automations.sort(XR);let s;for(s=0;s<r.length;s+=1){const u=YR(o,r,s);i[s]?(i[s].p(u,l),b(i[s],1)):(i[s]=KR(u),i[s].c(),b(i[s],1),i[s].m(e,null))}for(Ae(),s=r.length;s<i.length;s+=1)a(s);Me()}},i(o){if(!t){for(let l=0;l<r.length;l+=1)b(i[l]);t=!0}},o(o){i=i.filter(Boolean);for(let l=0;l<i.length;l+=1)$(i[l]);t=!1},d(o){o&&C(e),Dn(i,o)}}}const XR=n=>n.name;function knt(n,e,t){let r,i,a;Ne(n,si,s=>t(4,i=s)),Ne(n,Or,s=>t(0,a=s)),ar(async()=>{try{await Or.actions.fetch()}catch{yt.error("Error getting automations list")}});function o(s){Or.actions.select(s),i(`./${s._id}`)}const l=s=>o(s);return n.$$.update=()=>{var s,u;n.$$.dirty&1&&t(1,r=(u=(s=a.selectedAutomation)==null?void 0:s.automation)==null?void 0:u._id)},[a,r,o,l]}class znt extends Re{constructor(e){super(),Ve(this,e,knt,wnt,Oe,{})}}function JR(n,e,t){const r=n.slice();return r[17]=e[t][0],r[18]=e[t][1],r}function Ant(n){let e;return{c(){e=oe(`Please name your automation, then select a trigger. Every automation must
934
934
  start with a trigger.`)},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function Mnt(n){let e;return{c(){e=oe("Triggers")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function Cnt(n){let e=n[18].name+"",t;return{c(){t=oe(e)},m(r,i){S(r,t,i)},p(r,i){i&8&&e!==(e=r[18].name+"")&&_t(t,e)},d(r){r&&C(t)}}}function ZR(n){let e,t,r,i,a,o,l,s,u,c;r=new dn({props:{name:n[18].icon}}),o=new xt({props:{size:"S",$$slots:{default:[Cnt]},$$scope:{ctx:n}}});function f(){return n[13](n[18])}return{c(){e=J("div"),t=J("div"),O(r.$$.fragment),i=U(),a=J("span"),O(o.$$.fragment),l=U(),D(a,"class","icon-spacing svelte-d3iboa"),D(t,"class","item-body svelte-d3iboa"),D(e,"class","item svelte-d3iboa"),De(e,"selected",n[2]===n[18].name)},m(h,m){S(h,e,m),j(e,t),H(r,t,null),j(t,i),j(t,a),H(o,a,null),j(e,l),s=!0,u||(c=At(e,"click",f),u=!0)},p(h,m){n=h;const _={};m&8&&(_.name=n[18].icon),r.$set(_);const y={};m&2097160&&(y.$$scope={dirty:m,ctx:n}),o.$set(y),m&12&&De(e,"selected",n[2]===n[18].name)},i(h){s||(b(r.$$.fragment,h),b(o.$$.fragment,h),s=!0)},o(h){$(r.$$.fragment,h),$(o.$$.fragment,h),s=!1},d(h){h&&C(e),B(r),B(o),u=!1,c()}}}function Snt(n){let e,t,r,i;e=new xt({props:{size:"S",$$slots:{default:[Mnt]},$$scope:{ctx:n}}});let a=n[3],o=[];for(let s=0;s<a.length;s+=1)o[s]=ZR(JR(n,a,s));const l=s=>$(o[s],1,1,()=>{o[s]=null});return{c(){O(e.$$.fragment),t=U(),r=J("div");for(let s=0;s<o.length;s+=1)o[s].c();D(r,"class","item-list svelte-d3iboa")},m(s,u){H(e,s,u),S(s,t,u),S(s,r,u);for(let c=0;c<o.length;c+=1)o[c].m(r,null);i=!0},p(s,u){const c={};if(u&2097152&&(c.$$scope={dirty:u,ctx:s}),e.$set(c),u&76){a=s[3];let f;for(f=0;f<a.length;f+=1){const h=JR(s,a,f);o[f]?(o[f].p(h,u),b(o[f],1)):(o[f]=ZR(h),o[f].c(),b(o[f],1),o[f].m(r,null))}for(Ae(),f=a.length;f<o.length;f+=1)l(f);Me()}},i(s){if(!i){b(e.$$.fragment,s);for(let u=0;u<a.length;u+=1)b(o[u]);i=!0}},o(s){$(e.$$.fragment,s),o=o.filter(Boolean);for(let u=0;u<o.length;u+=1)$(o[u]);i=!1},d(s){B(e,s),s&&C(t),s&&C(r),Dn(o,s)}}}function Lnt(n){let e,t,r,i,a,o,l,s,u,c;e=new h_({props:{header:"You must publish your app to activate your automations.",message:"To test your automation before publishing, you can use the 'Run Test' functionality on the next screen."}}),r=new xt({props:{size:"XS",$$slots:{default:[Ant]},$$scope:{ctx:n}}});function f(_){n[10](_)}function h(_){n[11](_)}let m={label:"Name"};return n[0]!==void 0&&(m.value=n[0]),n[4]!==void 0&&(m.error=n[4]),a=new En({props:m}),He.push(()=>rt(a,"value",f)),He.push(()=>rt(a,"error",h)),a.$on("change",n[12]),u=new Rt({props:{noPadding:!0,$$slots:{default:[Snt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment),i=U(),O(a.$$.fragment),s=U(),O(u.$$.fragment)},m(_,y){H(e,_,y),S(_,t,y),H(r,_,y),S(_,i,y),H(a,_,y),S(_,s,y),H(u,_,y),c=!0},p(_,y){const w={};y&2097152&&(w.$$scope={dirty:y,ctx:_}),r.$set(w);const A={};!o&&y&1&&(o=!0,A.value=_[0],it(()=>o=!1)),!l&&y&16&&(l=!0,A.error=_[4],it(()=>l=!1)),a.$set(A);const E={};y&2097164&&(E.$$scope={dirty:y,ctx:_}),u.$set(E)},i(_){c||(b(e.$$.fragment,_),b(r.$$.fragment,_),b(a.$$.fragment,_),b(u.$$.fragment,_),c=!0)},o(_){$(e.$$.fragment,_),$(r.$$.fragment,_),$(a.$$.fragment,_),$(u.$$.fragment,_),c=!1},d(_){B(e,_),_&&C(t),B(r,_),_&&C(i),B(a,_),_&&C(s),B(u,_)}}}function Ent(n){let e,t;return e=new _r({props:{title:"Create Automation",confirmText:"Save",size:"M",onConfirm:n[5],disabled:!n[2]||!n[0],$$slots:{default:[Lnt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,[i]){const a={};i&5&&(a.disabled=!r[2]||!r[0]),i&2097183&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function Tnt(n,e,t){let r,i,a,o,l,s;Ne(n,Or,I=>t(8,o=I)),Ne(n,si,I=>t(16,l=I)),Ne(n,Fd,I=>t(9,s=I));let u,c,f=!1,h,{webhookModal:m}=e;async function _(){var I;try{await Or.actions.create({name:u,instanceId:r});const P=o.selectedAutomation.constructBlock("TRIGGER",h.stepId,h);Or.actions.addBlockToAutomation(P),h.stepId===c6.WEBHOOK&&m.show,await Or.actions.save((I=o.selectedAutomation)==null?void 0:I.automation),yt.success(`Automation ${u} created`),l(`./${o.selectedAutomation.automation._id}`)}catch{yt.error("Error creating automation")}}const y=I=>{h=I,t(2,c=I.name)};function w(I){u=I,t(0,u)}function A(I){i=I,t(4,i),t(1,f),t(0,u)}const E=()=>t(1,f=!0),T=I=>y(I);return n.$$set=I=>{"webhookModal"in I&&t(7,m=I.webhookModal)},n.$$.update=()=>{n.$$.dirty&512&&(r=s._id),n.$$.dirty&3&&t(4,i=f&&!u?"Please specify a name for the automation.":null),n.$$.dirty&256&&t(3,a=Object.entries(o.blockDefinitions.TRIGGER))},[u,f,c,a,i,_,y,m,o,s,w,A,E,T]}class BX extends Re{constructor(e){super(),Ve(this,e,Tnt,Ent,Oe,{webhookModal:7})}}function Dnt(n){let e,t;return e=new BX({props:{webhookModal:n[1]}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&2&&(a.webhookModal=r[1]),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function Hnt(n){let e,t,r,i;e=new znt({});let a={$$slots:{default:[Dnt]},$$scope:{ctx:n}};return r=new ir({props:a}),n[2](r),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment)},m(o,l){H(e,o,l),S(o,t,l),H(r,o,l),i=!0},p(o,l){const s={};l&10&&(s.$$scope={dirty:l,ctx:o}),r.$set(s)},i(o){i||(b(e.$$.fragment,o),b(r.$$.fragment,o),i=!0)},o(o){$(e.$$.fragment,o),$(r.$$.fragment,o),i=!1},d(o){B(e,o),o&&C(t),n[2](null),B(r,o)}}}function Bnt(n){let e,t;return e=new x1({props:{title:"Automations",$$slots:{default:[Hnt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&11&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function Ont(n){let e,t,r,i,a,o;return t=new K2({props:{selected:"Automations",$$slots:{default:[Bnt]},$$scope:{ctx:n}}}),a=new dn({props:{hoverable:!0,name:"AddCircle"}}),a.$on("click",function(){An(n[0].show)&&n[0].show.apply(this,arguments)}),{c(){e=J("div"),O(t.$$.fragment),r=U(),i=J("div"),O(a.$$.fragment),D(i,"class","add-button svelte-mcmub4"),D(e,"class","title svelte-mcmub4")},m(l,s){S(l,e,s),H(t,e,null),j(e,r),j(e,i),H(a,i,null),o=!0},p(l,[s]){n=l;const u={};s&11&&(u.$$scope={dirty:s,ctx:n}),t.$set(u)},i(l){o||(b(t.$$.fragment,l),b(a.$$.fragment,l),o=!0)},o(l){$(t.$$.fragment,l),$(a.$$.fragment,l),o=!1},d(l){l&&C(e),B(t),B(a)}}}function Int(n,e,t){let{modal:r}=e,{webhookModal:i}=e;function a(o){He[o?"unshift":"push"](()=>{r=o,t(0,r)})}return n.$$set=o=>{"modal"in o&&t(0,r=o.modal),"webhookModal"in o&&t(1,i=o.webhookModal)},[r,i,a]}class Pnt extends Re{constructor(e){super(),Ve(this,e,Int,Ont,Oe,{modal:0,webhookModal:1})}}function QR(n,e,t){const r=n.slice();return r[8]=e[t],r[10]=t,r}function eN(n){var u;let e,t,r,i,a;function o(c){n[6](c)}let l={showTestStatus:!0,block:n[8],isTrigger:n[10]===0,testResult:(u=n[2])==null?void 0:u[n[10]]};n[3]!==void 0&&(l.showParameters=n[3]),e=new HX({props:l}),He.push(()=>rt(e,"showParameters",o));let s=n[3]&&n[3][n[8].id]&&tN(n);return{c(){O(e.$$.fragment),r=U(),s&&s.c(),i=$t()},m(c,f){H(e,c,f),S(c,r,f),s&&s.m(c,f),S(c,i,f),a=!0},p(c,f){var m;const h={};f&2&&(h.block=c[8]),f&4&&(h.testResult=(m=c[2])==null?void 0:m[c[10]]),!t&&f&8&&(t=!0,h.showParameters=c[3],it(()=>t=!1)),e.$set(h),c[3]&&c[3][c[8].id]?s?(s.p(c,f),f&10&&b(s,1)):(s=tN(c),s.c(),b(s,1),s.m(i.parentNode,i)):s&&(Ae(),$(s,1,1,()=>{s=null}),Me())},i(c){a||(b(e.$$.fragment,c),b(s),a=!0)},o(c){$(e.$$.fragment,c),$(s),a=!1},d(c){B(e,c),c&&C(r),s&&s.d(c),c&&C(i)}}}function tN(n){var s,u;let e,t,r,i,a,o;e=new hi({props:{noMargin:!0}});let l=((u=(s=n[2])==null?void 0:s[n[10]])==null?void 0:u.outputs.iterations)&&nN(n);return a=new K2({props:{noHorizPadding:!0,selected:"Input",$$slots:{default:[Fnt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment),t=U(),l&&l.c(),r=U(),i=J("div"),O(a.$$.fragment),D(i,"class","tabs svelte-1iblsnb")},m(c,f){H(e,c,f),S(c,t,f),l&&l.m(c,f),S(c,r,f),S(c,i,f),H(a,i,null),o=!0},p(c,f){var m,_;(_=(m=c[2])==null?void 0:m[c[10]])!=null&&_.outputs.iterations?l?(l.p(c,f),f&4&&b(l,1)):(l=nN(c),l.c(),b(l,1),l.m(r.parentNode,r)):l&&(Ae(),$(l,1,1,()=>{l=null}),Me());const h={};f&2052&&(h.$$scope={dirty:f,ctx:c}),a.$set(h)},i(c){o||(b(e.$$.fragment,c),b(l),b(a.$$.fragment,c),o=!0)},o(c){$(e.$$.fragment,c),$(l),$(a.$$.fragment,c),o=!1},d(c){B(e,c),c&&C(t),l&&l.d(c),c&&C(r),c&&C(i),B(a)}}}function nN(n){let e,t,r,i,a,o;return t=new dn({props:{name:"Reuse"}}),a=new cn({props:{$$slots:{default:[Vnt]},$$scope:{ctx:n}}}),{c(){e=J("div"),O(t.$$.fragment),r=U(),i=J("div"),O(a.$$.fragment),yn(i,"margin-left","10px"),yn(e,"display","flex"),yn(e,"padding","10px 10px 0px 12px")},m(l,s){S(l,e,s),H(t,e,null),j(e,r),j(e,i),H(a,i,null),o=!0},p(l,s){const u={};s&2052&&(u.$$scope={dirty:s,ctx:l}),a.$set(u)},i(l){o||(b(t.$$.fragment,l),b(a.$$.fragment,l),o=!0)},o(l){$(t.$$.fragment,l),$(a.$$.fragment,l),o=!1},d(l){l&&C(e),B(t),B(a)}}}function Vnt(n){var a,o;let e,t=((o=(a=n[2])==null?void 0:a[n[10]])==null?void 0:o.outputs.iterations)+"",r,i;return{c(){e=oe("This loop ran "),r=oe(t),i=oe(" times.")},m(l,s){S(l,e,s),S(l,r,s),S(l,i,s)},p(l,s){var u,c;s&4&&t!==(t=((c=(u=l[2])==null?void 0:u[l[10]])==null?void 0:c.outputs.iterations)+"")&&_t(r,t)},d(l){l&&C(e),l&&C(r),l&&C(i)}}}function Rnt(n){var r,i;let e,t;return e=new F3({props:{minHeight:"80px",disabled:!0,value:Kv((i=(r=n[2])==null?void 0:r[n[10]])==null?void 0:i.inputs,"No input")}}),{c(){O(e.$$.fragment)},m(a,o){H(e,a,o),t=!0},p(a,o){var s,u;const l={};o&4&&(l.value=Kv((u=(s=a[2])==null?void 0:s[a[10]])==null?void 0:u.inputs,"No input")),e.$set(l)},i(a){t||(b(e.$$.fragment,a),t=!0)},o(a){$(e.$$.fragment,a),t=!1},d(a){B(e,a)}}}function Nnt(n){var r,i;let e,t;return e=new F3({props:{minHeight:"100px",disabled:!0,value:Kv((i=(r=n[2])==null?void 0:r[n[10]])==null?void 0:i.outputs,"No output")}}),{c(){O(e.$$.fragment)},m(a,o){H(e,a,o),t=!0},p(a,o){var s,u;const l={};o&4&&(l.value=Kv((u=(s=a[2])==null?void 0:s[a[10]])==null?void 0:u.outputs,"No output")),e.$set(l)},i(a){t||(b(e.$$.fragment,a),t=!0)},o(a){$(e.$$.fragment,a),t=!1},d(a){B(e,a)}}}function Fnt(n){let e,t,r,i;return e=new x1({props:{title:"Input",$$slots:{default:[Rnt]},$$scope:{ctx:n}}}),r=new x1({props:{title:"Output",$$slots:{default:[Nnt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment)},m(a,o){H(e,a,o),S(a,t,o),H(r,a,o),i=!0},p(a,o){const l={};o&2052&&(l.$$scope={dirty:o,ctx:a}),e.$set(l);const s={};o&2052&&(s.$$scope={dirty:o,ctx:a}),r.$set(s)},i(a){i||(b(e.$$.fragment,a),b(r.$$.fragment,a),i=!0)},o(a){$(e.$$.fragment,a),$(r.$$.fragment,a),i=!1},d(a){B(e,a),a&&C(t),B(r,a)}}}function rN(n){let e;return{c(){e=J("div"),D(e,"class","separator svelte-1iblsnb")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function iN(n){let e,t,r,i,a,o=n[8].stepId!==V3.LOOP&&eN(n),l=n[1].length-1!==n[10]&&rN();return{c(){e=J("div"),o&&o.c(),r=U(),l&&l.c(),i=$t(),D(e,"class","block svelte-1iblsnb"),D(e,"style",t=n[0]?`width: ${n[0]}`:"")},m(s,u){S(s,e,u),o&&o.m(e,null),S(s,r,u),l&&l.m(s,u),S(s,i,u),a=!0},p(s,u){s[8].stepId!==V3.LOOP?o?(o.p(s,u),u&2&&b(o,1)):(o=eN(s),o.c(),b(o,1),o.m(e,null)):o&&(Ae(),$(o,1,1,()=>{o=null}),Me()),(!a||u&1&&t!==(t=s[0]?`width: ${s[0]}`:""))&&D(e,"style",t),s[1].length-1!==s[10]?l||(l=rN(),l.c(),l.m(i.parentNode,i)):l&&(l.d(1),l=null)},i(s){a||(b(o),a=!0)},o(s){$(o),a=!1},d(s){s&&C(e),o&&o.d(),s&&C(r),l&&l.d(s),s&&C(i)}}}function xnt(n){let e,t,r=n[1],i=[];for(let o=0;o<r.length;o+=1)i[o]=iN(QR(n,r,o));const a=o=>$(i[o],1,1,()=>{i[o]=null});return{c(){e=J("div");for(let o=0;o<i.length;o+=1)i[o].c();D(e,"class","container svelte-1iblsnb")},m(o,l){S(o,e,l);for(let s=0;s<i.length;s+=1)i[s].m(e,null);t=!0},p(o,[l]){if(l&15){r=o[1];let s;for(s=0;s<r.length;s+=1){const u=QR(o,r,s);i[s]?(i[s].p(u,l),b(i[s],1)):(i[s]=iN(u),i[s].c(),b(i[s],1),i[s].m(e,null))}for(Ae(),s=r.length;s<i.length;s+=1)a(s);Me()}},i(o){if(!t){for(let l=0;l<r.length;l+=1)b(i[l]);t=!0}},o(o){i=i.filter(Boolean);for(let l=0;l<i.length;l+=1)$(i[l]);t=!1},d(o){o&&C(e),Dn(i,o)}}}function Kv(n,e){return n?JSON.stringify(n,null,2):e}function jnt(n,e,t){let r,{automation:i}=e,{testResults:a}=e,{width:o="400px"}=e,l,s;function u(f){return f==null?void 0:f.steps.filter(h=>h.stepId!==V3.LOOP||[])}function c(f){l=f,t(3,l)}return n.$$set=f=>{"automation"in f&&t(4,i=f.automation),"testResults"in f&&t(5,a=f.testResults),"width"in f&&t(0,o=f.width)},n.$$.update=()=>{if(n.$$.dirty&32&&t(2,r=u(a)),n.$$.dirty&22){if(t(1,s=[]),i)i.definition.trigger&&s.push(i.definition.trigger),t(1,s=s.concat(i.definition.steps||[]).filter(f=>f.stepId!==V3.LOOP));else if(r){t(1,s=r||[]);let f=0;for(let h of s)h.id=f++}}},[o,s,r,l,i,a,c]}class OX extends Re{constructor(e){super(),Ve(this,e,jnt,xnt,Oe,{automation:4,testResults:5,width:0})}}function Unt(n){let e,t,r,i,a,o,l,s,u,c,f,h,m;return r=new dn({props:{name:"MultipleCheck"}}),s=new dn({props:{hoverable:!0,name:"Close"}}),s.$on("click",n[4]),c=new hi({}),h=new OX({props:{automation:n[0],testResults:n[2]}}),{c(){e=J("div"),t=J("div"),O(r.$$.fragment),i=U(),a=J("div"),a.textContent="Test Details",o=U(),l=J("div"),O(s.$$.fragment),u=U(),O(c.$$.fragment),f=U(),O(h.$$.fragment),yn(a,"padding-left","var(--spacing-l)"),D(t,"class","title-text svelte-nwwj95"),yn(l,"padding-right","var(--spacing-xl)"),D(e,"class","title svelte-nwwj95")},m(_,y){S(_,e,y),j(e,t),H(r,t,null),j(t,i),j(t,a),j(e,o),j(e,l),H(s,l,null),S(_,u,y),H(c,_,y),S(_,f,y),H(h,_,y),m=!0},p(_,[y]){const w={};y&1&&(w.automation=_[0]),y&4&&(w.testResults=_[2]),h.$set(w)},i(_){m||(b(r.$$.fragment,_),b(s.$$.fragment,_),b(c.$$.fragment,_),b(h.$$.fragment,_),m=!0)},o(_){$(r.$$.fragment,_),$(s.$$.fragment,_),$(c.$$.fragment,_),$(h.$$.fragment,_),m=!1},d(_){_&&C(e),B(r),B(s),_&&C(u),B(c,_),_&&C(f),B(h,_)}}}function qnt(n,e,t){let r;Ne(n,Or,s=>t(1,r=s));let{automation:i}=e,a,o;const l=async()=>{Y1(Or,r.showTestPanel=!1,r)};return n.$$set=s=>{"automation"in s&&t(0,i=s.automation)},n.$$.update=()=>{var s;n.$$.dirty&11&&(t(3,a=[]),i?(i.definition.trigger&&a.push(i.definition.trigger),t(3,a=a.concat(i.definition.steps||[]).filter(u=>u.stepId!==V3.LOOP))):r.selectedAutomation&&t(0,i=r.selectedAutomation)),n.$$.dirty&2&&t(2,o=(s=r.selectedAutomation)==null?void 0:s.testResults)},[i,r,o,a,l]}class Wnt extends Re{constructor(e){super(),Ve(this,e,qnt,Unt,Oe,{automation:0})}}function Gnt(n){let e,t,r,i;return r=new Rt({props:{gap:"S",justifyItems:"center",$$slots:{default:[Znt]},$$scope:{ctx:n}}}),{c(){e=J("div"),t=J("div"),O(r.$$.fragment),D(t,"class","main svelte-374m3f"),D(e,"class","centered svelte-374m3f")},m(a,o){S(a,e,o),j(e,t),H(r,t,null),i=!0},p(a,o){const l={};o&258&&(l.$$scope={dirty:o,ctx:a}),r.$set(l)},i(a){i||(b(r.$$.fragment,a),i=!0)},o(a){$(r.$$.fragment,a),i=!1},d(a){a&&C(e),B(r)}}}function Ynt(n){let e;const t=n[4].default,r=Xn(t,n,n[8],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&256)&&Zn(r,t,i,i[8],e?Jn(t,i[8],a,null):Qn(i[8]),null)},i(i){e||(b(r,i),e=!0)},o(i){$(r,i),e=!1},d(i){r&&r.d(i)}}}function Knt(n){let e;return{c(){e=oe("You have no automations")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function Xnt(n){let e;return{c(){e=oe("Let's fix that. Call the bots!")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function Jnt(n){let e;return{c(){e=oe("Create automation")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function Znt(n){let e,t,r,i,a,o,l,s,u;return i=new Rn({props:{size:"M",$$slots:{default:[Knt]},$$scope:{ctx:n}}}),o=new xt({props:{size:"M",$$slots:{default:[Xnt]},$$scope:{ctx:n}}}),s=new $n({props:{size:"M",cta:!0,$$slots:{default:[Jnt]},$$scope:{ctx:n}}}),s.$on("click",n[5]),{c(){e=ut("svg"),t=ut("use"),r=U(),O(i.$$.fragment),a=U(),O(o.$$.fragment),l=U(),O(s.$$.fragment),Wr(t,"xlink:href","#spectrum-icon-18-WorkflowAdd"),D(e,"width","60px"),D(e,"height","60px"),D(e,"class","spectrum-Icon"),D(e,"focusable","false")},m(c,f){S(c,e,f),j(e,t),S(c,r,f),H(i,c,f),S(c,a,f),H(o,c,f),S(c,l,f),H(s,c,f),u=!0},p(c,f){const h={};f&256&&(h.$$scope={dirty:f,ctx:c}),i.$set(h);const m={};f&256&&(m.$$scope={dirty:f,ctx:c}),o.$set(m);const _={};f&256&&(_.$$scope={dirty:f,ctx:c}),s.$set(_)},i(c){u||(b(i.$$.fragment,c),b(o.$$.fragment,c),b(s.$$.fragment,c),u=!0)},o(c){$(i.$$.fragment,c),$(o.$$.fragment,c),$(s.$$.fragment,c),u=!1},d(c){c&&C(e),c&&C(r),B(i,c),c&&C(a),B(o,c),c&&C(l),B(s,c)}}}function aN(n){let e,t,r;return t=new Wnt({props:{automation:n[3]}}),{c(){e=J("div"),O(t.$$.fragment),D(e,"class","setup svelte-374m3f")},m(i,a){S(i,e,a),H(t,e,null),r=!0},p(i,a){const o={};a&8&&(o.automation=i[3]),t.$set(o)},i(i){r||(b(t.$$.fragment,i),r=!0)},o(i){$(t.$$.fragment,i),r=!1},d(i){i&&C(e),B(t)}}}function Qnt(n){let e,t;return e=new BX({props:{webhookModal:n[2]}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4&&(a.webhookModal=r[2]),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function ert(n){let e,t;return e=new Jz({}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function trt(n){let e,t,r,i,a,o,l,s,u,c,f,h,m;r=new Pnt({props:{modal:n[1],webhookModal:n[2]}});const _=[Ynt,Gnt],y=[];function w(I,P){return I[3]?0:1}o=w(n),l=y[o]=_[o](n);let A=n[0].showTestPanel&&aN(n),E={$$slots:{default:[Qnt]},$$scope:{ctx:n}};c=new ir({props:E}),n[6](c);let T={width:"30%",$$slots:{default:[ert]},$$scope:{ctx:n}};return h=new ir({props:T}),n[7](h),{c(){e=J("div"),t=J("div"),O(r.$$.fragment),i=U(),a=J("div"),l.c(),s=U(),A&&A.c(),u=U(),O(c.$$.fragment),f=U(),O(h.$$.fragment),D(t,"class","nav svelte-374m3f"),D(a,"class","content svelte-374m3f"),D(e,"class","root svelte-374m3f")},m(I,P){S(I,e,P),j(e,t),H(r,t,null),j(e,i),j(e,a),y[o].m(a,null),j(e,s),A&&A.m(e,null),j(e,u),H(c,e,null),j(e,f),H(h,e,null),m=!0},p(I,[P]){const F={};P&2&&(F.modal=I[1]),P&4&&(F.webhookModal=I[2]),r.$set(F);let x=o;o=w(I),o===x?y[o].p(I,P):(Ae(),$(y[x],1,1,()=>{y[x]=null}),Me(),l=y[o],l?l.p(I,P):(l=y[o]=_[o](I),l.c()),b(l,1),l.m(a,null)),I[0].showTestPanel?A?(A.p(I,P),P&1&&b(A,1)):(A=aN(I),A.c(),b(A,1),A.m(e,u)):A&&(Ae(),$(A,1,1,()=>{A=null}),Me());const G={};P&260&&(G.$$scope={dirty:P,ctx:I}),c.$set(G);const W={};P&256&&(W.$$scope={dirty:P,ctx:I}),h.$set(W)},i(I){m||(b(r.$$.fragment,I),b(l),b(A),b(c.$$.fragment,I),b(h.$$.fragment,I),m=!0)},o(I){$(r.$$.fragment,I),$(l),$(A),$(c.$$.fragment,I),$(h.$$.fragment,I),m=!1},d(I){I&&C(e),B(r),y[o].d(),A&&A.d(),n[6](null),B(c),n[7](null),B(h)}}}function nrt(n,e,t){let r,i;Ne(n,Or,h=>t(0,i=h));let{$$slots:a={},$$scope:o}=e,l,s;ar(()=>{Y1(Or,i.showTestPanel=!1,i)});const u=()=>l.show();function c(h){He[h?"unshift":"push"](()=>{l=h,t(1,l)})}function f(h){He[h?"unshift":"push"](()=>{s=h,t(2,s)})}return n.$$set=h=>{"$$scope"in h&&t(8,o=h.$$scope)},n.$$.update=()=>{var h;n.$$.dirty&1&&t(3,r=((h=i.selectedAutomation)==null?void 0:h.automation)||i.automations[0])},[i,l,s,r,a,u,c,f,o]}class rrt extends Re{constructor(e){super(),Ve(this,e,nrt,trt,Oe,{})}}function irt(n){let e,t,r,i,a,o,l;function s(c){n[4](c)}let u={};return n[2]!==void 0&&(u.value=n[2]),a=new En({props:u}),He.push(()=>rt(a,"value",s)),{c(){e=J("span"),e.textContent=`The changes you have made will be deleted and the application reverted
935
- back to its production state.`,t=U(),r=J("span"),r.textContent="Please enter your app name to continue.",i=U(),O(a.$$.fragment)},m(c,f){S(c,e,f),S(c,t,f),S(c,r,f),S(c,i,f),H(a,c,f),l=!0},p(c,f){const h={};!o&&f&4&&(o=!0,h.value=c[2],it(()=>o=!1)),a.$set(h)},i(c){l||(b(a.$$.fragment,c),l=!0)},o(c){$(a.$$.fragment,c),l=!1},d(c){c&&C(e),c&&C(t),c&&C(r),c&&C(i),B(a,c)}}}function art(n){let e,t;return e=new _r({props:{title:"Revert Changes",confirmText:"Revert",onConfirm:n[3],disabled:n[2]!==n[0].name,$$slots:{default:[irt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&5&&(a.disabled=r[2]!==r[0].name),i&132&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function ort(n){let e,t,r,i;e=new dn({props:{name:"Revert",hoverable:!0,tooltip:"Revert changes",dataCy:"revert-application-topnav"}}),e.$on("click",function(){An(n[1].show)&&n[1].show.apply(this,arguments)});let a={$$slots:{default:[art]},$$scope:{ctx:n}};return r=new ir({props:a}),n[5](r),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment)},m(o,l){H(e,o,l),S(o,t,l),H(r,o,l),i=!0},p(o,[l]){n=o;const s={};l&133&&(s.$$scope={dirty:l,ctx:n}),r.$set(s)},i(o){i||(b(e.$$.fragment,o),b(r.$$.fragment,o),i=!0)},o(o){$(e.$$.fragment,o),$(r.$$.fragment,o),i=!1},d(o){B(e,o),o&&C(t),n[5](null),B(r,o)}}}function lrt(n,e,t){let r,i;Ne(n,nn,c=>t(0,i=c));let a,o;const l=async()=>{try{await tn.revertAppChanges(r);const c=await tn.fetchAppPackage(r);await nn.actions.initialise(c),yt.info("Changes reverted successfully")}catch(c){yt.error(`Error reverting changes: ${c}`)}};function s(c){o=c,t(2,o)}function u(c){He[c?"unshift":"push"](()=>{a=c,t(1,a)})}return n.$$.update=()=>{n.$$.dirty&1&&(r=i.appId)},[i,a,o,l,s,u]}class srt extends Re{constructor(e){super(),Ve(this,e,lrt,ort,Oe,{})}}const urt="@budibase/client",crt="2.0.17",frt="MPL-2.0",prt="dist/budibase-client.js",drt="dist/budibase-client.js",hrt="module",mrt="src/index.js",grt={".":{import:"./dist/budibase-client.js",require:"./dist/budibase-client.js"},"./package.json":"./package.json","./manifest.json":"./manifest.json"},vrt={build:"rollup -c","dev:builder":"rollup -cw"},_rt={"@budibase/bbui":"^2.0.17","@budibase/frontend-core":"^2.0.17","@budibase/string-templates":"^2.0.17","@spectrum-css/button":"^3.0.3","@spectrum-css/card":"^3.0.3","@spectrum-css/divider":"^1.0.3","@spectrum-css/link":"^3.1.3","@spectrum-css/page":"^3.0.1","@spectrum-css/tag":"^3.1.4","@spectrum-css/typography":"^3.0.2","@spectrum-css/vars":"^3.0.1",apexcharts:"^3.22.1",dayjs:"^1.10.5",downloadjs:"1.4.7",leaflet:"^1.7.1",regexparam:"^1.3.0","sanitize-html":"^2.7.0",screenfull:"^6.0.1",shortid:"^2.2.15","socket.io-client":"^4.5.1",svelte:"^3.49.0","svelte-apexcharts":"^1.0.2","svelte-flatpickr":"^3.1.0","svelte-spa-router":"^3.0.5"},brt={"@rollup/plugin-alias":"^3.1.5","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1",postcss:"^8.2.10",rollup:"^2.44.0","rollup-plugin-json":"^4.0.0","rollup-plugin-polyfill-node":"^0.8.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-svelte":"^7.1.0","rollup-plugin-svg":"^2.0.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.4"},yrt="d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc",Ed={name:urt,version:crt,license:frt,module:prt,main:drt,type:hrt,svelte:mrt,exports:grt,scripts:vrt,dependencies:_rt,devDependencies:brt,gitHead:yrt};function oN(n){let e,t;return e=new x3({props:{hoverable:!0,notice:!0,$$slots:{default:[$rt]},$$scope:{ctx:n}}}),e.$on("click",function(){An(n[2].show)&&n[2].show.apply(this,arguments)}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){n=r;const a={};i&4096&&(a.$$scope={dirty:i,ctx:n}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function $rt(n){let e;return{c(){e=oe("Update available")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function wrt(n){let e,t;return e=new xt({props:{size:"S",$$slots:{default:[zrt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4098&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function krt(n){let e,t;return e=new xt({props:{size:"S",$$slots:{default:[Art]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4098&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function zrt(n){let e,t,r=n[1].version+"",i,a;return{c(){e=oe("This app is currently using version "),t=J("b"),i=oe(r),a=oe(` which is the
935
+ back to its production state.`,t=U(),r=J("span"),r.textContent="Please enter your app name to continue.",i=U(),O(a.$$.fragment)},m(c,f){S(c,e,f),S(c,t,f),S(c,r,f),S(c,i,f),H(a,c,f),l=!0},p(c,f){const h={};!o&&f&4&&(o=!0,h.value=c[2],it(()=>o=!1)),a.$set(h)},i(c){l||(b(a.$$.fragment,c),l=!0)},o(c){$(a.$$.fragment,c),l=!1},d(c){c&&C(e),c&&C(t),c&&C(r),c&&C(i),B(a,c)}}}function art(n){let e,t;return e=new _r({props:{title:"Revert Changes",confirmText:"Revert",onConfirm:n[3],disabled:n[2]!==n[0].name,$$slots:{default:[irt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&5&&(a.disabled=r[2]!==r[0].name),i&132&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function ort(n){let e,t,r,i;e=new dn({props:{name:"Revert",hoverable:!0,tooltip:"Revert changes",dataCy:"revert-application-topnav"}}),e.$on("click",function(){An(n[1].show)&&n[1].show.apply(this,arguments)});let a={$$slots:{default:[art]},$$scope:{ctx:n}};return r=new ir({props:a}),n[5](r),{c(){O(e.$$.fragment),t=U(),O(r.$$.fragment)},m(o,l){H(e,o,l),S(o,t,l),H(r,o,l),i=!0},p(o,[l]){n=o;const s={};l&133&&(s.$$scope={dirty:l,ctx:n}),r.$set(s)},i(o){i||(b(e.$$.fragment,o),b(r.$$.fragment,o),i=!0)},o(o){$(e.$$.fragment,o),$(r.$$.fragment,o),i=!1},d(o){B(e,o),o&&C(t),n[5](null),B(r,o)}}}function lrt(n,e,t){let r,i;Ne(n,nn,c=>t(0,i=c));let a,o;const l=async()=>{try{await tn.revertAppChanges(r);const c=await tn.fetchAppPackage(r);await nn.actions.initialise(c),yt.info("Changes reverted successfully")}catch(c){yt.error(`Error reverting changes: ${c}`)}};function s(c){o=c,t(2,o)}function u(c){He[c?"unshift":"push"](()=>{a=c,t(1,a)})}return n.$$.update=()=>{n.$$.dirty&1&&(r=i.appId)},[i,a,o,l,s,u]}class srt extends Re{constructor(e){super(),Ve(this,e,lrt,ort,Oe,{})}}const urt="@budibase/client",crt="2.0.19",frt="MPL-2.0",prt="dist/budibase-client.js",drt="dist/budibase-client.js",hrt="module",mrt="src/index.js",grt={".":{import:"./dist/budibase-client.js",require:"./dist/budibase-client.js"},"./package.json":"./package.json","./manifest.json":"./manifest.json"},vrt={build:"rollup -c","dev:builder":"rollup -cw"},_rt={"@budibase/bbui":"^2.0.19","@budibase/frontend-core":"^2.0.19","@budibase/string-templates":"^2.0.19","@spectrum-css/button":"^3.0.3","@spectrum-css/card":"^3.0.3","@spectrum-css/divider":"^1.0.3","@spectrum-css/link":"^3.1.3","@spectrum-css/page":"^3.0.1","@spectrum-css/tag":"^3.1.4","@spectrum-css/typography":"^3.0.2","@spectrum-css/vars":"^3.0.1",apexcharts:"^3.22.1",dayjs:"^1.10.5",downloadjs:"1.4.7",leaflet:"^1.7.1",regexparam:"^1.3.0","sanitize-html":"^2.7.0",screenfull:"^6.0.1",shortid:"^2.2.15","socket.io-client":"^4.5.1",svelte:"^3.49.0","svelte-apexcharts":"^1.0.2","svelte-flatpickr":"^3.1.0","svelte-spa-router":"^3.0.5"},brt={"@rollup/plugin-alias":"^3.1.5","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1",postcss:"^8.2.10",rollup:"^2.44.0","rollup-plugin-json":"^4.0.0","rollup-plugin-polyfill-node":"^0.8.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-svelte":"^7.1.0","rollup-plugin-svg":"^2.0.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.4"},yrt="d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc",Ed={name:urt,version:crt,license:frt,module:prt,main:drt,type:hrt,svelte:mrt,exports:grt,scripts:vrt,dependencies:_rt,devDependencies:brt,gitHead:yrt};function oN(n){let e,t;return e=new x3({props:{hoverable:!0,notice:!0,$$slots:{default:[$rt]},$$scope:{ctx:n}}}),e.$on("click",function(){An(n[2].show)&&n[2].show.apply(this,arguments)}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){n=r;const a={};i&4096&&(a.$$scope={dirty:i,ctx:n}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function $rt(n){let e;return{c(){e=oe("Update available")},m(t,r){S(t,e,r)},d(t){t&&C(e)}}}function wrt(n){let e,t;return e=new xt({props:{size:"S",$$slots:{default:[zrt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4098&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function krt(n){let e,t;return e=new xt({props:{size:"S",$$slots:{default:[Art]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4098&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function zrt(n){let e,t,r=n[1].version+"",i,a;return{c(){e=oe("This app is currently using version "),t=J("b"),i=oe(r),a=oe(` which is the
936
936
  latest version available.`)},m(o,l){S(o,e,l),S(o,t,l),j(t,i),S(o,a,l)},p(o,l){l&2&&r!==(r=o[1].version+"")&&_t(i,r)},d(o){o&&C(e),o&&C(t),o&&C(a)}}}function Art(n){let e,t,r=n[1].version+"",i,a,o,l;return{c(){e=oe("This app is currently using version "),t=J("b"),i=oe(r),a=oe(`, but version
937
937
  `),o=J("b"),o.textContent=`${Ed.version}`,l=oe(` is available. Updates can contain new features,
938
938
  performance improvements and bug fixes.`)},m(s,u){S(s,e,u),S(s,t,u),j(t,i),S(s,a,u),S(s,o,u),S(s,l,u)},p(s,u){u&2&&r!==(r=s[1].version+"")&&_t(i,r)},d(s){s&&C(e),s&&C(t),s&&C(a),s&&C(o),s&&C(l)}}}function lN(n){let e,t;return e=new xt({props:{size:"S",$$slots:{default:[Mrt]},$$scope:{ctx:n}}}),{c(){O(e.$$.fragment)},m(r,i){H(e,r,i),t=!0},p(r,i){const a={};i&4098&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){t||(b(e.$$.fragment,r),t=!0)},o(r){$(e.$$.fragment,r),t=!1},d(r){B(e,r)}}}function Mrt(n){let e,t,r=n[1].revertableVersion+"",i,a;return{c(){e=oe(`You can revert this app to version
@@ -10,7 +10,7 @@
10
10
  href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
11
11
  rel="stylesheet"
12
12
  />
13
- <script type="module" crossorigin src="/builder/assets/index.bef2492f.js"></script>
13
+ <script type="module" crossorigin src="/builder/assets/index.654c9538.js"></script>
14
14
  <link rel="stylesheet" href="/builder/assets/index.dfa4073c.css">
15
15
  </head>
16
16
  <body id="app">
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1664892575233" clover="3.2.0">
3
- <project timestamp="1664892575233" name="All files">
4
- <metrics statements="4111" coveredstatements="2993" conditionals="1766" coveredconditionals="970" methods="612" coveredmethods="429" elements="6489" coveredelements="4392" complexity="0" loc="4111" ncloc="4111" packages="22" files="122" classes="122"/>
2
+ <coverage generated="1664961759278" clover="3.2.0">
3
+ <project timestamp="1664961759278" name="All files">
4
+ <metrics statements="4125" coveredstatements="3000" conditionals="1772" coveredconditionals="973" methods="614" coveredmethods="430" elements="6511" coveredelements="4403" complexity="0" loc="4125" ncloc="4125" packages="22" files="123" classes="123"/>
5
5
  <package name="api">
6
6
  <metrics statements="35" coveredstatements="34" conditionals="5" coveredconditionals="2" methods="4" coveredmethods="4"/>
7
7
  <file name="index.js" path="/home/runner/work/budibase/budibase/packages/server/src/api/index.js">
@@ -1015,7 +1015,7 @@
1015
1015
  </file>
1016
1016
  </package>
1017
1017
  <package name="api.controllers.row">
1018
- <metrics statements="667" coveredstatements="433" conditionals="322" coveredconditionals="156" methods="94" coveredmethods="58"/>
1018
+ <metrics statements="667" coveredstatements="434" conditionals="322" coveredconditionals="157" methods="94" coveredmethods="58"/>
1019
1019
  <file name="external.js" path="/home/runner/work/budibase/budibase/packages/server/src/api/controllers/row/external.js">
1020
1020
  <metrics statements="120" coveredstatements="18" conditionals="54" coveredconditionals="0" methods="15" coveredmethods="0"/>
1021
1021
  <line num="6" count="45" type="stmt"/>
@@ -1364,36 +1364,36 @@
1364
1364
  <line num="468" count="2" type="stmt"/>
1365
1365
  </file>
1366
1366
  <file name="internalSearch.js" path="/home/runner/work/budibase/budibase/packages/server/src/api/controllers/row/internalSearch.js">
1367
- <metrics statements="208" coveredstatements="163" conditionals="133" coveredconditionals="92" methods="41" coveredmethods="28"/>
1367
+ <metrics statements="208" coveredstatements="164" conditionals="133" coveredconditionals="93" methods="41" coveredmethods="28"/>
1368
1368
  <line num="1" count="45" type="stmt"/>
1369
1369
  <line num="2" count="45" type="stmt"/>
1370
1370
  <line num="3" count="45" type="stmt"/>
1371
1371
  <line num="4" count="45" type="stmt"/>
1372
1372
  <line num="5" count="45" type="stmt"/>
1373
- <line num="13" count="16" type="stmt"/>
1374
- <line num="28" count="16" type="stmt"/>
1375
- <line num="29" count="16" type="stmt"/>
1376
- <line num="30" count="16" type="stmt"/>
1377
- <line num="31" count="16" type="stmt"/>
1378
- <line num="32" count="16" type="stmt"/>
1379
- <line num="36" count="16" type="stmt"/>
1380
- <line num="37" count="16" type="stmt"/>
1381
- <line num="41" count="31" type="stmt"/>
1382
- <line num="42" count="31" type="stmt"/>
1383
- <line num="46" count="31" type="cond" truecount="1" falsecount="1"/>
1384
- <line num="47" count="31" type="stmt"/>
1385
- <line num="49" count="31" type="stmt"/>
1386
- <line num="53" count="16" type="cond" truecount="2" falsecount="0"/>
1373
+ <line num="13" count="17" type="stmt"/>
1374
+ <line num="28" count="17" type="stmt"/>
1375
+ <line num="29" count="17" type="stmt"/>
1376
+ <line num="30" count="17" type="stmt"/>
1377
+ <line num="31" count="17" type="stmt"/>
1378
+ <line num="32" count="17" type="stmt"/>
1379
+ <line num="36" count="17" type="stmt"/>
1380
+ <line num="37" count="17" type="stmt"/>
1381
+ <line num="41" count="33" type="stmt"/>
1382
+ <line num="42" count="33" type="stmt"/>
1383
+ <line num="46" count="33" type="cond" truecount="1" falsecount="1"/>
1384
+ <line num="47" count="33" type="stmt"/>
1385
+ <line num="49" count="33" type="stmt"/>
1386
+ <line num="53" count="17" type="cond" truecount="2" falsecount="0"/>
1387
1387
  <line num="54" count="1" type="stmt"/>
1388
- <line num="56" count="16" type="stmt"/>
1389
- <line num="60" count="16" type="cond" truecount="2" falsecount="0"/>
1390
- <line num="61" count="15" type="stmt"/>
1391
- <line num="63" count="16" type="stmt"/>
1392
- <line num="67" count="16" type="cond" truecount="2" falsecount="0"/>
1393
- <line num="68" count="15" type="stmt"/>
1394
- <line num="70" count="16" type="stmt"/>
1395
- <line num="74" count="31" type="stmt"/>
1396
- <line num="75" count="31" type="stmt"/>
1388
+ <line num="56" count="17" type="stmt"/>
1389
+ <line num="60" count="17" type="cond" truecount="2" falsecount="0"/>
1390
+ <line num="61" count="16" type="stmt"/>
1391
+ <line num="63" count="17" type="stmt"/>
1392
+ <line num="67" count="17" type="cond" truecount="2" falsecount="0"/>
1393
+ <line num="68" count="16" type="stmt"/>
1394
+ <line num="70" count="17" type="stmt"/>
1395
+ <line num="74" count="33" type="stmt"/>
1396
+ <line num="75" count="33" type="stmt"/>
1397
1397
  <line num="79" count="0" type="stmt"/>
1398
1398
  <line num="80" count="0" type="stmt"/>
1399
1399
  <line num="84" count="0" type="stmt"/>
@@ -1418,29 +1418,29 @@
1418
1418
  <line num="133" count="0" type="stmt"/>
1419
1419
  <line num="137" count="0" type="stmt"/>
1420
1420
  <line num="138" count="0" type="stmt"/>
1421
- <line num="149" count="148" type="stmt"/>
1422
- <line num="151" count="148" type="stmt"/>
1423
- <line num="153" count="148" type="cond" truecount="4" falsecount="0"/>
1424
- <line num="154" count="61" type="cond" truecount="2" falsecount="0"/>
1425
- <line num="157" count="148" type="cond" truecount="4" falsecount="0"/>
1426
- <line num="158" count="138" type="stmt"/>
1427
- <line num="162" count="148" type="cond" truecount="4" falsecount="1"/>
1428
- <line num="163" count="0" type="stmt"/>
1429
- <line num="164" count="148" type="cond" truecount="4" falsecount="0"/>
1430
- <line num="165" count="58" type="cond" truecount="2" falsecount="0"/>
1431
- <line num="167" count="148" type="stmt"/>
1432
- <line num="171" count="31" type="stmt"/>
1433
- <line num="172" count="31" type="cond" truecount="2" falsecount="0"/>
1434
- <line num="173" count="31" type="cond" truecount="2" falsecount="0"/>
1435
- <line num="174" count="31" type="stmt"/>
1436
- <line num="176" count="31" type="cond" truecount="1" falsecount="1"/>
1437
- <line num="177" count="31" type="stmt"/>
1438
- <line num="178" count="31" type="stmt"/>
1439
- <line num="181" count="31" type="stmt"/>
1440
- <line num="183" count="45" type="cond" truecount="2" falsecount="2"/>
1421
+ <line num="149" count="156" type="stmt"/>
1422
+ <line num="151" count="156" type="stmt"/>
1423
+ <line num="153" count="156" type="cond" truecount="4" falsecount="0"/>
1424
+ <line num="154" count="65" type="cond" truecount="2" falsecount="0"/>
1425
+ <line num="157" count="156" type="cond" truecount="4" falsecount="0"/>
1426
+ <line num="158" count="146" type="stmt"/>
1427
+ <line num="162" count="156" type="cond" truecount="5" falsecount="0"/>
1428
+ <line num="163" count="14" type="stmt"/>
1429
+ <line num="164" count="142" type="cond" truecount="4" falsecount="0"/>
1430
+ <line num="165" count="46" type="cond" truecount="2" falsecount="0"/>
1431
+ <line num="167" count="156" type="stmt"/>
1432
+ <line num="171" count="33" type="stmt"/>
1433
+ <line num="172" count="33" type="cond" truecount="2" falsecount="0"/>
1434
+ <line num="173" count="33" type="cond" truecount="2" falsecount="0"/>
1435
+ <line num="174" count="33" type="stmt"/>
1436
+ <line num="176" count="33" type="cond" truecount="1" falsecount="1"/>
1437
+ <line num="177" count="33" type="stmt"/>
1438
+ <line num="178" count="33" type="stmt"/>
1439
+ <line num="181" count="33" type="stmt"/>
1440
+ <line num="183" count="49" type="cond" truecount="2" falsecount="2"/>
1441
1441
  <line num="184" count="0" type="stmt"/>
1442
- <line num="186" count="45" type="stmt"/>
1443
- <line num="189" count="31" type="cond" truecount="1" falsecount="0"/>
1442
+ <line num="186" count="49" type="stmt"/>
1443
+ <line num="189" count="33" type="cond" truecount="1" falsecount="0"/>
1444
1444
  <line num="190" count="8" type="cond" truecount="3" falsecount="1"/>
1445
1445
  <line num="191" count="0" type="stmt"/>
1446
1446
  <line num="193" count="8" type="cond" truecount="2" falsecount="0"/>
@@ -1449,12 +1449,12 @@
1449
1449
  <line num="197" count="6" type="stmt"/>
1450
1450
  <line num="198" count="12" type="stmt"/>
1451
1451
  <line num="202" count="6" type="stmt"/>
1452
- <line num="205" count="31" type="stmt"/>
1452
+ <line num="205" count="33" type="stmt"/>
1453
1453
  <line num="206" count="2" type="cond" truecount="1" falsecount="1"/>
1454
1454
  <line num="207" count="2" type="stmt"/>
1455
- <line num="210" count="31" type="stmt"/>
1455
+ <line num="210" count="33" type="stmt"/>
1456
1456
  <line num="211" count="2" type="stmt"/>
1457
- <line num="214" count="31" type="stmt"/>
1457
+ <line num="214" count="33" type="stmt"/>
1458
1458
  <line num="215" count="2" type="cond" truecount="1" falsecount="1"/>
1459
1459
  <line num="216" count="0" type="cond" truecount="0" falsecount="2"/>
1460
1460
  <line num="217" count="0" type="stmt"/>
@@ -1463,116 +1463,116 @@
1463
1463
  <line num="223" count="2" type="stmt"/>
1464
1464
  <line num="224" count="2" type="stmt"/>
1465
1465
  <line num="229" count="2" type="stmt"/>
1466
- <line num="233" count="372" type="stmt"/>
1467
- <line num="235" count="69" type="stmt"/>
1468
- <line num="236" count="69" type="stmt"/>
1469
- <line num="239" count="69" type="stmt"/>
1470
- <line num="240" count="69" type="cond" truecount="1" falsecount="1"/>
1466
+ <line num="233" count="396" type="stmt"/>
1467
+ <line num="235" count="73" type="stmt"/>
1468
+ <line num="236" count="73" type="stmt"/>
1469
+ <line num="239" count="73" type="stmt"/>
1470
+ <line num="240" count="73" type="cond" truecount="1" falsecount="1"/>
1471
1471
  <line num="241" count="0" type="stmt"/>
1472
- <line num="243" count="69" type="cond" truecount="2" falsecount="0"/>
1473
- <line num="244" count="65" type="cond" truecount="2" falsecount="0"/>
1474
- <line num="246" count="69" type="stmt"/>
1475
- <line num="251" count="31" type="cond" truecount="1" falsecount="1"/>
1476
- <line num="252" count="31" type="stmt"/>
1472
+ <line num="243" count="73" type="cond" truecount="2" falsecount="0"/>
1473
+ <line num="244" count="69" type="cond" truecount="2" falsecount="0"/>
1474
+ <line num="246" count="73" type="stmt"/>
1475
+ <line num="251" count="33" type="cond" truecount="1" falsecount="1"/>
1476
+ <line num="252" count="33" type="stmt"/>
1477
1477
  <line num="253" count="2" type="cond" truecount="1" falsecount="1"/>
1478
1478
  <line num="254" count="0" type="stmt"/>
1479
1479
  <line num="256" count="2" type="stmt"/>
1480
- <line num="260" count="2" type="stmt"/>
1481
- <line num="263" count="31" type="cond" truecount="1" falsecount="1"/>
1482
- <line num="264" count="31" type="stmt"/>
1483
- <line num="265" count="2" type="cond" truecount="1" falsecount="1"/>
1484
- <line num="266" count="0" type="stmt"/>
1485
- <line num="268" count="2" type="cond" truecount="3" falsecount="1"/>
1486
- <line num="269" count="0" type="stmt"/>
1487
- <line num="271" count="2" type="cond" truecount="3" falsecount="1"/>
1488
- <line num="272" count="0" type="stmt"/>
1489
- <line num="274" count="2" type="stmt"/>
1480
+ <line num="261" count="2" type="stmt"/>
1481
+ <line num="264" count="33" type="cond" truecount="1" falsecount="1"/>
1482
+ <line num="265" count="33" type="stmt"/>
1483
+ <line num="266" count="2" type="cond" truecount="1" falsecount="1"/>
1484
+ <line num="267" count="0" type="stmt"/>
1485
+ <line num="269" count="2" type="cond" truecount="3" falsecount="1"/>
1486
+ <line num="270" count="0" type="stmt"/>
1487
+ <line num="272" count="2" type="cond" truecount="3" falsecount="1"/>
1488
+ <line num="273" count="0" type="stmt"/>
1490
1489
  <line num="275" count="2" type="stmt"/>
1491
1490
  <line num="276" count="2" type="stmt"/>
1492
- <line num="279" count="31" type="cond" truecount="1" falsecount="1"/>
1493
- <line num="280" count="31" type="stmt"/>
1494
- <line num="281" count="0" type="cond" truecount="0" falsecount="2"/>
1495
- <line num="282" count="0" type="stmt"/>
1496
- <line num="284" count="0" type="stmt"/>
1497
- <line num="288" count="0" type="stmt"/>
1498
- <line num="291" count="31" type="cond" truecount="1" falsecount="1"/>
1499
- <line num="292" count="31" type="stmt"/>
1500
- <line num="294" count="31" type="cond" truecount="1" falsecount="1"/>
1501
- <line num="295" count="31" type="stmt"/>
1502
- <line num="296" count="6" type="cond" truecount="1" falsecount="1"/>
1503
- <line num="297" count="0" type="stmt"/>
1504
- <line num="299" count="6" type="stmt"/>
1505
- <line num="302" count="31" type="cond" truecount="1" falsecount="1"/>
1506
- <line num="303" count="31" type="stmt"/>
1507
- <line num="305" count="31" type="cond" truecount="1" falsecount="1"/>
1508
- <line num="306" count="31" type="stmt"/>
1509
- <line num="308" count="31" type="cond" truecount="1" falsecount="1"/>
1510
- <line num="309" count="31" type="stmt"/>
1511
- <line num="311" count="31" type="cond" truecount="1" falsecount="1"/>
1512
- <line num="312" count="31" type="stmt"/>
1513
- <line num="314" count="31" type="cond" truecount="1" falsecount="1"/>
1514
- <line num="315" count="31" type="stmt"/>
1515
- <line num="317" count="31" type="cond" truecount="1" falsecount="1"/>
1516
- <line num="318" count="31" type="stmt"/>
1517
- <line num="321" count="31" type="cond" truecount="1" falsecount="1"/>
1518
- <line num="322" count="31" type="stmt"/>
1519
- <line num="323" count="31" type="stmt"/>
1520
- <line num="324" count="31" type="stmt"/>
1521
- <line num="326" count="31" type="stmt"/>
1522
- <line num="330" count="31" type="stmt"/>
1523
- <line num="335" count="31" type="cond" truecount="2" falsecount="0"/>
1524
- <line num="336" count="16" type="stmt"/>
1525
- <line num="338" count="31" type="cond" truecount="2" falsecount="0"/>
1526
- <line num="339" count="2" type="cond" truecount="1" falsecount="1"/>
1527
- <line num="340" count="2" type="stmt"/>
1528
- <line num="341" count="2" type="stmt"/>
1529
- <line num="343" count="31" type="stmt"/>
1530
- <line num="347" count="31" type="stmt"/>
1531
- <line num="348" count="31" type="stmt"/>
1532
- <line num="349" count="31" type="stmt"/>
1533
- <line num="350" count="31" type="stmt"/>
1534
- <line num="351" count="31" type="stmt"/>
1535
- <line num="356" count="45" type="stmt"/>
1536
- <line num="365" count="45" type="stmt"/>
1537
- <line num="366" count="31" type="stmt"/>
1538
- <line num="373" count="31" type="stmt"/>
1539
- <line num="375" count="31" type="stmt"/>
1540
- <line num="378" count="31" type="cond" truecount="3" falsecount="1"/>
1541
- <line num="379" count="31" type="stmt"/>
1542
- <line num="381" count="31" type="cond" truecount="1" falsecount="1"/>
1543
- <line num="382" count="31" type="stmt"/>
1544
- <line num="384" count="31" type="stmt"/>
1545
- <line num="403" count="45" type="stmt"/>
1546
- <line num="404" count="1" type="stmt"/>
1547
- <line num="405" count="1" type="cond" truecount="2" falsecount="0"/>
1548
- <line num="406" count="1" type="cond" truecount="1" falsecount="1"/>
1549
- <line num="407" count="0" type="stmt"/>
1550
- <line num="409" count="1" type="stmt"/>
1551
- <line num="410" count="1" type="cond" truecount="1" falsecount="1"/>
1552
- <line num="411" count="0" type="stmt"/>
1553
- <line num="413" count="1" type="stmt"/>
1554
- <line num="422" count="1" type="cond" truecount="1" falsecount="1"/>
1555
- <line num="423" count="0" type="stmt"/>
1556
- <line num="425" count="1" type="cond" truecount="1" falsecount="1"/>
1557
- <line num="426" count="1" type="stmt"/>
1558
- <line num="428" count="0" type="stmt"/>
1559
- <line num="433" count="0" type="stmt"/>
1560
- <line num="451" count="45" type="stmt"/>
1561
- <line num="452" count="15" type="stmt"/>
1562
- <line num="453" count="15" type="cond" truecount="5" falsecount="0"/>
1563
- <line num="454" count="14" type="stmt"/>
1491
+ <line num="277" count="2" type="stmt"/>
1492
+ <line num="280" count="33" type="cond" truecount="1" falsecount="1"/>
1493
+ <line num="281" count="33" type="stmt"/>
1494
+ <line num="282" count="0" type="cond" truecount="0" falsecount="2"/>
1495
+ <line num="283" count="0" type="stmt"/>
1496
+ <line num="285" count="0" type="stmt"/>
1497
+ <line num="290" count="0" type="stmt"/>
1498
+ <line num="293" count="33" type="cond" truecount="1" falsecount="1"/>
1499
+ <line num="294" count="33" type="stmt"/>
1500
+ <line num="296" count="33" type="cond" truecount="1" falsecount="1"/>
1501
+ <line num="297" count="33" type="stmt"/>
1502
+ <line num="298" count="6" type="cond" truecount="1" falsecount="1"/>
1503
+ <line num="299" count="0" type="stmt"/>
1504
+ <line num="301" count="6" type="stmt"/>
1505
+ <line num="304" count="33" type="cond" truecount="1" falsecount="1"/>
1506
+ <line num="305" count="33" type="stmt"/>
1507
+ <line num="307" count="33" type="cond" truecount="1" falsecount="1"/>
1508
+ <line num="308" count="33" type="stmt"/>
1509
+ <line num="310" count="33" type="cond" truecount="1" falsecount="1"/>
1510
+ <line num="311" count="33" type="stmt"/>
1511
+ <line num="313" count="33" type="cond" truecount="1" falsecount="1"/>
1512
+ <line num="314" count="33" type="stmt"/>
1513
+ <line num="316" count="33" type="cond" truecount="1" falsecount="1"/>
1514
+ <line num="317" count="33" type="stmt"/>
1515
+ <line num="319" count="33" type="cond" truecount="1" falsecount="1"/>
1516
+ <line num="320" count="33" type="stmt"/>
1517
+ <line num="323" count="33" type="cond" truecount="1" falsecount="1"/>
1518
+ <line num="324" count="33" type="stmt"/>
1519
+ <line num="325" count="33" type="stmt"/>
1520
+ <line num="326" count="33" type="stmt"/>
1521
+ <line num="328" count="33" type="stmt"/>
1522
+ <line num="332" count="33" type="stmt"/>
1523
+ <line num="337" count="33" type="cond" truecount="2" falsecount="0"/>
1524
+ <line num="338" count="17" type="stmt"/>
1525
+ <line num="340" count="33" type="cond" truecount="2" falsecount="0"/>
1526
+ <line num="341" count="2" type="cond" truecount="1" falsecount="1"/>
1527
+ <line num="342" count="2" type="stmt"/>
1528
+ <line num="343" count="2" type="stmt"/>
1529
+ <line num="345" count="33" type="stmt"/>
1530
+ <line num="349" count="33" type="stmt"/>
1531
+ <line num="350" count="33" type="stmt"/>
1532
+ <line num="351" count="33" type="stmt"/>
1533
+ <line num="352" count="33" type="stmt"/>
1534
+ <line num="353" count="33" type="stmt"/>
1535
+ <line num="358" count="45" type="stmt"/>
1536
+ <line num="367" count="45" type="stmt"/>
1537
+ <line num="368" count="33" type="stmt"/>
1538
+ <line num="375" count="33" type="stmt"/>
1539
+ <line num="377" count="33" type="stmt"/>
1540
+ <line num="380" count="33" type="cond" truecount="3" falsecount="1"/>
1541
+ <line num="381" count="33" type="stmt"/>
1542
+ <line num="383" count="33" type="cond" truecount="1" falsecount="1"/>
1543
+ <line num="384" count="33" type="stmt"/>
1544
+ <line num="386" count="33" type="stmt"/>
1545
+ <line num="405" count="45" type="stmt"/>
1546
+ <line num="406" count="1" type="stmt"/>
1547
+ <line num="407" count="1" type="cond" truecount="2" falsecount="0"/>
1548
+ <line num="408" count="1" type="cond" truecount="1" falsecount="1"/>
1549
+ <line num="409" count="0" type="stmt"/>
1550
+ <line num="411" count="1" type="stmt"/>
1551
+ <line num="412" count="1" type="cond" truecount="1" falsecount="1"/>
1552
+ <line num="413" count="0" type="stmt"/>
1553
+ <line num="415" count="1" type="stmt"/>
1554
+ <line num="424" count="1" type="cond" truecount="1" falsecount="1"/>
1555
+ <line num="425" count="0" type="stmt"/>
1556
+ <line num="427" count="1" type="cond" truecount="1" falsecount="1"/>
1557
+ <line num="428" count="1" type="stmt"/>
1558
+ <line num="430" count="0" type="stmt"/>
1559
+ <line num="435" count="0" type="stmt"/>
1560
+ <line num="453" count="45" type="stmt"/>
1561
+ <line num="454" count="16" type="stmt"/>
1562
+ <line num="455" count="16" type="cond" truecount="5" falsecount="0"/>
1564
1563
  <line num="456" count="15" type="stmt"/>
1565
- <line num="457" count="15" type="stmt"/>
1566
- <line num="463" count="15" type="stmt"/>
1567
- <line num="470" count="15" type="stmt"/>
1568
- <line num="476" count="15" type="stmt"/>
1569
- <line num="497" count="45" type="stmt"/>
1570
- <line num="498" count="1" type="stmt"/>
1571
- <line num="499" count="1" type="cond" truecount="2" falsecount="3"/>
1564
+ <line num="458" count="16" type="stmt"/>
1565
+ <line num="459" count="16" type="stmt"/>
1566
+ <line num="465" count="16" type="stmt"/>
1567
+ <line num="472" count="16" type="stmt"/>
1568
+ <line num="478" count="16" type="stmt"/>
1569
+ <line num="499" count="45" type="stmt"/>
1572
1570
  <line num="500" count="1" type="stmt"/>
1571
+ <line num="501" count="1" type="cond" truecount="2" falsecount="3"/>
1573
1572
  <line num="502" count="1" type="stmt"/>
1574
- <line num="503" count="1" type="stmt"/>
1575
1573
  <line num="504" count="1" type="stmt"/>
1574
+ <line num="505" count="1" type="stmt"/>
1575
+ <line num="506" count="1" type="stmt"/>
1576
1576
  </file>
1577
1577
  <file name="staticFormula.js" path="/home/runner/work/budibase/budibase/packages/server/src/api/controllers/row/staticFormula.js">
1578
1578
  <metrics statements="63" coveredstatements="23" conditionals="31" coveredconditionals="5" methods="6" coveredmethods="2"/>
@@ -3875,7 +3875,7 @@
3875
3875
  </file>
3876
3876
  </package>
3877
3877
  <package name="utilities">
3878
- <metrics statements="363" coveredstatements="263" conditionals="158" coveredconditionals="92" methods="70" coveredmethods="49"/>
3878
+ <metrics statements="377" coveredstatements="269" conditionals="164" coveredconditionals="94" methods="72" coveredmethods="50"/>
3879
3879
  <file name="budibaseDir.js" path="/home/runner/work/budibase/budibase/packages/server/src/utilities/budibaseDir.js">
3880
3880
  <metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
3881
3881
  <line num="1" count="47" type="stmt"/>
@@ -4120,6 +4120,23 @@
4120
4120
  <line num="168" count="0" type="stmt"/>
4121
4121
  <line num="170" count="1" type="stmt"/>
4122
4122
  </file>
4123
+ <file name="plugins.js" path="/home/runner/work/budibase/budibase/packages/server/src/utilities/plugins.js">
4124
+ <metrics statements="14" coveredstatements="6" conditionals="6" coveredconditionals="2" methods="2" coveredmethods="1"/>
4125
+ <line num="1" count="44" type="stmt"/>
4126
+ <line num="2" count="44" type="stmt"/>
4127
+ <line num="3" count="44" type="stmt"/>
4128
+ <line num="5" count="44" type="stmt"/>
4129
+ <line num="6" count="6" type="cond" truecount="2" falsecount="2"/>
4130
+ <line num="7" count="6" type="stmt"/>
4131
+ <line num="9" count="0" type="stmt"/>
4132
+ <line num="10" count="0" type="stmt"/>
4133
+ <line num="11" count="0" type="stmt"/>
4134
+ <line num="12" count="0" type="stmt"/>
4135
+ <line num="16" count="0" type="cond" truecount="0" falsecount="2"/>
4136
+ <line num="17" count="0" type="stmt"/>
4137
+ <line num="18" count="0" type="stmt"/>
4138
+ <line num="19" count="0" type="stmt"/>
4139
+ </file>
4123
4140
  <file name="scriptRunner.js" path="/home/runner/work/budibase/budibase/packages/server/src/utilities/scriptRunner.js">
4124
4141
  <metrics statements="13" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="0"/>
4125
4142
  <line num="1" count="45" type="stmt"/>