harperdb 4.3.27 → 4.3.29
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/README.md +1 -1
- package/application-template/config.yaml +2 -5
- package/bin/harperdb.js +24 -22
- package/bin/lite.js +16 -14
- package/launchServiceScripts/launchInstallNATSServer.js +1 -1
- package/launchServiceScripts/launchNatsIngestService.js +16 -14
- package/launchServiceScripts/launchNatsReplyService.js +16 -14
- package/launchServiceScripts/launchUpdateNodes4-0-0.js +16 -14
- package/npm-shrinkwrap.json +39 -39
- package/package.json +1 -1
- package/server/jobs/jobProcess.js +16 -14
- package/server/threads/threadServer.js +15 -13
- package/studio/build-local/asset-manifest.json +28 -28
- package/studio/build-local/index.html +1 -1
- package/studio/build-local/static/css/{main.e1f8b48c.css → main.fee3019a.css} +1 -1
- package/studio/build-local/static/js/{311.3d832d8b.chunk.js → 311.9e648b13.chunk.js} +2 -2
- package/studio/build-local/static/js/452.d771b05a.chunk.js +2 -0
- package/studio/build-local/static/js/{452.03944f0d.chunk.js.LICENSE.txt → 452.d771b05a.chunk.js.LICENSE.txt} +1 -1
- package/studio/build-local/static/js/545.be2e36f9.chunk.js +1 -0
- package/studio/build-local/static/js/759.7c5150cd.chunk.js +2 -0
- package/studio/build-local/static/js/{806.adb20036.chunk.js → 806.afb99f70.chunk.js} +1 -1
- package/studio/build-local/static/js/851.4c6536d6.chunk.js +1 -0
- package/studio/build-local/static/js/browse-datatable.0e20a171.chunk.js +1 -0
- package/studio/build-local/static/js/browse-jsonviewer.b690b1bb.chunk.js +1 -0
- package/studio/build-local/static/js/{custom-functions.01f632d1.chunk.js → custom-functions.04b93135.chunk.js} +1 -1
- package/studio/build-local/static/js/{instance-cluster.7f6df625.chunk.js → instance-cluster.0ba07710.chunk.js} +1 -1
- package/studio/build-local/static/js/{instance-config.59b29ef6.chunk.js → instance-config.2274de0a.chunk.js} +1 -1
- package/studio/build-local/static/js/instance-query.fdc5f922.chunk.js +1 -0
- package/studio/build-local/static/js/instance-status.d09551b0.chunk.js +1 -0
- package/studio/build-local/static/js/{instance-users-datatable.d61ab3ef.chunk.js → instance-users-datatable.9b5617bc.chunk.js} +1 -1
- package/studio/build-local/static/js/{instance-users-edit.ff5bfa06.chunk.js → instance-users-edit.6ea9cc6f.chunk.js} +1 -1
- package/studio/build-local/static/js/{instance-users.c71b71f2.chunk.js → instance-users.876f6070.chunk.js} +1 -1
- package/studio/build-local/static/js/instance.ad30f892.chunk.js +1 -0
- package/studio/build-local/static/js/instances.f4fec0cb.chunk.js +1 -0
- package/studio/build-local/static/js/{main.cbf96b8b.js → main.2bfc8c33.js} +2 -2
- package/studio/build-local/static/js/{offline-app.31c18661.chunk.js → offline-app.31ad36fc.chunk.js} +1 -1
- package/studio/build-local/static/js/{online-app.0d8194e1.chunk.js → online-app.91033fd0.chunk.js} +1 -1
- package/studio/build-local/static/js/{organization-users.532711dd.chunk.js → organization-users.6f50ca02.chunk.js} +1 -1
- package/studio/build-local/static/js/{organization.99a1e759.chunk.js → organization.89b902c4.chunk.js} +1 -1
- package/studio/build-local/static/js/{profile.e4e06bdf.chunk.js → profile.c05c7042.chunk.js} +1 -1
- package/studio/build-local/static/js/signIn.996cf7ee.chunk.js +1 -0
- package/utility/scripts/restartHdb.js +16 -14
- package/application-template/routes/index.js +0 -14
- package/studio/build-local/static/js/452.03944f0d.chunk.js +0 -2
- package/studio/build-local/static/js/545.e12f8571.chunk.js +0 -1
- package/studio/build-local/static/js/591.7498da00.chunk.js +0 -2
- package/studio/build-local/static/js/851.e7004b75.chunk.js +0 -1
- package/studio/build-local/static/js/browse-datatable.c2eb203f.chunk.js +0 -1
- package/studio/build-local/static/js/browse-jsonviewer.90814e97.chunk.js +0 -1
- package/studio/build-local/static/js/instance-query.44ba3d7b.chunk.js +0 -1
- package/studio/build-local/static/js/instance-status.694a7846.chunk.js +0 -1
- package/studio/build-local/static/js/instance.47c8b74b.chunk.js +0 -1
- package/studio/build-local/static/js/instances.1ec58722.chunk.js +0 -1
- package/studio/build-local/static/js/signIn.0134746e.chunk.js +0 -1
- /package/studio/build-local/static/js/{311.3d832d8b.chunk.js.LICENSE.txt → 311.9e648b13.chunk.js.LICENSE.txt} +0 -0
- /package/studio/build-local/static/js/{591.7498da00.chunk.js.LICENSE.txt → 759.7c5150cd.chunk.js.LICENSE.txt} +0 -0
- /package/studio/build-local/static/js/{main.cbf96b8b.js.LICENSE.txt → main.2bfc8c33.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[851],{5488:(e,t,n)=>{n.d(t,{A:()=>v});var o=n(9950),r=n(1942),i=n.n(r),s=n(8738),a=n.n(s),c=n(1497);function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}var u=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},p.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function d(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function b(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=m(e);if(t){var r=m(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===l(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return y(e)}(this,n)}}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}var g={children:i().node,type:i().string,size:i().oneOfType([i().number,i().string]),bsSize:i().string,valid:i().bool,invalid:i().bool,tag:c.Wx,innerRef:i().oneOfType([i().object,i().func,i().string]),plaintext:i().bool,addon:i().bool,className:i().string,cssModule:i().object},O=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(s,e);var t,n,r,i=b(s);function s(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(t=i.call(this,e)).getRef=t.getRef.bind(y(t)),t.focus=t.focus.bind(y(t)),t}return t=s,(n=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.cssModule,r=e.type,i=void 0===r?"text":r,s=e.bsSize,l=e.valid,d=e.invalid,h=e.tag,b=e.addon,y=e.plaintext,m=e.innerRef,g=f(e,u),O=["switch","radio","checkbox"].indexOf(i)>-1,v="select"===i,j="range"===i,w=h||(v||"textarea"===i?i:"input"),k="form-control";y?(k="".concat(k,"-plaintext"),w=h||"input"):j?k="form-range":v?k="form-select":O&&(k=b?null:"form-check-input"),g.size&&/\D/g.test(g.size)&&((0,c.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),s=g.size,delete g.size);var C=(0,c.qO)(a()(t,d&&"is-invalid",l&&"is-valid",!!s&&(v?"form-select-".concat(s):"form-control-".concat(s)),k),n);return("input"===w||h&&"function"===typeof h)&&(g.type="switch"===i?"checkbox":i),g.children&&!y&&"select"!==i&&"string"===typeof w&&"select"!==w&&((0,c.mc)('Input with a type of "'.concat(i,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete g.children),o.createElement(w,p({},g,{ref:m,className:C,"aria-invalid":d}))}}])&&d(t.prototype,n),r&&d(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(o.Component);O.propTypes=g;const v=O},6685:(e,t,n)=>{n.d(t,{A:()=>Q});var o=n(9950),r=n(1942),i=n.n(r),s=n(8738),a=n.n(s),c=n(7119),l=n(1497);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function p(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function d(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=h(e);if(t){var r=h(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===u(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}var b={children:i().node.isRequired,node:i().any},y=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}(i,e);var t,n,o,r=d(i);function i(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),r.apply(this,arguments)}return t=i,(n=[{key:"componentWillUnmount",value:function(){this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null}},{key:"render",value:function(){return l.Sw?(this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode)),c.createPortal(this.props.children,this.props.node||this.defaultNode)):null}}])&&p(t.prototype,n),o&&p(t,o),Object.defineProperty(t,"prototype",{writable:!1}),i}(o.Component);y.propTypes=b;const m=y;var g=n(2448),O=["tag","baseClass","baseClassActive","className","cssModule","children","innerRef"];function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},v.apply(this,arguments)}function j(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){C(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var P=k(k({},g.Ay.propTypes),{},{children:i().oneOfType([i().arrayOf(i().node),i().node]),tag:l.Wx,baseClass:i().string,baseClassActive:i().string,className:i().string,cssModule:i().object,innerRef:i().oneOfType([i().object,i().string,i().func])}),_=k(k({},g.Ay.defaultProps),{},{timeout:l.Q6.Fade,appear:!0,enter:!0,exit:!0,in:!0});function E(e){var t=(0,o.useRef)(null),n=(0,l.Jc)(_,e),r=n.tag,i=void 0===r?"div":r,s=n.baseClass,c=void 0===s?"fade":s,u=n.baseClassActive,p=void 0===u?"show":u,f=n.className,d=n.cssModule,h=n.children,b=n.innerRef,y=void 0===b?t:b,m=j(n,O),w=(0,l.Up)(k({defaultProps:_},m),l.PS),C=(0,l.cJ)(m,l.PS);return o.createElement(g.Ay,v({nodeRef:y},w),(function(e){var t="entered"===e,n=(0,l.qO)(a()(f,c,t&&p),d);return o.createElement(i,v({className:n},C,{ref:y}),h)}))}E.propTypes=P;const T=E;function S(e){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S(e)}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},A.apply(this,arguments)}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function F(e,t){return F=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},F(e,t)}function M(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=z(e);if(t){var r=z(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===S(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return D(e)}(this,n)}}function D(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e){return z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},z(e)}function I(){}var q=i().shape(T.propTypes),W={autoFocus:i().bool,backdrop:i().oneOfType([i().bool,i().oneOf(["static"])]),backdropClassName:i().string,backdropTransition:q,centered:i().bool,children:i().node,contentClassName:i().string,className:i().string,container:l.xQ,cssModule:i().object,external:i().node,fade:i().bool,fullscreen:i().oneOfType([i().bool,i().oneOf(["sm","md","lg","xl"])]),innerRef:i().oneOfType([i().object,i().string,i().func]),isOpen:i().bool,keyboard:i().bool,labelledBy:i().string,modalClassName:i().string,modalTransition:q,onClosed:i().func,onEnter:i().func,onExit:i().func,onOpened:i().func,returnFocusAfterClose:i().bool,role:i().string,scrollable:i().bool,size:i().string,toggle:i().func,trapFocus:i().bool,unmountOnClose:i().bool,wrapClassName:i().string,zIndex:i().oneOfType([i().number,i().string])},L=Object.keys(W),U={isOpen:!1,autoFocus:!0,centered:!1,scrollable:!1,role:"dialog",backdrop:!0,keyboard:!0,zIndex:1050,fade:!0,onOpened:I,onClosed:I,modalTransition:{timeout:l.Q6.Modal},backdropTransition:{mountOnEnter:!0,timeout:l.Q6.Fade},unmountOnClose:!0,returnFocusAfterClose:!0,container:"body",trapFocus:!1},K=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&F(e,t)}(s,e);var t,n,r,i=M(s);function s(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(t=i.call(this,e))._element=null,t._originalBodyPadding=null,t.getFocusableChildren=t.getFocusableChildren.bind(D(t)),t.handleBackdropClick=t.handleBackdropClick.bind(D(t)),t.handleBackdropMouseDown=t.handleBackdropMouseDown.bind(D(t)),t.handleEscape=t.handleEscape.bind(D(t)),t.handleStaticBackdropAnimation=t.handleStaticBackdropAnimation.bind(D(t)),t.handleTab=t.handleTab.bind(D(t)),t.onOpened=t.onOpened.bind(D(t)),t.onClosed=t.onClosed.bind(D(t)),t.manageFocusAfterClose=t.manageFocusAfterClose.bind(D(t)),t.clearBackdropAnimationTimeout=t.clearBackdropAnimationTimeout.bind(D(t)),t.trapFocus=t.trapFocus.bind(D(t)),t.state={isOpen:!1,showStaticBackdropAnimation:!1},t}return t=s,(n=[{key:"componentDidMount",value:function(){var e=this.props,t=e.isOpen,n=e.autoFocus,o=e.onEnter;t&&(this.init(),this.setState({isOpen:!0}),n&&this.setFocus()),o&&o(),document.addEventListener("focus",this.trapFocus,!0),this._isMounted=!0}},{key:"componentDidUpdate",value:function(e,t){if(this.props.isOpen&&!e.isOpen)return this.init(),void this.setState({isOpen:!0});this.props.autoFocus&&this.state.isOpen&&!t.isOpen&&this.setFocus(),this._element&&e.zIndex!==this.props.zIndex&&(this._element.style.zIndex=this.props.zIndex)}},{key:"componentWillUnmount",value:function(){this.clearBackdropAnimationTimeout(),this.props.onExit&&this.props.onExit(),this._element&&(this.destroy(),(this.props.isOpen||this.state.isOpen)&&this.close()),document.removeEventListener("focus",this.trapFocus,!0),this._isMounted=!1}},{key:"handleBackdropClick",value:function(e){if(e.target===this._mouseDownElement){e.stopPropagation();var t=this._dialog?this._dialog.parentNode:null;if(t&&e.target===t&&"static"===this.props.backdrop&&this.handleStaticBackdropAnimation(),!this.props.isOpen||!0!==this.props.backdrop)return;t&&e.target===t&&this.props.toggle&&this.props.toggle(e)}}},{key:"handleTab",value:function(e){if(9===e.which&&!(this.modalIndex<s.openCount-1)){var t=this.getFocusableChildren(),n=t.length;if(0!==n){for(var o=this.getFocusedChild(),r=0,i=0;i<n;i+=1)if(t[i]===o){r=i;break}e.shiftKey&&0===r?(e.preventDefault(),t[n-1].focus()):e.shiftKey||r!==n-1||(e.preventDefault(),t[0].focus())}}}},{key:"handleBackdropMouseDown",value:function(e){this._mouseDownElement=e.target}},{key:"handleEscape",value:function(e){this.props.isOpen&&e.keyCode===l.uP.esc&&this.props.toggle&&(this.props.keyboard?(e.preventDefault(),e.stopPropagation(),this.props.toggle(e)):"static"===this.props.backdrop&&(e.preventDefault(),e.stopPropagation(),this.handleStaticBackdropAnimation()))}},{key:"handleStaticBackdropAnimation",value:function(){var e=this;this.clearBackdropAnimationTimeout(),this.setState({showStaticBackdropAnimation:!0}),this._backdropAnimationTimeout=setTimeout((function(){e.setState({showStaticBackdropAnimation:!1})}),100)}},{key:"onOpened",value:function(e,t){this.props.onOpened(),(this.props.modalTransition.onEntered||I)(e,t)}},{key:"onClosed",value:function(e){var t=this.props.unmountOnClose;this.props.onClosed(),(this.props.modalTransition.onExited||I)(e),t&&this.destroy(),this.close(),this._isMounted&&this.setState({isOpen:!1})}},{key:"setFocus",value:function(){this._dialog&&this._dialog.parentNode&&"function"===typeof this._dialog.parentNode.focus&&this._dialog.parentNode.focus()}},{key:"getFocusableChildren",value:function(){return this._element.querySelectorAll(l.mr.join(", "))}},{key:"getFocusedChild",value:function(){var e,t=this.getFocusableChildren();try{e=document.activeElement}catch(n){e=t[0]}return e}},{key:"trapFocus",value:function(e){if(this.props.trapFocus&&this._element&&(!this._dialog||this._dialog.parentNode!==e.target)&&!(this.modalIndex<s.openCount-1)){for(var t=this.getFocusableChildren(),n=0;n<t.length;n+=1)if(t[n]===e.target)return;t.length>0&&(e.preventDefault(),e.stopPropagation(),t[0].focus())}}},{key:"init",value:function(){try{this._triggeringElement=document.activeElement}catch(e){this._triggeringElement=null}this._element||(this._element=document.createElement("div"),this._element.setAttribute("tabindex","-1"),this._element.style.position="relative",this._element.style.zIndex=this.props.zIndex,this._mountContainer=(0,l.EW)(this.props.container),this._mountContainer.appendChild(this._element)),this._originalBodyPadding=(0,l.FS)(),s.openCount<1&&(s.originalBodyOverflow=window.getComputedStyle(document.body).overflow),(0,l.Xt)(),0===s.openCount&&(document.body.className=a()(document.body.className,(0,l.qO)("modal-open",this.props.cssModule)),document.body.style.overflow="hidden"),this.modalIndex=s.openCount,s.openCount+=1}},{key:"destroy",value:function(){this._element&&(this._mountContainer.removeChild(this._element),this._element=null),this.manageFocusAfterClose()}},{key:"manageFocusAfterClose",value:function(){if(this._triggeringElement){var e=this.props.returnFocusAfterClose;this._triggeringElement.focus&&e&&this._triggeringElement.focus(),this._triggeringElement=null}}},{key:"close",value:function(){if(s.openCount<=1){var e=(0,l.qO)("modal-open",this.props.cssModule),t=new RegExp("(^| )".concat(e,"( |$)"));document.body.className=document.body.className.replace(t," ").trim(),document.body.style.overflow=s.originalBodyOverflow}this.manageFocusAfterClose(),s.openCount=Math.max(0,s.openCount-1),(0,l.Ll)(this._originalBodyPadding)}},{key:"clearBackdropAnimationTimeout",value:function(){this._backdropAnimationTimeout&&(clearTimeout(this._backdropAnimationTimeout),this._backdropAnimationTimeout=void 0)}},{key:"renderModalDialog",value:function(){var e,t=this,n=(0,l.cJ)(this.props,L),r="modal-dialog";return o.createElement("div",A({},n,{className:(0,l.qO)(a()(r,this.props.className,(e={},B(e,"modal-".concat(this.props.size),this.props.size),B(e,"".concat(r,"-centered"),this.props.centered),B(e,"".concat(r,"-scrollable"),this.props.scrollable),B(e,"modal-fullscreen",!0===this.props.fullscreen),B(e,"modal-fullscreen-".concat(this.props.fullscreen,"-down"),"string"===typeof this.props.fullscreen),e)),this.props.cssModule),role:"document",ref:function(e){t._dialog=e}}),o.createElement("div",{className:(0,l.qO)(a()("modal-content",this.props.contentClassName),this.props.cssModule)},this.props.children))}},{key:"render",value:function(){var e=this.props.unmountOnClose;if(this._element&&(this.state.isOpen||!e)){var t=!!this._element&&!this.state.isOpen&&!e;this._element.style.display=t?"none":"block";var n=this.props,r=n.wrapClassName,i=n.modalClassName,s=n.backdropClassName,c=n.cssModule,u=n.isOpen,p=n.backdrop,f=n.role,d=n.labelledBy,h=n.external,b=n.innerRef,y={onClick:this.handleBackdropClick,onMouseDown:this.handleBackdropMouseDown,onKeyUp:this.handleEscape,onKeyDown:this.handleTab,style:{display:"block"},"aria-labelledby":d,"aria-modal":!0,role:f,tabIndex:"-1"},g=this.props.fade,O=N(N(N({},T.defaultProps),this.props.modalTransition),{},{baseClass:g?this.props.modalTransition.baseClass:"",timeout:g?this.props.modalTransition.timeout:0}),v=N(N(N({},T.defaultProps),this.props.backdropTransition),{},{baseClass:g?this.props.backdropTransition.baseClass:"",timeout:g?this.props.backdropTransition.timeout:0}),j=p&&(g?o.createElement(T,A({},v,{in:u&&!!p,cssModule:c,className:(0,l.qO)(a()("modal-backdrop",s),c)})):o.createElement("div",{className:(0,l.qO)(a()("modal-backdrop","show",s),c)}));return o.createElement(m,{node:this._element},o.createElement("div",{className:(0,l.qO)(r)},o.createElement(T,A({},y,O,{in:u,onEntered:this.onOpened,onExited:this.onClosed,cssModule:c,className:(0,l.qO)(a()("modal",i,this.state.showStaticBackdropAnimation&&"modal-static"),c),innerRef:b}),h,this.renderModalDialog()),j))}return null}}])&&R(t.prototype,n),r&&R(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(o.Component);K.propTypes=W,K.defaultProps=U,K.openCount=0,K.originalBodyOverflow=null;const Q=K},877:(e,t,n)=>{n.d(t,{A:()=>h});var o=n(9950),r=n(1942),i=n.n(r),s=n(8738),a=n.n(s),c=n(1497),l=["className","cssModule","tag"];function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}function p(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var f={className:i().string,cssModule:i().object,tag:c.Wx};function d(e){var t=e.className,n=e.cssModule,r=e.tag,i=void 0===r?"div":r,s=p(e,l),f=(0,c.qO)(a()(t,"modal-body"),n);return o.createElement(i,u({},s,{className:f}))}d.propTypes=f;const h=d},1340:(e,t,n)=>{n.d(t,{A:()=>h});var o=n(9950),r=n(1942),i=n.n(r),s=n(8738),a=n.n(s),c=n(1497),l=["className","cssModule","children","toggle","tag","wrapTag","closeAriaLabel","close"];function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}function p(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var f={children:i().node,className:i().string,close:i().object,closeAriaLabel:i().string,cssModule:i().object,tag:c.Wx,toggle:i().func,wrapTag:c.Wx};function d(e){var t,n=e.className,r=e.cssModule,i=e.children,s=e.toggle,f=e.tag,d=void 0===f?"h5":f,h=e.wrapTag,b=void 0===h?"div":h,y=e.closeAriaLabel,m=void 0===y?"Close":y,g=e.close,O=p(e,l),v=(0,c.qO)(a()(n,"modal-header"),r);return!g&&s&&(t=o.createElement("button",{type:"button",onClick:s,className:(0,c.qO)("btn-close",r),"aria-label":m})),o.createElement(b,u({},O,{className:v}),o.createElement(d,{className:(0,c.qO)("modal-title",r)},i),g||t)}d.propTypes=f;const h=d}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[702],{1435:(e,t,a)=>{a.r(t),a.d(t,{default:()=>A});var n=a(9950),r=a(8429),s=a(135),o=a(4084),l=a(8156),i=a(6713),c=a(5269),d=a(5996),u=a(7176),h=a(6114),g=a(3452),f=a(4549),p=a(4414);const m=function(e){let{totalRecords:t,loading:a,loadingFilter:n,refresh:s,autoRefresh:o,onlyCached:l,toggleAutoRefresh:i,toggleOnlyCached:c,toggleFilter:d}=e;const m=(0,r.Zp)(),{compute_stack_id:b,schema:x,table:v,customer_id:j}=(0,r.g)();return(0,p.jsxs)(u.A,{className:"floating-card-header",children:[(0,p.jsxs)(h.A,{children:[x,"\xa0",v&&`> ${v} > `,o||!a&&!n?(0,p.jsxs)("span",{children:[(0,f.A)(t)," record",1!==t?"s":""]}):(0,p.jsx)("i",{className:"fa fa-spinner fa-spin"})]}),(0,p.jsxs)(h.A,{className:"text-end",children:[(0,p.jsx)(g.A,{id:"refresh",color:"link",tabIndex:"0",title:`Refresh table ${v}`,className:"me-2",onClick:s,children:(0,p.jsx)("i",{className:"fa "+(a?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,p.jsxs)(g.A,{id:"toggleAutoRefresh",color:"link",tabIndex:"0",title:"Turn on Auto-Refresh",onClick:i,children:[(0,p.jsx)("span",{className:"me-2",children:"auto"}),(0,p.jsx)("i",{className:"fa fa-lg fa-toggle-"+(o?"on":"off")})]}),(0,p.jsx)("span",{className:"mx-3 text",children:"|"}),(0,p.jsxs)(g.A,{id:"toggleOnlyCached",color:"link",tabIndex:"0",title:"Only show cached data",onClick:c,children:[(0,p.jsx)("span",{className:"me-2",children:"only cached"}),(0,p.jsx)("i",{className:"fa fa-lg fa-toggle-"+(l?"on":"off")})]}),(0,p.jsx)("span",{className:"mx-3 text",children:"|"}),(0,p.jsx)(g.A,{id:"toggleSearch",color:"link",tabIndex:"0",title:`Filter table ${v}`,className:"me-3",onClick:d,children:(0,p.jsx)("i",{className:"fa fa-search"})}),(0,p.jsx)(g.A,{id:"addRecord",color:"link",tabIndex:"0",title:`Add new record to table ${v}`,className:"me-3",onClick:()=>m(`/o/${j}/i/${b}/browse/${x}/${v}/add`),children:(0,p.jsx)("i",{className:"fa fa-plus"})}),(0,p.jsx)(g.A,{id:"bulkUpload",color:"link",tabIndex:"0",className:"me-2",title:`Bulk Upload CSV to ${v}`,onClick:()=>m(`/o/${j}/i/${b}/browse/${x}/${v}/csv`),children:(0,p.jsx)("i",{className:"fa fa-file-upload"})})]})]})};var b=a(4343),x=a(3369),v=a(127);const j=async e=>{let{schema:t,table:a,filtered:n,pageSize:r,onlyCached:s,sorted:o,page:l,auth:i,url:c,signal:d,signal2:u}=e,h=!1,g=0,f=1,p=[],m=!1,b=!1,j=["*"];const y=l*r;try{const e=await(0,x.A)({auth:i,url:c,schema:t,table:a,signal:u});if(e.error)throw m=[],new Error("table");const{record_count:n,attributes:s,hash_attribute:o}=e;m=s.map((e=>e.attribute)),void 0===o?(b="$id",j=["$id","*"]):b=o,g=n,f=g&&Math.ceil(g/r)}catch(A){h=A.message}if(g)try{if(p=n.length?await(async e=>{let{auth:t,url:a,schema:n,table:r,operator:s,get_attributes:o,limit:l,offset:i,onlyCached:c,conditions:d,signal:u}=e;return(0,v.A)({operation:{operation:"search_by_conditions",schema:n,table:r,operator:s,get_attributes:o,limit:l,offset:i,conditions:d,onlyIfCached:c,noCacheStore:c},auth:t,url:a,signal:u})})({schema:t,table:a,operator:"and",get_attributes:j,limit:r,offset:y,sort:o.length?{attribute:o[0].id,descending:o[0].desc}:void 0,conditions:n.map((e=>({search_attribute:e.id,search_type:"contains",search_value:e.value}))),auth:i,url:c,signal:d,onlyCached:s}):await(async e=>{let{auth:t,url:a,schema:n,table:r,search_attribute:s,search_value:o,get_attributes:l,limit:i,offset:c,sort:d,onlyCached:u,signal:h}=e;return(0,v.A)({operation:{operation:"search_by_value",schema:n,table:r,search_attribute:s,search_value:o,get_attributes:l,limit:i,offset:c,sort:d,onlyIfCached:u,noCacheStore:u},auth:t,url:a,signal:h})})({schema:t,table:a,search_attribute:b,search_value:"*",get_attributes:j,limit:r,offset:y,sort:o.length?{attribute:o[0].id,descending:o[0].desc}:void 0,auth:i,url:c,signal:d,onlyCached:s}),p.error||!Array.isArray(p))throw new Error(p.message)}catch(A){h=A.message}const w=m.filter((e=>![b,"__createdtime__","__updatedtime__"].includes(e))).sort(),C=w.reduce(((e,t)=>({...e,[t]:null})),{});m.includes("__createdtime__")&&w.push("__createdtime__"),m.includes("__updatedtime__")&&w.push("__updatedtime__");const N=(b?[b,...w]:[...w]).map((e=>({Header:"$id"===e?"Primary Key":e.toString(),accessor:t=>t[e.toString()]})));return{newData:p||[],newEntityAttributes:C,newTotalRecords:g,newTotalPages:f,hashAttribute:b,dataTableColumns:N,error:"table"===h?`You are not authorized to view ${t}:${a}`:h}};var y=a(306);let w,C,N;const A=function(e){let{tableState:t,setTableState:a,activeTable:u}=e;const h=(0,r.Zp)(),{compute_stack_id:g,schema:f,table:x,customer_id:v}=(0,r.g)(),A=(0,i.O$)(c.A,(e=>e.auth)),S=(0,i.O$)(c.A,(e=>e.url)),[_,P]=(0,n.useState)(!1),[k,R]=(0,n.useState)(!1),[O,z]=(0,n.useState)(!1),[$,T]=(0,n.useState)(!1),[F,E]=(0,n.useState)(!0);return(0,n.useEffect)((()=>{var e,n,r;null===(e=w)||void 0===e||e.abort(),null===(n=C)||void 0===n||n.abort(),null===(r=N)||void 0===r||r.abort(),T(!1),z(!1);let s=!0;const o=async()=>{T(!0),P(!1),N=new AbortController;const{newTotalRecords:e,newTotalPages:a}=await(async e=>{let t,a,{schema:n,table:r,filtered:s,pageSize:o,auth:l,url:i,signal:c}=e;try{let e=`SELECT count(*) as newTotalRecords FROM \`${n}\`.\`${r}\` `;s.length&&(e+=`WHERE ${s.map((e=>` \`${e.id}\` LIKE '%${e.value}%'`)).join(" AND ")}`),[{newTotalRecords:a}]=await(0,y.A)({auth:l,url:i,sql:e,signal:c}),t=a&&Math.ceil(a/o)}catch(d){t=1,a=0}return{newTotalRecords:a,newTotalPages:t}})({schema:f,table:x,filtered:t.filtered,pageSize:t.pageSize,auth:A,url:S,signal:N.signal});s&&(T(!1),P(a),R(e))};return(async()=>{t.filtered.length||z(!0),w=new AbortController,C=new AbortController;const{newData:e,newTotalRecords:n,newTotalPages:r,newEntityAttributes:l,hashAttribute:i,dataTableColumns:c,error:d}=await j({schema:f,table:x,filtered:t.filtered,pageSize:t.pageSize,sorted:t.sorted,onlyCached:t.onlyCached,page:t.page,auth:A,url:S,signal:w.signal,signal2:C.signal});s&&(z(!1),e.error?a({...t,tableData:[],error:d}):(t.filtered.length?e.length<t.pageSize?(P(1),R(e.length)):o():(P(r),R(n)),a({...t,tableData:e,newEntityAttributes:l,hashAttribute:i,dataTableColumns:c,error:d})))})(),()=>{var e,t,a;null===(e=w)||void 0===e||e.abort(),null===(t=C)||void 0===t||t.abort(),null===(a=N)||void 0===a||a.abort(),s=!1}}),[t.sorted,t.page,t.filtered,t.pageSize,t.onlyCached,F,u]),(0,s.A)((()=>t.autoRefresh&&E(Date.now())),d.A.refresh_content_interval),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(m,{totalRecords:k,loading:O,loadingFilter:$,autoRefresh:t.autoRefresh,onlyCached:t.onlyCached,refresh:()=>E(Date.now()),toggleAutoRefresh:()=>a({...t,autoRefresh:!t.autoRefresh}),toggleOnlyCached:()=>a({...t,onlyCached:!t.onlyCached}),toggleFilter:()=>a({...t,showFilter:!t.showFilter})}),(0,p.jsx)(o.A,{className:"my-3",children:(0,p.jsx)(l.A,{className:"react-table-holder",children:(0,p.jsx)(b.A,{manual:!0,columns:t.dataTableColumns||[],data:t.tableData||[],error:t.error,currentPage:t.page,pageSize:t.pageSize,totalPages:_||0,showFilter:t.showFilter,sorted:t.sorted.length?t.sorted:[{id:t.hashAttribute,desc:!1}],loading:O&&!t.autoRefresh,onFilteredChange:e=>{a({...t,page:0,filtered:e})},onSortedChange:e=>a({...t,page:0,sorted:e}),onPageChange:e=>a({...t,page:e}),onPageSizeChange:e=>a({...t,page:0,pageSize:e}),onRowClick:e=>{const a=e[t.hashAttribute],n=encodeURIComponent(f),r=encodeURIComponent(x),s=encodeURIComponent(a);h(`/o/${v}/i/${g}/browse/${n}/${r}/edit/${s}`,{state:{hashValue:a}})}})})})]})}},4343:(e,t,a)=>{a.d(t,{A:()=>j});var n=a(9950),r=a(2043),s=a(5488),o=a(9435),l=a(7176),i=a(6114),c=a(4414);const d=e=>{let{headerGroups:t,onSortedChange:a,sorted:n,showFilter:r}=e;return t.map((e=>{const{key:t,...s}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...s,children:[(0,c.jsx)(l.A,{className:"header g-0",children:e.headers.map((e=>{var t,r;return(0,c.jsx)(i.A,{onClick:()=>{var t,r;return a([{id:e.id,desc:(null===(t=n[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(r=n[0])&&void 0!==r&&r.desc)}])},className:`${(null===(t=n[0])||void 0===t?void 0:t.id)===e.id?"sorted":""} ${null!==(r=n[0])&&void 0!==r&&r.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),r&&(0,c.jsx)(l.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(i.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},t)}))};var u=a(3452);const h=function(e){let{page:t,pageSize:a,totalPages:n,onPageChange:r,onPageSizeChange:o,loading:d}=e;return(0,c.jsxs)(l.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(u.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>r(t-1),disabled:!n||0===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(s.A,{className:"mb-2",type:"number",value:t+1,min:1,max:n,onChange:e=>r(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",d?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):n]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(s.A,{className:"mb-2",type:"select",value:a,onChange:e=>o(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(u.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>r(t+1),disabled:!n||t+1===n,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const g=function(e){let{previousPage:t,canPreviousPage:a,pageIndex:n,gotoPage:r,setPageSize:o,pageCount:d,nextPage:h,canNextPage:g,loading:f}=e;return(0,c.jsxs)(l.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(u.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!d||!a,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(s.A,{className:"mb-2",type:"number",value:n+1||1,min:1,max:d,onChange:e=>r(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",f?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):d]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(s.A,{className:"mb-2",type:"select",onChange:e=>{r(0),setTimeout((()=>o(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(u.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:h,disabled:!d||!g,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const f=function(e){let{prepareRow:t,row:a,onRowClick:n=!1}=e;return t(a),(0,c.jsx)(l.A,{onClick:()=>n&&n(a.original),className:"g-0",children:a.cells.map((e=>(0,c.jsx)(i.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var p=a(3628),m=a(3150);function b(e){let{value:t}=e;return(0,c.jsx)("div",{className:"text-renderer",children:t})}function x(e){let{src:t}=e;const[a,r]=(0,n.useState)(!1),[s,o]=(0,n.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),a&&s?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):a?(0,c.jsx)("img",{onError:o,alt:t,src:t,className:"preview-image"}):null]})}const v={Filter:e=>{let{column:{filterValue:t,setFilter:a}}=e;return(0,c.jsx)(s.A,{type:"text",value:t||"",onChange:e=>a(e.target.value||void 0)})},Cell:e=>{let{value:t}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(b,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(b,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,c.jsx)(x,{src:e}):(0,c.jsx)(b,{value:e});default:return(0,c.jsx)(b,{value:e})}var t})(t)}};const j=function(e){let{columns:t,data:a,error:s,currentPage:l,pageSize:i,totalPages:u,onFilteredChange:b,onSortedChange:x,onPageChange:j,onPageSizeChange:y,showFilter:w,onRowClick:C,sorted:N,loading:A,manual:S=!1}=e;const{headerGroups:_,page:P,rows:k,prepareRow:R,state:O,setAllFilters:z,canPreviousPage:$,canNextPage:T,pageOptions:F,pageCount:E,gotoPage:I,nextPage:D,previousPage:M,setPageSize:q}=(0,r.useTable)({columns:t,data:a,defaultColumn:v,onFilteredChange:b,onSortedChange:x,onPageChange:j,onPageSizeChange:y,onRowClick:C,manualPagination:S,manualFilters:S,initialState:{pageIndex:l,pageSize:i}},r.useFilters,r.usePagination),[H,U]=(0,n.useState)(!0),B=S||!P.length?k:P;return(0,n.useEffect)((()=>{!w&&O.filters.length?z([]):b(O.filters)}),[O.filters,w]),(0,n.useEffect)((()=>{setTimeout((()=>U(!1)),100)}),[null===B||void 0===B?void 0:B.length]),(0,c.jsxs)(o.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:m.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(d,{headerGroups:_,onSortedChange:x,sorted:N,showFilter:w}),A||H?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):B.length?B.map((e=>(0,c.jsx)(f,{row:e,prepareRow:R,onRowClick:C},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:s?`Error loading data: ${s}`:"no records"})]})]}),S?(0,c.jsx)(h,{page:l,pageSize:i,totalPages:u,onPageChange:j,onPageSizeChange:y,loading:A}):(0,c.jsx)(g,{previousPage:M,pageSize:i,canPreviousPage:$,pageIndex:O.pageIndex,pageOptions:F,gotoPage:I,setPageSize:q,pageCount:E,nextPage:D,canNextPage:T,loading:A})]})}},306:(e,t,a)=>{a.d(t,{A:()=>r});var n=a(127);const r=async e=>{let{auth:t,url:a,sql:r,signal:s}=e;return(0,n.A)({operation:{operation:"sql",sql:r},auth:t,url:a,signal:s})}},5488:(e,t,a)=>{a.d(t,{A:()=>j});var n=a(9950),r=a(1942),s=a.n(r),o=a(8738),l=a.n(o),i=a(1497);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var d=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u.apply(this,arguments)}function h(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function g(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var a,n=b(e);if(t){var r=b(this).constructor;a=Reflect.construct(n,arguments,r)}else a=n.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,a)}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}var x={children:s().node,type:s().string,size:s().oneOfType([s().number,s().string]),bsSize:s().string,valid:s().bool,invalid:s().bool,tag:i.Wx,innerRef:s().oneOfType([s().object,s().func,s().string]),plaintext:s().bool,addon:s().bool,className:s().string,cssModule:s().object},v=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}(o,e);var t,a,r,s=p(o);function o(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(t=s.call(this,e)).getRef=t.getRef.bind(m(t)),t.focus=t.focus.bind(m(t)),t}return t=o,(a=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,a=e.cssModule,r=e.type,s=void 0===r?"text":r,o=e.bsSize,c=e.valid,g=e.invalid,f=e.tag,p=e.addon,m=e.plaintext,b=e.innerRef,x=h(e,d),v=["switch","radio","checkbox"].indexOf(s)>-1,j="select"===s,y="range"===s,w=f||(j||"textarea"===s?s:"input"),C="form-control";m?(C="".concat(C,"-plaintext"),w=f||"input"):y?C="form-range":j?C="form-select":v&&(C=p?null:"form-check-input"),x.size&&/\D/g.test(x.size)&&((0,i.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),o=x.size,delete x.size);var N=(0,i.qO)(l()(t,g&&"is-invalid",c&&"is-valid",!!o&&(j?"form-select-".concat(o):"form-control-".concat(o)),C),a);return("input"===w||f&&"function"===typeof f)&&(x.type="switch"===s?"checkbox":s),x.children&&!m&&"select"!==s&&"string"===typeof w&&"select"!==w&&((0,i.mc)('Input with a type of "'.concat(s,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete x.children),n.createElement(w,u({},x,{ref:b,className:N,"aria-invalid":g}))}}])&&g(t.prototype,a),r&&g(t,r),Object.defineProperty(t,"prototype",{writable:!1}),o}(n.Component);v.propTypes=x;const j=v}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[374],{3888:(e,a,s)=>{s.r(a),s.d(a,{default:()=>$});var t=s(9950),r=s(5023),l=s(4084),i=s(8156),n=s(7176),d=s(6114),c=s(3452),o=s(8429),h=s(9163),u=s.n(h),m=s(6713),f=s(7348),b=s(9435),p=s(5269),j=s(5553),x=s(127),_=s(3628),A=s(3150),k=s(4414);const $=function(e){let{newEntityAttributes:a,hashAttribute:s}=e;const{customer_id:h,schema:$,table:N,hash:g,action:y,compute_stack_id:v}=(0,o.g)(),w=decodeURIComponent($),C=decodeURIComponent(N),S=decodeURIComponent(g),I=(0,f.MW)(),{state:O}=(0,o.zy)(),T=(0,o.Zp)(),D=(0,m.O$)(p.A,(e=>e.auth)),E=(0,m.O$)(p.A,(e=>e.url)),F=(0,m.O$)(j.A,(e=>e.theme)),R=(0,t.useRef)(null),[U,J]=(0,t.useState)("{}"),[V,M]=(0,t.useState)(),[Y,z]=(0,t.useState)(!0),[H,P]=(0,t.useState)(!1),[W,Z]=(0,t.useState)(!1),q=`/o/${h}/i/${v}/browse/${w}/${C}`,B=async e=>{if(e.preventDefault(),Y||I.error("Please insert valid JSON to proceed"),!y||!Y)return!1;P(!0);const a=JSON.parse(U),s={operation:{operation:"edit"===y?"update":"insert",schema:w,table:C,records:"edit"!==y&&Array.isArray(a)?a:[a]},auth:D,url:E},{error:t,message:r}=await(0,x.A)(s);return t?(I.error(r),P(!1)):(p.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>T(`/o/${h}/i/${v}/browse/${w}/${C}`)),1e3))};return(0,t.useEffect)((()=>{var e,a;null!==(e=R.current)&&void 0!==e&&null!==(a=e.editor)&&void 0!==a&&a.setTheme&&R.current.editor.setTheme("dark"===F?"vs-dark":"light")}),[F]),u()((()=>{a||T(q)}),[]),u()((async()=>{if("edit"===y){let a;null!==O&&void 0!==O&&O.hashValue?a=[O.hashValue]:(e=S,a=`${parseFloat(e)}`===e?[`${S}`,parseInt(S,10)]:[S]);const t=await(0,x.A)({operation:{operation:"search_by_hash",schema:w,table:C,hash_values:a,get_attributes:["*"],onlyIfCached:!0,noCacheStore:!0},auth:D,url:E}),[r]=t;if(r){const e=r[s],a=r.__createdtime__,t=r.__updatedtime__;delete r.__createdtime__,delete r.__updatedtime__,delete r[s];const l={[s]:e,...r,__createdtime__:a,__updatedtime__:t};J(JSON.stringify(l,null,4))}else T(q),I.error("Unable to find record with that hash_attribute")}else J(JSON.stringify(a||{},null,4));var e}),[S]),(0,k.jsxs)(b.tH,{onError:(e,a)=>(0,_.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:A.A,children:[(0,k.jsxs)("span",{className:"floating-card-header",children:[w," ",C&&">"," ",C," ","add"===y?"> add new":S?`> edit > ${S}`:"","\xa0"]}),(0,k.jsx)(l.A,{className:"my-3",children:(0,k.jsxs)(i.A,{children:[(0,k.jsx)("ul",{className:"text-small",children:"add"===y&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("li",{children:['The hash_attribute for this table is "',(0,k.jsx)("b",{children:s}),'", and will auto-generate. You may manually add it if you want to specify its value.']}),(0,k.jsxs)("li",{children:[(0,k.jsx)("b",{children:"You may paste in an array"})," if you want to add more than one record at a time."]})]})}),(0,k.jsx)(l.A,{className:"mb-2 json-editor-holder",children:(0,k.jsx)(i.A,{children:(0,k.jsx)(r.Ay,{height:"350px",language:"json",value:U,theme:"vs-dark",onValidate:e=>{z(0===e.length)},onChange:e=>{J(e)},onMount:(e,a)=>{R.current=a}})})}),(0,k.jsxs)(n.A,{children:[(0,k.jsx)(d.A,{md:"4",className:"mt-2",children:V?(0,k.jsx)("div",{className:"pt-2",children:"Delete this record?"}):(0,k.jsx)(c.A,{disabled:H||W,id:"backToTable",block:!0,color:"black",onClick:()=>T(`/o/${h}/i/${v}/browse/${w}/${C}`),children:(0,k.jsx)("i",{className:"fa fa-chevron-left"})})}),"add"===y?(0,k.jsx)(d.A,{md:"8",children:(0,k.jsx)(c.A,{disabled:H||!Y,id:"addEditItem",className:"mt-2",onClick:B,block:!0,color:"success",children:(0,k.jsx)("i",{className:"fa "+(H?"fa-spinner fa-spin":"fa-save")})})}):V?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(d.A,{md:"4",className:"mt-2",children:(0,k.jsx)(c.A,{disabled:H||W,id:"cancelDelete",block:!0,color:"black",onClick:()=>M(!1),children:(0,k.jsx)("i",{className:"fa fa-ban"})})}),(0,k.jsx)(d.A,{md:"4",children:(0,k.jsx)(c.A,{disabled:H||W,id:"deleteRecord",className:"mt-2",onClick:async e=>{if(e.preventDefault(),!y)return!1;Z(!0);const{error:a,message:s}=await(0,x.A)({operation:{operation:"delete",schema:w,table:C,hash_values:[O.hashValue]},auth:D,url:E});return a?(I.error(s),M(!1),Z(!1)):setTimeout((()=>T(`/o/${h}/i/${v}/browse/${w}/${C}`)),100)},block:!0,color:"success",children:(0,k.jsx)("i",{className:"fa "+(W?"fa-spinner fa-spin":"fa-check")})})})]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(d.A,{md:"4",className:"mt-2",children:(0,k.jsx)(c.A,{disabled:H||W,id:"confirmDelete",block:!0,color:"danger",onClick:()=>M(S),children:(0,k.jsx)("i",{className:"fa fa-trash"})})}),(0,k.jsx)(d.A,{md:"4",children:(0,k.jsx)(c.A,{disabled:H||!Y,id:"addEditItem",className:"mt-2",onClick:B,block:!0,color:"success",children:(0,k.jsx)("i",{className:"fa "+(H?"fa-spinner fa-spin":"fa-save")})})})]})]})]})})]})}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[302],{4410:(e,t,n)=>{n.r(t),n.d(t,{default:()=>xt});var a=n(9950),s=n(6713),r=n(135),l=n(5269),o=n(7176),i=n(6114),c=n(4084),u=n(8156),d=n(8429),p=n(9435),m=n(5488),h=n(3452),f=n(9163),g=n.n(f),x=n(5379),j=n(127);const v=async e=>{let{auth:t,url:n}=e;return(0,j.A)({operation:{operation:"custom_functions_status"},auth:t,url:n,timeout:5e3})},b=async e=>{let{auth:t,url:n}=e;return(0,j.A)({operation:{operation:"get_custom_functions"},auth:t,url:n})};function y(e,t,n){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e&&e.entries){var s,r,l;if(t===n)e.path=n,e.key=null!==(s=null===(r=(l=crypto).randomUUID)||void 0===r?void 0:r.call(l))&&void 0!==s?s:Math.random().toString().slice(2);for(const s of e.entries){var o,i,c;const e=`${t}/${s.name}`,[,r]=e.split("/");s.project=r,s.path=e,s.key=null!==(o=null===(i=(c=crypto).randomUUID)||void 0===i?void 0:i.call(c))&&void 0!==o?o:Math.random().toString().slice(2),s.readOnly=a||!!s.package,y(s,e,n,s.readOnly)}}}const N=async e=>{let{auth:t,url:n}=e;const a=await(0,j.A)({operation:{operation:"get_components"},auth:t,url:n});return y(a,a.name,a.name,!1),a},A=async e=>{let{auth:t,url:n}=e;const{is_enabled:a,port:s,directory:r,error:o,message:i}=await v({auth:t,url:n}),c=await N({auth:t,url:n}),u={is_enabled:a,port:s,endpoints:a?await b({auth:t,url:n}):{},directory:r,error:o,message:i,fileTree:c};return l.A.update((e=>{e.custom_functions=u})),{custom_functions:u}};var k=n(4414);const C=function(){const e=(0,s.O$)(l.A,(e=>e.auth)),t=(0,s.O$)(l.A,(e=>e.url)),n=(0,s.O$)(l.A,(e=>e.is_local)),r=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.custom_functions)||void 0===t?void 0:t.port})),[d,p]=(0,a.useState)({}),[f,v]=(0,a.useState)({port:r||9926});return g()((async()=>{const{submitted:n}=d;if(n){const{port:n}=f;if(n)if((0,x.A)(n)){const a=await(async e=>{let{auth:t,url:n,port:a}=e;return(0,j.A)({operation:{operation:"configure_cluster",CUSTOM_FUNCTIONS_PORT:parseInt(a,10)},auth:t,url:n})})({auth:e,url:t,port:n});a.error?p({error:a.message}):A({auth:e,url:t})}else p({error:"port must be a valid number"});else p({error:"All fields are required"})}}),[d]),g()((()=>{d.submitted||p({})}),[f]),n&&!r?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"text-nowrap mb-3",children:"Custom Functions Port"}),(0,k.jsx)(m.A,{id:"custom_api_port",onChange:e=>v({...f,port:e.target.value}),className:"mb-3 "+(d.error&&!f.port?"error":""),type:"number",title:"custom api port",placeholder:"9926",value:f.port}),(0,k.jsx)(h.A,{color:"success",block:!0,onClick:()=>p({submitted:!0}),children:"Set Custom API Port"}),!!d.error&&(0,k.jsx)(c.A,{className:"mt-3 error",children:(0,k.jsx)(u.A,{children:d.error})})]}):(0,k.jsxs)(o.A,{children:[(0,k.jsxs)(i.A,{xs:"10",children:["Custom Functions Port ",n?r:"Set"]}),(0,k.jsx)(i.A,{xs:"2",className:"text-end",children:(0,k.jsx)("i",{className:"fa fa-check-circle fa-lg text-success"})})]})};var w=n(4834),_=n(2010),S=n(6177);const F=function(e){let{setConfiguring:t}=e;const{compute_stack_id:n}=(0,d.g)(),r=(0,s.O$)(l.A,(e=>e.auth),[n]),o=(0,s.O$)(l.A,(e=>e.url),[n]),i=(0,s.O$)(l.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[n]),[c,u]=(0,a.useState)({});return g()((async()=>{if(c.submitted){if("nats"===i)await(0,w.A)({auth:r,url:o,customFunctions_enabled:!0});else{const e=await(0,S.A)({auth:r,url:o});await(0,w.A)({auth:r,url:o,operation:"configure_cluster",CUSTOM_FUNCTIONS:!0,CLUSTERING:Boolean(null===e||void 0===e?void 0:e.config_cluster_user),CLUSTERING_PORT:null===e||void 0===e?void 0:e.config_cluster_port,CLUSTERING_USER:null===e||void 0===e?void 0:e.config_cluster_user,NODE_NAME:null===e||void 0===e?void 0:e.nodeName})}window._kmq&&window._kmq.push(["record","enabled custom functions"]),(0,_.A)({auth:r,url:o}),setTimeout((()=>t(!0)),0)}}),[c.submitted]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsx)(h.A,{color:"success",disabled:c.submitted,block:!0,onClick:()=>u({submitted:!0}),children:c.submitted?(0,k.jsx)("i",{className:"fa fa-spinner fa-spin text-white"}):"Enable Custom Functions"})]})};var P=n(6165),O=n(3150),$=n(3628);const E=function(e){let{setConfiguring:t}=e;const{compute_stack_id:n}=(0,d.g)(),a=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.custom_functions)||void 0===t?void 0:t.port}),[n]);return(0,k.jsxs)(o.A,{id:"functions",children:[(0,k.jsxs)(i.A,{xl:"3",lg:"4",md:"5",xs:"12",children:[(0,k.jsx)("span",{className:"floating-card-header",children:"enable custom functions"}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(p.tH,{onError:(e,t)=>(0,$.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:O.A,children:[(0,k.jsx)(C,{}),!!a&&(0,k.jsx)(F,{setConfiguring:t})]})})})]}),(0,k.jsx)(i.A,{xl:"9",lg:"8",md:"7",xs:"12",children:a?(0,k.jsx)(P.A,{headline:"Enable Custom Functions",description:"Click the button at left to enable Custom Functions. NOTE: We'll restart the instance when you click this button.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):(0,k.jsx)(P.A,{headline:"Set Your Custom Functions Server Port",description:"If your instance is behind a firewall, you'll need to ensure this port is accessible by other instances if you want to access the API.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})})})]})};var D=n(7348),I=n(5553);const T=async e=>{let{auth:t,url:n,project:a,file:s}=e;return(0,j.A)({operation:{operation:"get_component_file",project:a,file:s},auth:t,url:n})},R=async e=>{let{auth:t,url:n,project:a,file:s,payload:r}=e;return(0,j.A)({operation:{operation:"set_component_file",project:a,file:s,payload:r},auth:t,url:n})},z=async e=>{let{auth:t,url:n,project:a,file:s}=e;return(0,j.A)({operation:{operation:"drop_component",project:a,file:s},auth:t,url:n})},U=async e=>{let{auth:t,url:n,project:a,packageUrl:s,payload:r}=e;return r?(0,j.A)({auth:t,url:n,operation:{operation:"deploy_component",project:a,payload:r}}):(0,j.A)({auth:t,url:n,operation:{operation:"deploy_component",project:a,package:s}})};var L=n(1534),W=n(4319);const M=(0,n(6997).A)("editorCache");var q=n(8738),B=n.n(q);function H(){return(0,k.jsx)(c.A,{className:"file-browser-scroll-container",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"p-4",children:["You have no HarperDB applications yet. ",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),'Click "',(0,k.jsx)("i",{className:"fas fa-plus"}),' app" above to create one!',(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"See the"," ",(0,k.jsx)("a",{className:"docs-link",href:"https://docs.harperdb.io",target:"_blank",rel:"noreferrer",children:"documentation"})," ","for more info on HarperDB Applications."]})})})}function G(e,t){const n=+Boolean(e.entries),a=+Boolean(t.entries);return n===a?e.name.localeCompare(t.name):a-n}function V(){return(0,k.jsx)("i",{className:B()("package-icon fas fa-cube")})}function K(e){let{name:t,url:n,onPackageSelect:s,selectedPackage:r}=e;const[l,o]=(0,a.useState)(Boolean(r)&&t===(null===r||void 0===r?void 0:r.name));return(0,a.useEffect)((()=>{o(r&&r.name===t)}),[r,t]),(0,k.jsxs)("button",{type:"button",onClick:e=>{s(l?null:{name:t,url:n,event:e}),o(!l)},className:B()("package",{"package-selected":l}),onKeyDown:()=>{},children:[(0,k.jsx)(V,{}),(0,k.jsx)("span",{className:"package-text",children:t})]})}function Z(e){let{directoryEntry:t,selectedFile:n,selectedFolder:a,onFileSelect:s,onFolderSelect:r,Icon:l}=e;const o=Boolean(t.entries);const i=t.path===n,c=t.path===(null===a||void 0===a?void 0:a.path);return(0,k.jsxs)("button",{type:"button",onClick:function(e){const n=e.target.classList.contains("rename-file")||e.target.classList.contains("deploy-project");o?c&&n||r(c?null:t):s(i?null:t)},className:B()("file",{"file-selected":i,"folder-selected":c}),onKeyDown:function(){},children:[(0,k.jsx)(l,{className:"filename-icon"}),(0,k.jsx)("span",{className:"filename-text",children:t.name})]})}function Y(e){let{directoryEntry:t,userOnSelect:n,onFolderSelect:s,onDeployProject:r,onFileSelect:l,onPackageSelect:o,onFileRename:i,selectedFile:c,selectedFolder:u,selectedPackage:d}=e;const[p,m]=(0,a.useState)(!0),h=[...t.entries||[]].sort(G),f=(g=t.name)&&[...g].includes(".")?g.split(".").slice(-1)[0]:null;var g;let x;return x=2===t.path.split("/").length?()=>(0,k.jsx)("i",{className:B()("project-icon fas fa-file-code")}):t.entries?()=>function(e){let{toggleClosed:t}=e;return(0,k.jsx)("i",{onClick:t,onKeyDown:t,className:B()("folder-icon fas fa-folder-open")})}({isOpen:p,toggleClosed:()=>m(!p)}):()=>function(e){let{extension:t}=e;switch(t){case"js":return(0,k.jsx)("i",{className:B()("file-icon filetype-js fab fa-js")});case"yaml":return(0,k.jsx)("i",{className:B()("file-icon filetype-yaml fas fa-cog")});default:return(0,k.jsx)("i",{className:B()("file-icon filetype-unknown far fa-file-alt")})}}({extension:f}),(0,k.jsxs)(k.Fragment,{children:["components"!==t.name?(0,k.jsx)("li",{className:B()("folder-container"),children:t.package?(0,k.jsx)(K,{selectedPackage:d,onPackageSelect:o,name:t.name,url:t.package}):(0,k.jsx)(Z,{Icon:x,selectedFile:c,selectedFolder:u,selectedPackage:d,directoryEntry:t,onDeployProject:r,onFileRename:()=>{i(t)},onFileSelect:l,onFolderSelect:s,userOnSelect:n})},t.key):null,h.map((e=>(0,k.jsx)("li",{children:(0,k.jsx)("ul",{className:B()("folder",{"folder-contents-open":!0,"folder-contents-closed":!1}),children:(0,k.jsx)(Y,{selectedFile:c,selectedFolder:u,selectedPackage:d,directoryEntry:e,onFileSelect:l,onDeployProject:r,onFileRename:i,onFolderSelect:s,onPackageSelect:o,userOnSelect:n})})},e.key)))]})}const J=function(e){var t;let{files:n,userOnSelect:a,onFileSelect:s,onPackageSelect:r,onDeployProject:l,onFileRename:o,onFolderSelect:i,selectedFile:d,selectedFolder:p,selectedPackage:m}=e;return null!==n&&void 0!==n&&null!==(t=n.entries)&&void 0!==t&&t.length?(0,k.jsx)(c.A,{className:"file-browser-scroll-container",children:(0,k.jsx)(u.A,{children:(0,k.jsx)("ul",{className:"file-browser",children:(0,k.jsx)(Y,{selectedFile:d,selectedFolder:p,selectedPackage:m,onFileSelect:s,onFileRename:o,onFolderSelect:i,onDeployProject:l,onPackageSelect:r,userOnSelect:a,directoryEntry:n})})})}):(0,k.jsx)(H,{})};var Q=n(5023);Q.wG.init().then((e=>{e.editor.defineTheme("hdb",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#111111"}})}));const X={js:"javascript",yaml:"yaml",ts:"typescript",json:"json",md:"markdown",html:"html",css:"css",graphql:"graphql"};const ee=function(e){let{active:t,file:n,onFileChange:s}=e;const[r,l]=(0,a.useState)("javascript");return(0,a.useEffect)((()=>{const e=function(e){var t;const n=null===(t=e||"")||void 0===t?void 0:t.split(".");return n.length>1?n.slice(-1)[0]:""}(null===n||void 0===n?void 0:n.name);l(X[e]||"plaintext")}),[n]),t?(0,k.jsx)(Q.Ay,{height:"100%",language:r,value:(null===n||void 0===n?void 0:n.content)||"",theme:"hdb",onChange:s,options:{readOnly:null===n||void 0===n?void 0:n.readOnly,automaticLayout:!0,minimap:{enabled:!1}}}):null};function te(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Create a new app",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsxs)("span",{className:"ms-1",children:[" ",a]})]})}function ne(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Add a folder",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsx)("span",{className:"ms-1 d-none d-lg-inline-block",children:a})]})}function ae(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:n,className:s,title:"Delete selected app or folder",children:[(0,k.jsx)("i",{className:"fas fa-minus"}),a&&(0,k.jsx)("span",{className:"ms-1 d-none d-lg-inline-block",children:a})]})}function se(e){let{onClick:t,disabled:n,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Add a new file",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsxs)("span",{className:"ms-1 d-none d-lg-inline-block",children:[" ",a]})]})}function re(e){let{onClick:t,disabled:n,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:n,className:s,title:"Delete selected file",children:[(0,k.jsx)("i",{className:"fas fa-minus"}),a&&(0,k.jsxs)("span",{className:"ms-1 d-none d-lg-inline-block",children:[" ",a]})]})}const le=function(e){let{children:t}=e;return(0,k.jsx)("ul",{className:"file-menu text-nowrap",children:t.map((e=>{var t,n,a;return e&&(0,k.jsx)("li",{className:"file-menu-item",children:e},null!==(t=null===(n=(a=crypto).randomUUID)||void 0===n?void 0:n.call(a))&&void 0!==t?t:Math.random().toString().slice(2))}))})};function oe(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Import external component or application",children:[(0,k.jsx)("i",{className:"fas fa-share-alt"}),a&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:a})]})}function ie(e){let{onClick:t,savingFile:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"save file to instance",children:[(0,k.jsx)("i",{className:B()("fas",{"fa-save":!n,"fa-spinner":n,"fa-spin":n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function ce(e){let{onClick:t,restarting:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"Click to restart your instance",children:[(0,k.jsx)("i",{className:B()("fas",{"fa-sync":!n,"fa-spinner":n,"fa-spin":n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function ue(e){let{onClick:t,restartAfterSave:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"Toggle whether saving a file restarts the application",children:[(0,k.jsx)("i",{className:B()("fa",{"fa-toggle-on":n,"fa-toggle-off":!n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function de(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s="",loading:r}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"revert file",children:[(0,k.jsx)("i",{className:B()("revert-file fas",{disabled:n,"fa-history":!r,"fa-spinner":r,"fa-spin":r})}),a&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:a})]})}function pe(e){let{children:t}=e;return(0,k.jsx)("ul",{className:"editor-menu",children:t.map((e=>{var t,n,a;return e&&(0,k.jsx)("li",{className:"editor-menu-item",children:e},null!==(t=null===(n=(a=crypto).randomUUID)||void 0===n?void 0:n.call(a))&&void 0!==t?t:Math.random().toString().slice(2))}))})}function me(e){let{active:t,AddProjectButtonClick:n,InstallPackageButtonClick:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Add A New Application"}),(0,k.jsx)(te,{text:"Create A New Application Using The Default Template",extraClasses:"btn btn-block btn-success",onClick:n}),(0,k.jsx)(oe,{text:"Import Or Deploy A Remote Application Package",extraClasses:"btn btn-block btn-outline-success mt-2",onClick:a})]}):null}function he(e){let{active:t,type:n}=e;return t?(0,k.jsxs)("div",{className:"content-window text-nowrap",children:[(0,k.jsx)("i",{className:"fa fa-exclamation-triangle mt-5 pt-5"}),"\xa0",(0,k.jsxs)("span",{children:["You have selected a ",n,". Nothing to see here!"]})]}):null}var fe=n(9690);function ge(e){return/^[a-zA-Z0-9-_]+$/.test(e)}function xe(e){if(!e)return null;const t={type:null,user:null,repo:null,url:null,package:null,tag:null};if(e.url.match("://"))t.url=e.url,t.type="url";else if(e.url.match("semver:")){const[n,a,s]=e.url.split(/[/#]/);t.type="github",t.user=n,t.repo=a,t.tag=s.replace("semver:","")}else{t.type="npm";const n=e.url.split("/");if(1===n.length){const[e,a]=n[0].split("@");t.package=e,t.tag=a}else if(2===n.length){const[,e]=n,[a,s]=e.split("@");t.package=a,t.tag=s}}return t}function je(e,t,n){var s=this,r=(0,a.useRef)(null),l=(0,a.useRef)(0),o=(0,a.useRef)(null),i=(0,a.useRef)([]),c=(0,a.useRef)(),u=(0,a.useRef)(),d=(0,a.useRef)(e),p=(0,a.useRef)(!0);d.current=e;var m="undefined"!=typeof window,h=!t&&0!==t&&m;if("function"!=typeof e)throw new TypeError("Expected a function");t=+t||0;var f=!!(n=n||{}).leading,g=!("trailing"in n)||!!n.trailing,x="maxWait"in n,j="debounceOnServer"in n&&!!n.debounceOnServer,v=x?Math.max(+n.maxWait||0,t):null;(0,a.useEffect)((function(){return p.current=!0,function(){p.current=!1}}),[]);var b=(0,a.useMemo)((function(){var e=function(e){var t=i.current,n=c.current;return i.current=c.current=null,l.current=e,u.current=d.current.apply(n,t)},n=function(e,t){h&&cancelAnimationFrame(o.current),o.current=h?requestAnimationFrame(e):setTimeout(e,t)},a=function(e){if(!p.current)return!1;var n=e-r.current;return!r.current||n>=t||n<0||x&&e-l.current>=v},b=function(t){return o.current=null,g&&i.current?e(t):(i.current=c.current=null,u.current)},y=function e(){var s=Date.now();if(a(s))return b(s);if(p.current){var o=t-(s-r.current),i=x?Math.min(o,v-(s-l.current)):o;n(e,i)}},N=function(){if(m||j){var d=Date.now(),h=a(d);if(i.current=[].slice.call(arguments),c.current=s,r.current=d,h){if(!o.current&&p.current)return l.current=r.current,n(y,t),f?e(r.current):u.current;if(x)return n(y,t),e(r.current)}return o.current||n(y,t),u.current}};return N.cancel=function(){o.current&&(h?cancelAnimationFrame(o.current):clearTimeout(o.current)),l.current=0,i.current=r.current=c.current=o.current=null},N.isPending=function(){return!!o.current},N.flush=function(){return o.current?b(Date.now()):u.current},N}),[f,x,t,v,g,h,m,j]);return b}function ve(e,t){return e===t}function be(e,t){return t}function ye(e,t,n){var s=n&&n.equalityFn||ve,r=(0,a.useReducer)(be,e),l=r[0],o=r[1],i=je((0,a.useCallback)((function(e){return o(e)}),[o]),t,n),c=(0,a.useRef)(e);return s(c.current,e)||(i(e),c.current=e),s(l,e)&&i.cancel(),[l,i]}function Ne(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)((null===t||void 0===t?void 0:t.user)||""),[l]=ye(s,300),[o,i]=(0,a.useState)((null===t||void 0===t?void 0:t.repo)||""),[c]=ye(o,300),[u,d]=(0,a.useState)([]),[p,h]=(0,a.useState)(!1),[f,g]=(0,a.useState)((null===t||void 0===t?void 0:t.tag)||""),[x,j]=(0,a.useState)(""),[,v]=(0,a.useState)(!1),[b,y]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r((null===t||void 0===t?void 0:t.user)||""),i((null===t||void 0===t?void 0:t.repo)||""),d(null!==t&&void 0!==t&&t.tag?[null===t||void 0===t?void 0:t.tag]:[]),g((null===t||void 0===t?void 0:t.tag)||"")}),[t]),(0,a.useEffect)((()=>{l&&c?(v(!0),async function(e,t){try{const n=await fetch(`https://api.github.com/repos/${e}/${t}`),a=await n.json();return n.status<400?a.name:null}catch(n){return null}}(s,c).then((e=>{e?(j(e),y(!0),async function(e,t){const n=await fetch(`https://api.github.com/repos/${e}/${t}/git/refs/tags`);if(n.status<400)return(await n.json()).map((e=>e.ref.split("/").slice(-1)[0]));return[]}(s,c).then((e=>{v(!1),h(!0),d(e)}))):(v(!1),y(!1),j(""),d([]))})).catch((()=>{v(!1)}))):(y(!1),v(!1),d([]),g(""))}),[l,c,s]),(0,a.useEffect)((()=>{if(s&&o&&x){n(f?`${s}/${o}#semver:${f}`:`${s}/${o}`)}else n("")}),[x,f,s,n,o]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(m.A,{title:"Github Organization",className:"mt-2 form-control",valid:l.length>0&&c.length>0&&b,placeholder:"Github Organization",onChange:e=>r(e.target.value),value:s}),(0,k.jsx)(m.A,{title:"Github Repo",className:"mt-2",placeholder:"Github Repo",onChange:e=>i(e.target.value),value:o}),(null===u||void 0===u?void 0:u.length)>0&&(0,k.jsx)(fe.Ay,{className:"react-select-container github-tag-select mt-2",classNamePrefix:"react-select",isDisabled:!x,isSearchable:!0,placeholder:"Choose a tag",onChange:e=>g(e.value),options:u.map((e=>({label:e,value:e})))})]})}function Ae(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)(""),[l]=ye(s,300),[o,i]=(0,a.useState)(""),[c,u]=(0,a.useState)(""),[d,p]=(0,a.useState)(""),[m,h]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r((null===t||void 0===t?void 0:t.package)||"")}),[t]),(0,a.useEffect)((function(){if(d){n(c?`${d}@${c}`:d)}else n("")}),[d,c,n]),(0,a.useEffect)((function(){l?(h(!0),async function(e){var t;const n=await fetch(`https://registry.npmjs.org/-/v1/search?text=${e}`),a=(await n.json()).objects.find((t=>t.package.name===e));return null===a||void 0===a||null===(t=a.package)||void 0===t?void 0:t.name}(l).then((e=>{h(!1),g(!!e),p(e),e&&async function(e){const t=await fetch(`https://registry.npmjs.org/${e}`);return(await t.json())["dist-tags"]}(e).then((e=>{i(e),u(null)})).catch((e=>{throw e}))})).catch((()=>{h(!1)}))):(p(null),i(null),u(null))}),[l]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("div",{className:"input-group",children:[(0,k.jsx)("input",{className:"mt-2 form-control",title:"enter an npm package specifier",value:s,placeholder:"Enter the [@scope]/package",onChange:function(e){r(e.target.value)}}),(0,k.jsx)("div",{className:"input-group-append",children:(0,k.jsx)("i",{className:B()("input-group-text fa mt-2",{"fa-spinner fa-spin loading":m,"fa-check found":l.length>0&&f,"fa-times not-found":l.length>0&&!(m||f),"fa-check not-searching":0===l.length})})})]}),(0,k.jsx)(fe.Ay,{className:"react-select-container mt-2",classNamePrefix:"react-select",isDisabled:!s,placeholder:"Choose a tag",disabled:!o,onChange:function(e){let{value:t}=e;u(t)},options:Object.entries(o||[]).map((e=>{let[t,n]=e;return{label:`${t} (${n})`,value:t}}))})]})}function ke(e){return function(e){try{return Boolean(new URL(e))}catch(t){return!1}}(e)&&(-1!==e.indexOf(".tar")||-1!==e.indexOf(".tar.gz")||-1!==e.indexOf(".tgz"))}function Ce(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)((null===t||void 0===t?void 0:t.url)||""),[l,o]=(0,a.useState)(ke(null===t||void 0===t?void 0:t.url));return(0,a.useEffect)((()=>{n(l?s:"")}),[s,l,n]),(0,k.jsx)(m.A,{type:"text",id:"tarball-url",title:"URL to gzipped tarball",className:B()("package-url-input mt-2",{invalid:!l}),value:s,onChange:e=>{o(0===e.target.value.length||ke(e.target.value)),r(e.target.value)},placeholder:"URL to gzipped tarball"})}var we=n(5996);function _e(e){let{selectedPackage:t,onConfirm:n,onCancel:r,deployTargets:o,active:i}=e;const c=!1,[u,d]=(0,a.useState)(Boolean(t)),[p,f]=(0,a.useState)(xe(t)),[g,x]=(0,a.useState)((null===p||void 0===p?void 0:p.type)||c),[j,v]=(0,a.useState)((null===t||void 0===t?void 0:t.name)||""),[b,y]=(0,a.useState)(!0),[N,A]=(0,a.useState)(""),[C,w]=(0,a.useState)(!1),_=(0,s.O$)(l.A,(e=>e.auth)),S=(0,s.O$)(l.A,(e=>e.url)),[F,P]=(0,a.useState)([{isCurrentInstance:!0,auth:_,instance:{url:S,instance_name:"This Instance"}}]);function O(){v(""),y(!1),x(!1),P([]),r()}return(0,a.useEffect)((function(){const e=xe(t);v((null===t||void 0===t?void 0:t.name)||""),f(xe(t)),x((null===e||void 0===e?void 0:e.type)||c),d(Boolean(t))}),[t,c]),(0,a.useEffect)((function(){y(ge(j))}),[j]),i?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Import Remote App Package"}),(0,k.jsx)(m.A,{valid:b&&j.length>0,title:"enter a name for this package",value:j,placeholder:"Application Name",onChange:e=>{v(e.target.value),y(ge(e.target.value))}}),!we.A.is_local_studio&&(0,k.jsx)(fe.Ay,{className:"react-select-container package-install-deploy-targets-dropdown mt-2",classNamePrefix:"react-select",isSearchable:!0,isMulti:!0,placeholder:"Choose your deploy targets",onChange:e=>{const t=e.map((e=>e.value)),n=o.filter((e=>t.includes(e.instance.url)));P(n)},options:o.map((e=>({label:e.instance.instance_name,value:e.instance.url})))}),(0,k.jsx)(fe.Ay,{className:"react-select-container mt-2",classNamePrefix:"react-select",placeholder:"How would you like to fetch this package?",onChange:function(e){let{value:t}=e;x(t)},options:[{label:"A Public GitHub Repo",value:"github"},{label:"Install a gzipped .tar file from a URL",value:"url"}]}),!b&&j.length>0&&(0,k.jsxs)("span",{className:"text-danger text-center mt-3",children:[(0,k.jsx)("i",{className:"fa fa-exclamation-triangle"}),(0,k.jsx)("br",{}),(0,k.jsx)("span",{className:"mt-2",children:"Project name limited to alphanumeric, dashes, & underscores."})]}),b&&F.length>0&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"mt-2"}),"npm"===g&&(0,k.jsx)(Ae,{projectName:j,installed:u,pkg:p,setPackageSpec:A}),"github"===g&&(0,k.jsx)(Ne,{projectName:j,installed:u,pkg:p,setPackageSpec:A}),"url"===g&&(0,k.jsx)(Ce,{projectName:j,installed:u,pkg:p,setPackageSpec:A})]}),b&&F.length>0&&g?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{onClick:async()=>{w(!0);try{await n(j,N,F)}catch(e){w(!1)}w(!1)},className:B()("btn btn-block btn-success mt-3",{loading:C}),disabled:!ge(j)||!N||!F.length,children:C?(0,k.jsx)("i",{className:"install-package-status-icon fa fa-spinner fa-spin"}):"Install Package"}),(0,k.jsx)(h.A,{onClick:O,className:"btn btn-block btn-outline-success mt-2",children:"Cancel"})]}):(0,k.jsx)(h.A,{onClick:O,className:"btn btn-block btn-outline-success mt-3",children:"Cancel"})]}):null}function Se(e){let{className:t,onClick:n,disabled:s,children:r}=e;const[l,o]=(0,a.useState)(!1);return(0,k.jsx)("button",{disabled:s,type:"button",onClick:async()=>{o(!0);try{await n(),o(!1)}catch(e){o(!1)}},className:B()(`${t} button-with-loader`,{loading:l}),children:l?(0,k.jsx)("i",{className:"button-with-loader-icon fas fa-spinner fa-spin"}):r})}function Fe(e){let{onCancel:t,onConfirm:n,onEnter:s,value:r,type:l,validate:o=()=>!0}=e;const[i,c]=(0,a.useState)(r||""),[u,d]=(0,a.useState)(!1);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("input",{className:B()("w-100 text-center",{invalid:i.length>0&&!u}),onChange:e=>{c(e.target.value),d(o(e.target.value))},onKeyDown:function(e){"Enter"===e.key?s(e.target.value):"Esc"===e.key&&t()},value:i,placeholder:`name for your new ${l}`,title:`name for your new ${l}`}),(0,k.jsx)("i",{title:"error: name must contain only alphanumeric characters, dashes and underscores.",className:B()("text-danger fa fa-warning",{hidden:u||0===i.length})}),(0,k.jsx)(Se,{disabled:!u,className:"btn btn-success btn-block mt-3",onClick:()=>n(i),children:"OK"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-success btn-block mt-2",onClick:t,children:"Cancel"}),i.length>0&&!u&&(0,k.jsx)("div",{className:"validation-message mt-5",children:"error: name must contain only alphanumeric characters, dashes and underscores."})]})}function Pe(e){let{active:t,onConfirm:n,onCancel:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Default Template Application"}),(0,k.jsx)(Fe,{type:"project",validate:ge,onEnter:n,onConfirm:n,onCancel:a})]}):null}function Oe(e){let{active:t,onConfirm:n,onCancel:a,selectedFolder:s}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Add Folder To ",(0,k.jsx)("span",{className:"text-success",children:s.path.replace("components","")})]}),(0,k.jsx)(Fe,{type:"folder",selectedFolder:s,onEnter:n,onConfirm:n,onCancel:a})]}):null}function $e(e){let{active:t,onConfirm:n,onCancel:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Add A New File"}),(0,k.jsx)(Fe,{type:"file",onEnter:n,onConfirm:n,onCancel:a})]}):null}function Ee(e){let{active:t,selectedFile:n,onConfirm:a,onCancel:s}=e;if(!t)return null;const{path:r}=n,l=r.split("/"),o=l.pop(),i=l.slice(1);return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:o})," File"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsxs)("div",{className:"mt-5",children:["Are you sure you want to delete ",(0,k.jsx)("span",{className:"text-danger",children:o})," from ",(0,k.jsx)("span",{className:"text-danger",children:i.join("/")}),"?"]})]})}function De(e){let{active:t,selectedFolder:n,onConfirm:a,onCancel:s}=e;if(!t)return null;if(!n)return null;const r=n.path.split("/"),l=2===r.length,o=l?null:r.slice(-1)[0];return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:l?null===n||void 0===n?void 0:n.project:o})," ",l?"Project":"Folder"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsx)("div",{className:"mt-5",children:l?(0,k.jsxs)("div",{children:["Are you sure you want to delete project ",(0,k.jsx)("span",{className:"text-danger",children:null===n||void 0===n?void 0:n.project})," ?"]}):(0,k.jsxs)("div",{children:["Are you sure you want to delete the folder ",(0,k.jsx)("span",{className:"text-danger",children:o})," from ",(0,k.jsx)("span",{className:"text-danger",children:null===n||void 0===n?void 0:n.project}),"?"]})})]})}function Ie(e){let{active:t,selectedPackage:n,onConfirm:a,onCancel:s}=e;if(!t)return null;const r=n.name;return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:r})," Package"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsxs)("div",{className:"mt-5",children:["Are you sure you want to delete ",(0,k.jsx)("span",{className:"text-danger",children:r}),"?"]})]})}const Te="DEFAULT_WINDOW",Re="DEFAULT_FOLDER_WINDOW",ze="CODE_EDITOR_WINDOW",Ue="NAME_FILE_WINDOW",Le="NAME_PROJECT_WINDOW",We="NAME_PROJECT_FOLDER_WINDOW",Me="INSTALL_PACKAGE_WINDOW",qe="DELETE_FILE_WINDOW",Be="DELETE_FOLDER_WINDOW",He="DELETE_PACKAGE_WINDOW";function Ge(e){let{children:t}=e;return(0,k.jsx)(c.A,{className:"editor-window",children:(0,k.jsx)(u.A,{children:t})})}const Ve=function(e){var t,n,s,r;let{deployTargets:l,fileTree:c,onFileSave:u,onAddFile:d,onRevertFile:p,onAddProjectFolder:m,onAddProject:h,onFileChange:f,onDeleteFolder:g,onDeleteFile:x,onDeletePackage:j,onDeployProject:v,onFileSelect:b,onInstallPackage:y,restartInstance:N,restartingInstance:A}=e;const[C,w]=(0,a.useState)(null),[_,S]=(0,a.useState)(null),[F,P]=(0,a.useState)(null),[O,$]=(0,a.useState)(Te),[E,D]=(0,a.useState)(null),[I,T]=(0,a.useState)(!0),[R,z]=(0,a.useState)(!1),[U,L]=(0,a.useState)(!1),W=(null===c||void 0===c||null===(t=c.entries)||void 0===t?void 0:t.length)>0,M=Boolean(W&&C),q=Boolean(W&&(C||F)),B=Boolean(C);function H(e,t){$(e),D(t)}function G(){P(null),w(null),S(null)}function V(){H(Te,O)}return(0,k.jsxs)(o.A,{id:"webide",children:[(0,k.jsxs)(i.A,{md:"4",xl:"3",className:"file-browser-outer-container mb-3",children:[(0,k.jsx)("div",{className:"floating-card-header-row",children:(0,k.jsxs)(le,{children:[(0,k.jsx)(te,{onClick:()=>H(Te,O),text:"app"}),(B||q)&&(0,k.jsx)("span",{className:"px-1",children:"|"}),B&&(0,k.jsx)(ne,{disabled:!B,onClick:()=>H(We,O),text:!q&&"folder"}),q&&(0,k.jsx)(ae,{disabled:!q,onClick:()=>{F?H(He,O):C&&H(Be,O)},text:"folder"}),(M||(null===_||void 0===_?void 0:_.path))&&(0,k.jsx)("span",{className:"px-1",children:"|"}),M&&(0,k.jsx)(se,{onClick:()=>H(Ue,O),disabled:!M,text:!(null!==_&&void 0!==_&&_.path)&&"file"}),(null===_||void 0===_?void 0:_.path)&&(0,k.jsx)(re,{disabled:!(null!==_&&void 0!==_&&_.path),onClick:()=>H(qe,O),text:!M&&"file"})]})}),(0,k.jsx)(J,{files:c,root:c.path,selectedFile:null===_||void 0===_?void 0:_.path,selectedFolder:C,selectedPackage:F,onDeployProject:v,onFolderSelect:e=>{G(),w(e),H(e?Re:Te,O)},onPackageSelect:e=>{G(),P(e),H(e?Re:Te,O)},onFileSelect:async e=>{const t=!e;if(G(),t)S(null),H(Te,O);else{const t=await b(e),{content:n,cached:a}=t;S({...e,content:n,cached:a}),H(ze,O)}}})]}),(0,k.jsxs)(i.A,{md:"8",xl:"9",className:"editor-window-container",children:[(0,k.jsxs)(o.A,{className:"floating-card-header-row g-0",children:[(0,k.jsx)(i.A,{className:"text-nowrap",children:_&&(0,k.jsxs)(k.Fragment,{children:[null===_||void 0===_||null===(n=_.path)||void 0===n||null===(s=n.split("/"))||void 0===s||null===(r=s.slice(1))||void 0===r?void 0:r.join(" > ")," ",(0,k.jsxs)("span",{className:"text-grey d-none d-xl-inline-block",children:["| ",(null===_||void 0===_?void 0:_.size)||"..."," bytes | ",null!==_&&void 0!==_&&_.mtime?new Date(_.mtime).toLocaleTimeString():"..."]})]})}),(0,k.jsx)(i.A,{className:"text-nowrap",children:(0,k.jsxs)(pe,{children:[(0,k.jsx)(ie,{savingFile:U,disabled:!(null!==_&&void 0!==_&&_.cached&&O===ze),onClick:async()=>{L(!0),await u(_,I),L(!1)},text:"save"}),(0,k.jsx)(de,{loading:R,disabled:!(null!==_&&void 0!==_&&_.cached&&O===ze),onClick:async()=>{z(!0);try{const e=await p(_),t={..._,content:e,cached:!1};S(t)}finally{z(!1)}},text:"revert"}),(0,k.jsx)("span",{className:"px-1",children:"|"}),(0,k.jsx)(ce,{restarting:A,onClick:N,text:"restart"}),(0,k.jsx)(ue,{restartAfterSave:I,onClick:()=>T(!I),text:"auto"})]})})]}),(0,k.jsxs)(Ge,{children:[(0,k.jsx)(me,{fileTree:c,active:O===Te,AddProjectButtonClick:()=>H(Le,O),InstallPackageButtonClick:()=>{P(null),H(Me,O)}}),(0,k.jsx)(he,{active:O===Re,type:F?"package":C?"folder":"nothing"}),(0,k.jsx)(Pe,{active:O===Le,onConfirm:async function(e){await h(e),H(E,O)},onCancel:V}),(0,k.jsx)(Oe,{projectName:null===C||void 0===C?void 0:C.project,active:O===We,selectedFolder:C,onConfirm:async function(e){await m(e,C),H(E,O)},onCancel:V}),(0,k.jsx)($e,{active:O===Ue,onConfirm:async function(e){const t=await d(e,C);S(t),H(ze,O)},onCancel:V}),(0,k.jsx)(_e,{active:O===Me,onConfirm:async function(e,t,n){await y(e,t,n),P(null),H(Te,O)},onCancel:V,deployTargets:l,selectedPackage:F}),(0,k.jsx)(Ie,{active:O===He,selectedPackage:F,onConfirm:async()=>{await j(F),H(Te,O),G()},onCancel:V}),(0,k.jsx)(De,{active:O===Be,selectedFolder:C,onConfirm:async()=>{await g(C),H(Te,O),G()},onCancel:V}),(0,k.jsx)(Ee,{active:O===qe,selectedFile:_,onConfirm:async()=>{await x(_),H(Te,O),G()},onCancel:V}),(0,k.jsx)(ee,{active:O===ze,file:_,onFileChange:async e=>{_&&(!function(e){const t={..._,content:e};S(t)}(e),await f({path:null===_||void 0===_?void 0:_.path,content:e}),S({..._,content:e,cached:!0}))}})]})]})]})},Ke=async e=>{let{auth:t,url:n,function_content:a,project:s,type:r,file:l}=e;return(0,j.A)({operation:{operation:"set_custom_function",function_content:a,project:s,type:r,file:l},auth:t,url:n})},Ze={routes:"'use strict';\n\n/* Dependencies\n- import any packages that are listed in your projects package.json\n- for example:\nimport needle from 'needle'\n*/\n\n/* Helpers\n- import any helper methods from your project's \"helpers\" directory\n- for example:\nimport filter from '../helpers/filter.js';\n*/\n\nmodule.exports = async (server, { hdbCore, logger }) => {\n // POST route\n // with hdbCore.preValidation to process basic auth\n // uses hdbCore.requese to execute the validated request\n server.route({\n url: '/path/to/my/route',\n method: 'POST',\n preValidation: hdbCore.preValidation,\n handler: hdbCore.request,\n })\n\n // GET route\n // with custom validation\n // uses hdbCore.requestWithoutAuthentication\n server.route({\n url: '/path/to/my/route/:id',\n method: 'GET',\n preValidation: async (request, reply) => {\n const token = request.headers.authorization\n const results = hdbCore.requestWithoutAuthentication({\n body: {\n operation: 'search_by_hash',\n schema: 'auth',\n table: 'tokens',\n hash_values: [token],\n get_attributes: ['id']\n }\n })\n if (!results.length) {\n const errorString = result.body.error || 'Sorry, there was an error authenticating your request';\n logger.error(errorString);\n throw new Error(errorString);\n }\n },\n handler: async (request) => {\n const id = parseInt(request.params.id)\n request.body= {\n operation: 'sql',\n sql: `SELECT * FROM dev.dogs WHERE id = ${id}`\n };\n\n /*\n * requestWithoutAuthentication bypasses the standard HarperDB authentication.\n * YOU MUST ADD YOUR OWN preValidation method above, or this method will be available to anyone.\n */\n const result = await hdbCore.requestWithoutAuthentication(request);\n\n return result\n }\n });\n};\n",helpers:"\n/* filters the results, only returning the selected keys */\nexport default (result, keys) => {\n return result.map(r => {\n const f = {}\n keys.forEach(k => f[k] = r[k])\n return f;\n })\n}\n"};var Ye=n(9561);const Je=function(e){let{items:t,toggleDropItem:n,toggleCreate:r,baseUrl:c,restarting:u,itemType:p,project:f}=e;const g=(0,d.Zp)(),x=(0,D.MW)(),v=(0,s.O$)(l.A,(e=>e.auth)),b=(0,s.O$)(l.A,(e=>e.url)),[y,N]=(0,a.useState)(!1),[C,w]=(0,a.useState)(!1),[_,S]=(0,a.useState)(!1),F=async e=>{e.preventDefault();let n,a=!1;if(y&&!t.includes(y)||(w(!0),a=!0),y&&!(0,Ye.A)(y)&&(w(!0),a=!0,x.error(("projects"===p?"Project":"File")+" names may only contain letters, numbers, hyphens, or underscores.")),a)return!1;if(S(!0),"projects"===p)n=await(async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"add_custom_function_project",project:a},auth:t,url:n})})({auth:v,url:b,project:y});else{const e=(e=>Ze[e]||null)(p);n=await Ke({auth:v,url:b,project:f,type:p,file:y,function_content:e})}return n.error?(S(!1),r(!1),x.error(n.message)):setTimeout((async()=>(await(0,L.A)({auth:v,url:b,service:"custom_functions"}),await A({auth:v,url:b}),g(`${c}/${y}`))),500)};return(0,a.useEffect)((()=>{n()}),[n]),(0,a.useEffect)((()=>{y&&t.find((e=>e===y))&&g(`${c}/${y}`)}),[t]),(0,k.jsxs)(o.A,{className:"item-row form",children:[(0,k.jsx)(i.A,{className:"input-holder",children:(0,k.jsx)(m.A,{id:"name",invalid:C,onChange:e=>{w(!1),N(e.target.value)},value:y||"",disabled:_,type:"text",name:"name",placeholder:"projects"===p?"ex: api, api-v1, dogs":"routes"===p?"ex: v1, post, public":"ex: filter, auth, queries"})}),(0,k.jsx)(i.A,{className:"item-action",children:_?(0,k.jsx)(h.A,{color:"success",className:"round me-1",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin text-white"})}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{id:"createItem",color:"success",className:"round me-1",disabled:u,onClick:F,onKeyDown:e=>13!==e.keyCode||F(e),children:(0,k.jsx)("i",{className:"fa fa-check text-white"})}),(0,k.jsx)(h.A,{id:"toggleCreate",color:"black",className:"round",onClick:()=>r(!1),children:(0,k.jsx)("i",{className:"fa fa-times text-white"})})]})})]})},Qe=async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"drop_custom_function_project",project:a},auth:t,url:n})};const Xe=function(e){let{item:t,baseUrl:n,isActive:r,toggleDropItem:c,isDropping:u,itemType:p,restarting:m}=e;const{project:f}=(0,d.g)(),g=(0,d.Zp)(),x=(0,D.MW)(),[v,b]=(0,a.useState)(!1),[y,N]=(0,a.useState)(!1),C=(0,s.O$)(l.A,(e=>e.auth)),w=(0,s.O$)(l.A,(e=>e.url)),_=async()=>{if(!v)return!1;let e;return e="projects"===p?await Qe({auth:C,url:w,project:t}):await(async e=>{let{auth:t,url:n,project:a,type:s,file:r}=e;return(0,j.A)({operation:{operation:"drop_custom_function",project:a,type:s,file:r},auth:t,url:n})})({auth:C,url:w,project:f,type:p,file:t}),e.error?(b(!1),N(!1),x.error(e.message)):(x.success(e.message),(0,L.A)({auth:C,url:w,service:"custom_functions"}),await A({auth:C,url:w}),g(n))};return(0,k.jsxs)(o.A,{title:`View${r?"ing":""} ${t}`,className:"item-row "+(r?"active":""),onClick:m?null:()=>!(r||u||v)&&g(`${n}/${t}`),tabIndex:"0",children:[(0,k.jsx)(i.A,{className:"item-label "+(v?"text-danger text-nowrap":""),children:v?`drop ${t}?`:"projects"===p?`/${t}`:t}),(0,k.jsx)(i.A,{className:"item-action",children:y?(0,k.jsx)(h.A,{tabIndex:"-1",disabled:!0,color:"purple",className:"round",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):v?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{id:"confirmDropItem",color:"danger",className:"round me-1",title:`confirm drop ${t}`,onClick:()=>{b(!1),N(!0),_()},children:(0,k.jsx)("i",{className:"fa fa-check text-white"})}),(0,k.jsx)(h.A,{id:"cancelDropItem",color:"black",className:"round",title:`Cancel drop ${t}`,onClick:()=>{b(!1)},children:(0,k.jsx)("i",{className:"fa fa-times text-white"})})]}):u?(0,k.jsx)(h.A,{id:"dropItem",color:"danger",className:"round",title:`Drop ${t}`,onClick:()=>{b(t),c(!1)},children:(0,k.jsx)("i",{className:"fa fa-minus text-white"})}):r?(0,k.jsx)(h.A,{tabIndex:"-1",color:"purple",className:"round",children:(0,k.jsx)("i",{className:"fa fa-chevron-right"})}):null})]},t)};const et=function(e){let{items:t,toggleDropItem:n,isDropping:a,toggleCreate:s,project:r,isCreating:l,restarting:c,itemType:u,showForm:d}=e;return(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsx)(i.A,{children:"projects"===u?"projects":`/${r}/${u}`}),d&&null!==t&&void 0!==t&&t.length?(0,k.jsxs)(i.A,{className:"text-end",children:[(0,k.jsx)(h.A,{disabled:c,id:"toggleRemove",color:"link",title:"Remove Functions",className:"add-remove me-3",onClick:()=>{n(!a),s(!1)},children:(0,k.jsx)("i",{className:"fa fa-minus"})}),(0,k.jsx)(h.A,{disabled:c,id:"toggleCreate",color:"link",title:"Add Function",className:"add-remove me-1",onClick:()=>{s(!l),n(!1)},children:(0,k.jsx)("i",{className:"fa fa-plus"})})]}):null]})};const tt=function(e){let{items:t,activeItem:n,baseUrl:s,restarting:r,itemType:l,project:o,showForm:i}=e;const[d,p]=(0,a.useState)(!1),[m,h]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{h(),p()}),[n,t.length]),(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsx)(et,{items:t,itemType:l,isDropping:d,toggleDropItem:p,isCreating:m,toggleCreate:h,restarting:r,project:o,showForm:i}),(0,k.jsxs)(c.A,{className:"my-3",children:[t&&t.length?(0,k.jsx)(u.A,{className:"scrollable "+(m?"creating":""),children:t.map((e=>(0,k.jsx)(Xe,{item:e,baseUrl:s,isActive:n===e,isDropping:d,toggleDropItem:p,itemType:l,restarting:r},e)))}):null,i&&t&&!t.length||m?(0,k.jsx)(u.A,{children:(0,k.jsx)(Je,{items:t,itemType:l,baseUrl:s,isDropping:d,toggleDropItem:p,isCreating:m,toggleCreate:h,restarting:r,project:o})}):!t||t.length||m?null:(0,k.jsx)(u.A,{children:(0,k.jsx)("div",{className:"py-3 text-center no-content",children:"no functions found"})})]})]})};const nt=function(){const e=(0,d.Zp)(),t=(0,D.MW)(),{customer_id:n,compute_stack_id:r,project:p,type:m,file:f}=(0,d.g)(),g=(0,s.O$)(l.A,(e=>e.auth)),x=(0,s.O$)(l.A,(e=>e.url)),[v,b]=(0,a.useState)(""),[y,N]=(0,a.useState)(""),A=(0,a.useCallback)((async()=>{if(p&&m&&f&&"undefined"!==f){const e=await(async e=>{let{auth:t,url:n,project:a,type:s,file:r}=e;return(0,j.A)({operation:{operation:"get_custom_function",project:a,type:s,file:r},auth:t,url:n})})({auth:g,url:x,project:p,type:m,file:f});b(null===e||void 0===e?void 0:e.message),N(null===e||void 0===e?void 0:e.message)}else b("")}),[g,x,p,m,f,b]);return(0,a.useEffect)((()=>{A()}),[p,f,A,r]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsxs)(i.A,{children:["edit >\xa0",(0,k.jsxs)("i",{children:["/",p,f&&"undefined"!==f&&`/${m}/${f}.js`]})]}),(0,k.jsxs)(i.A,{className:"text-end",children:[(0,k.jsxs)(h.A,{onClick:A,color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"reload"}),(0,k.jsx)("i",{title:"Reload File",className:"fa fa-sync-alt"})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"}),(0,k.jsxs)(h.A,{onClick:()=>e(`/o/${n}/i/${r}/functions/deploy/${p}`),color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"deploy"}),(0,k.jsx)("i",{title:"Deploy Project",className:"fa fa-share"})]})]})]}),(0,k.jsx)(c.A,{className:"my-3",children:v?(0,k.jsxs)(u.A,{children:[(0,k.jsx)("div",{className:"code-editor-holder",children:(0,k.jsx)(Q.Ay,{height:"100%",defaultLanguage:"javascript",value:v,theme:"vs-dark",onChange:b})}),(0,k.jsxs)(o.A,{children:[(0,k.jsx)(i.A,{md:"6",className:"mt-2",children:(0,k.jsx)(h.A,{block:!0,color:"grey",title:"Revert Code to Last Saved State",disabled:v===y,onClick:A,id:"reset",children:(0,k.jsx)("i",{className:"fa fa-undo"})})}),(0,k.jsx)(i.A,{md:"6",className:"mt-2",children:(0,k.jsx)(h.A,{block:!0,title:"Save Code to Instance",color:"success",id:"addEditItem",onClick:async()=>{const e=await Ke({auth:g,url:x,function_content:v,project:p,type:m,file:f});e.error?t.error(e.message):(setTimeout((()=>(0,L.A)({auth:g,url:x,service:"custom_functions"})),500),t.success(e.message)),A()},children:(0,k.jsx)("i",{className:"fa fa-save"})})})]})]}):(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"empty-prompt narrow",children:[(0,k.jsx)("div",{className:"mt-3 text-bold",children:"This project does not yet have any routes or helpers"}),(0,k.jsx)("div",{className:"mt-3",children:"Add some using the form fields at left."})]})})})]})};var at=n(4343);const st=e=>{let{initializing:t,loading:n,handleClick:a}=e;return[{Header:"instance name",accessor:"instance_name"},{Header:"instance url",accessor:"url"},{Header:"cf capable",id:"hdb-narrow-cfcapable",Cell:e=>{let{row:{original:{custom_functions_status:t}}}=e;return t.error?"no":"yes"}},{Header:"cf enabled",id:"hdb-narrow-cfenabled",Cell:e=>{let{row:{original:{custom_functions_status:t}}}=e;return t.is_enabled?"yes":"no"}},{Header:"has project",id:"hdb-narrow-cfhasproject",Cell:e=>{let{row:{original:{has_current_project:t}}}=e;return t?"yes":"no"}},{Header:"deploy",id:"hdb-narrow-deploy",Cell:e=>{let{row:{original:{compute_stack_id:s,custom_functions_status:r,has_auth:l}}}=e;return r.is_enabled&&l?(0,k.jsx)(h.A,{color:"success",block:!0,size:"sm",disabled:t||n[s],onClick:()=>a(s,"deploy"),children:(0,k.jsx)("i",{className:"fa "+("deploy"===n[s]?"fa-spinner fa-spin":"fa-share")})}):null}},{Header:"remove",id:"hdb-narrow-remove",Cell:e=>{let{row:{original:{compute_stack_id:t,custom_functions_status:s,has_current_project:r,has_auth:l}}}=e;return s.is_enabled&&r&&l?(0,k.jsx)(h.A,{color:"danger",block:!0,size:"sm",disabled:n[t],onClick:()=>a(t,"drop"),children:(0,k.jsx)("i",{className:"fa "+("drop"===n[t]?"fa-spinner fa-spin":"fa-trash")})}):null}}]},rt={filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};const lt=function(){const{customer_id:e,compute_stack_id:t,project:n}=(0,d.g)(),r=(0,d.Zp)(),[p]=(0,W.A)({}),m=(0,s.O$)(l.A,(e=>e.auth)),f=(0,s.O$)(l.A,(e=>e.url)),x=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.registration)||void 0===t?void 0:t.version})),[{payload:y,file:N},A]=(0,a.useState)([]),C=`/o/${e}/i/${t}/functions/edit/${n}`,w=(0,s.O$)(I.A,(e=>e.instances.filter((e=>e.compute_stack_id!==t)))),[_,S]=x.split("."),F=_>=3&&(_>3||S>=3),[P,O]=(0,a.useState)([]),[$,E]=(0,a.useState)(F),[D,T]=(0,a.useReducer)(((e,t)=>({...e,...t})),{}),[R,z]=(0,a.useState)(rt),U=(0,a.useCallback)((()=>r(C)),[r,C]),M=(0,a.useCallback)((async(e,t)=>{const a=P.find((t=>t.compute_stack_id===e)),s=p[e];if(a&&s){T({[e]:t});let r=!1;const l=await v({auth:s,url:a.url});if(!l.error){const e=await b({auth:s,url:a.url});r=Object.keys(e).includes(n)}const o=P.map((t=>(t.compute_stack_id===e&&(t.custom_functions_status=l,t.has_current_project=r),t)));O(o),T({[e]:null})}}),[p,n,P]),q=(0,a.useCallback)((async(e,t)=>{const a=P.find((t=>t.compute_stack_id===e)),s=p[e];a&&s&&(T({[e]:t}),"deploy"===t?(await(async e=>{let{auth:t,url:n,project:a,payload:s,file:r}=e;return(0,j.A)({operation:{operation:"deploy_custom_function_project",project:a,payload:s,file:r},auth:t,url:n})})({auth:s,url:a.url,payload:y,project:n,file:N}),$&&await(async e=>{let{auth:t,url:n,projects:a,dry_run:s=!1}=e;return(0,j.A)({operation:{operation:"install_node_modules",projects:a,dry_run:s},auth:t,url:n})})({auth:s,url:a.url,projects:[n]}),await(0,L.A)({auth:s,url:a.url,service:"custom_functions"})):await Qe({auth:s,url:a.url,project:n}),setTimeout((()=>{T({[e]:!1}),M(e,t)}),1e3))}),[N,p,y,n,P,M,$]);return g()((async()=>{if(m&&f&&n){A(!1);const e=await(async e=>{let{auth:t,url:n,project:a,skip_node_modules:s}=e;return(0,j.A)({operation:{operation:"package_custom_function_project",project:a,skip_node_modules:s},auth:t,url:n})})({auth:m,url:f,project:n,skip_node_modules:$});A(e)}}),[m,f,n,$]),g()((async()=>{if(w){const e=await Promise.all(w.map((async e=>{const t=p[e.compute_stack_id];let a={};if(t){const s=await v({auth:t,url:e.url});return s.error||(a=await b({auth:t,url:e.url})),{...e,custom_functions_status:s,has_auth:!0,has_current_project:Object.keys(a).includes(n)}}return{...e,custom_functions_status:!1}})));O(e)}}),[w,n]),(0,a.useEffect)((()=>{z({...R,totalPages:Math.ceil((P.length||R.pageSize)/R.pageSize)})}),[z,R.pageSize]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsxs)(i.A,{children:["deploy ",n&&`> ${n}`]}),(0,k.jsxs)(i.A,{className:"text-end",children:[F&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(h.A,{color:"link",title:"Turn on autofresh",onClick:()=>E(!$),children:[(0,k.jsx)("span",{className:"me-2",children:"install dependencies at destination"}),(0,k.jsx)("i",{className:"fa fa-lg fa-toggle-"+($?"on":"off")})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"})]}),(0,k.jsxs)(h.A,{onClick:U,color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"back to edit"}),(0,k.jsx)("i",{title:"Edit Project",className:"fa fa-edit"})]})]})]}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{className:"react-table-holder",children:P.length?(0,k.jsx)(at.A,{columns:st({initializing:!y,loading:D,handleClick:q}),data:P,page:R.page,pageSize:R.pageSize,totalPages:R.totalPages,showFilter:R.showFilter,sorted:R.sorted,onFilteredChange:e=>z({...R,filtered:e}),onSortedChange:e=>z({...R,sorted:e}),onPageChange:e=>z({...R,pageSize:e}),onPageSizeChange:e=>z({...R,page:0,pageSize:e})}):(0,k.jsx)("div",{className:"empty-prompt",children:"Please register at least one Custom Function-enabled instance to deploy to"})})})]})};const ot=function(e){let{loading:t,refreshCustomFunctions:n,restarting:a}=e;const r=(0,s.O$)(l.A,(e=>e.auth)),o=(0,s.O$)(l.A,(e=>e.url));return(0,k.jsxs)("span",{className:"structure-reloader d-block text-center mb-4",children:[(0,k.jsxs)(h.A,{disabled:t,color:"link",onClick:n,children:[(0,k.jsx)("span",{className:"me-2",children:"refresh projects"}),(0,k.jsx)("i",{title:"Refresh Endpoint Files",className:"fa "+(t?"fa-spinner fa-spin":"fa-sync-alt")})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"}),(0,k.jsxs)(h.A,{disabled:a,color:"link",onClick:()=>(0,L.A)({auth:r,url:o,service:"custom_functions"}),className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"restart server"}),(0,k.jsx)("i",{title:"Refresh Endpoint Files",className:"fa "+(a?"fa-spinner fa-spin":"fa-stop-circle")})]}),(0,k.jsx)("hr",{className:"d-block d-md-none mt-4"})]})};const it=function(e){let{url:t,project:n,fileCount:a}=e;return(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsxs)("div",{className:"floating-card-header",children:["/",n,"/static"]}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(o.A,{className:"item-row",children:[(0,k.jsx)(i.A,{className:"item-label",children:a?"enabled":'"static" subfolder not found'}),(0,k.jsxs)(i.A,{className:"item-action",children:[(0,k.jsx)(h.A,{tabIndex:"-1",color:a?"success":"danger",disabled:!a,className:"round me-1",children:a}),(0,k.jsx)(h.A,{tabIndex:"-1",color:"purple",className:"round",disabled:!a,href:`${t}/${n}/static`,target:"_blank",rel:"noopener noreferrer",children:(0,k.jsx)("i",{title:"View UI",className:"fa fa-share"})})]})]})})})]})};var ct=n(7666);const ut=function(e){var t,n,c;let{refreshCustomFunctions:u,loading:m}=e;const{customer_id:h,compute_stack_id:f,action:g="edit",project:x,file:j}=(0,d.g)(),v=(0,d.Zp)(),b=(0,s.O$)(l.A,(e=>e.custom_functions)),y=(0,s.O$)(l.A,(e=>e.registration)),[N,A]=((null===y||void 0===y?void 0:y.version)||"").split("."),C=parseFloat(`${N}.${A}`)<4.1,w=(0,s.O$)(l.A,(e=>"custom_functions"===e.restarting_service)),_=(0,s.O$)(l.A,(e=>{var t;return e.custom_functions_url||`${e.url.split(":").slice(0,-1).join(":")}:${null===(t=e.custom_functions)||void 0===t?void 0:t.port}`})),S=`/o/${h}/i/${f}/functions/${g}`;return(0,a.useEffect)((()=>{const e=(null===b||void 0===b?void 0:b.endpoints)&&Object.keys(null===b||void 0===b?void 0:b.endpoints).length,t=(null===b||void 0===b?void 0:b.endpoints)&&Object.keys(null===b||void 0===b?void 0:b.endpoints).includes(x);if(e&&x&&!t){const e=x&&Object.keys(null===b||void 0===b?void 0:b.endpoints)[0];v(`${S}/${e}`)}else if(e&&x&&!j){var n,a;const e=x&&(null===b||void 0===b||null===(n=b.endpoints[x])||void 0===n?void 0:n.routes[0]),t=x&&(null===b||void 0===b||null===(a=b.endpoints[x])||void 0===a?void 0:a.helpers[0]);v(`${S}/${x}/${e?"routes":"helpers"}/${e||t}`)}else if(e&&!x){const e=Object.keys(null===b||void 0===b?void 0:b.endpoints)[0];v(`${S}/${e}`)}else e||v(S)}),[null===b||void 0===b?void 0:b.endpoints,h,f,v,g,x,j,S]),(0,r.A)((async()=>{if(_&&w)try{await fetch(_),l.A.update((e=>{e.restarting_service=!1}))}catch(e){console.log(e)}}),1e3),(0,k.jsxs)(o.A,{id:"functions",children:[(0,k.jsx)(i.A,{xl:"3",lg:"4",md:"6",xs:"12",children:(0,k.jsxs)(p.tH,{onError:(e,t)=>(0,$.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:O.A,children:[(0,k.jsx)(tt,{itemType:"projects",items:Object.keys(null===b||void 0===b?void 0:b.endpoints)||[],activeItem:x,baseUrl:S,restarting:w,showForm:"edit"===g}),x&&"edit"===g&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(tt,{itemType:"routes",items:x&&(null===b||void 0===b||null===(t=b.endpoints[x])||void 0===t?void 0:t.routes)||[],project:x,activeItem:j,baseUrl:`${S}/${x}/routes`,restarting:w,showForm:"edit"===g}),(0,k.jsx)(tt,{itemType:"helpers",items:x&&(null===b||void 0===b||null===(n=b.endpoints[x])||void 0===n?void 0:n.helpers)||[],project:x,activeItem:j,baseUrl:`${S}/${x}/helpers`,restarting:w,showForm:"edit"===g}),C&&(0,k.jsx)(it,{url:_,project:x,fileCount:x&&(null===b||void 0===b||null===(c=b.endpoints[x])||void 0===c?void 0:c.static)||0})]}),(0,k.jsx)("hr",{className:"mt-0"}),(0,k.jsxs)("div",{className:"entity-manager-footer",children:[(0,k.jsx)("div",{className:"text-bold mb-1",children:"Root File Directory"}),(0,k.jsx)(ct.A,{text:b.directory}),(0,k.jsx)("div",{className:"text-bold mb-1 mt-3",children:"Custom Functions Server URL"}),(0,k.jsx)(ct.A,{text:_})]}),(0,k.jsx)("hr",{}),(0,k.jsx)(ot,{refreshCustomFunctions:u,loading:m,restarting:w})]})}),(0,k.jsx)(i.A,{xl:"9",lg:"8",md:"6",xs:"12",children:"deploy"===g?(0,k.jsx)(lt,{}):x?(0,k.jsx)(nt,{}):(0,k.jsx)(P.A,{refreshCustomFunctions:u,headline:`Please ${null!==b&&void 0!==b&&b.endpoints.length?"choose":"create"} a project at left.`})})]})};function dt(e){return e.split("/").slice(2).join("/")}function pt(e,t,n,a){return e.reduce(((e,s)=>{const r=s.compute_stack_id,l=t[r];if(null===l||void 0===l||!l.version)return e;const[o,i]=(null===l||void 0===l?void 0:l.version.split("."))||[];return parseInt(o,10)>=4&&parseInt(i,10)>=2&&e.push({isCurrentInstance:r===n,auth:a,instance:s}),e}),[])}const mt=function(e){let{refreshCustomFunctions:t,loading:n}=e;const{compute_stack_id:r}=(0,d.g)(),o=(0,s.O$)(l.A,(e=>e.registration)),{fileTree:i}=(0,s.O$)(l.A,(e=>e.custom_functions)),c=(0,s.O$)(l.A,(e=>e.auth)),u=(0,s.O$)(l.A,(e=>e.url)),[p,m]=((null===o||void 0===o?void 0:o.version)||"").split(".")||[],h=parseFloat(`${p}.${m}`)>=4.2,f=(0,s.O$)(I.A,(e=>e.instances)),[g]=(0,W.A)({}),[x,v]=M({}),[b,y]=(0,a.useState)(!1),N=(0,D.MW)();function A(e){let{path:t}=e;const n={...x},a=`${r}_${t}`;a in n&&delete n[a],v({...n})}async function C(e){let{auth:t,url:n}=e;y(!0),setTimeout((async()=>{await(0,L.A)({auth:t,url:n,service:"http_workers"}),y(!1)}),100)}return h?(0,k.jsx)(Ve,{fileTree:i,deployTargets:pt(f,g,r,c),onRevertFile:async function(e){A({path:e.path});const{error:n,message:a}=await T({auth:c,url:u,project:e.project,file:dt(e.path)});return n?N.error(a):(await t(),a)},onFileChange:async function(e){const{path:t,content:n}=e,a=`${r}_${t}`;v({...x,[a]:n})},onFileSave:async function(e,n){const a=e.path.split("/").slice(2).join("/"),s={auth:c,url:u,project:e.project,file:a,payload:e.content},{error:r,message:l}=await R(s);r&&N.error(l),n&&await C({auth:c,url:u}),A({path:e.path}),e.cached=!1,await t()},onUpdate:t,onAddFile:async function(e,n){const{path:a,project:s}=n,r=dt(a),l=r?`${r}/${e}`:e;return await R({auth:c,url:u,project:s,file:l,payload:""}),await t(),{content:"",path:[n.path,e].join("/"),project:s}},onAddProject:async function(e){const{error:n,message:a}=await(async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"add_component",project:a},auth:t,url:n})})({auth:c,url:u,project:e});n&&N.error(a),await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t()},onAddProjectFolder:async function(e,n){const{path:a,project:s}=n,r=dt(a),l=r?`${r}/${e}`:e,{error:o,message:i}=await R({auth:c,url:u,project:s,file:l});o&&N.error(i),await t()},onInstallPackage:async function(e,n,a){const s=a.map((async t=>{const{error:a,message:s}=await U({auth:t.auth,url:t.instance.url,project:e,packageUrl:n});a&&N.error(s),await(0,L.A)({auth:t.auth,url:t.instance.url,service:"http_workers"})}));await Promise.all(s),await t()},onDeployProject:async function(e){let{project:n,deployTarget:a}=e;const{auth:s,instance:r}=a,{payload:l}=await(async e=>{let{auth:t,url:n,project:a,skip_node_modules:s=!0}=e;return(0,j.A)({auth:t,url:n,operation:{operation:"package_component",project:a,skip_node_modules:s}})})({auth:c,url:u,project:n.name});await U({auth:s,url:r.url,project:n.name,payload:l}),await(0,L.A)({auth:s,url:r.url,service:"http_workers"}),await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t()},onDeleteFile:async function(e){const{error:n,message:a}=await z({auth:c,url:u,project:e.project,file:dt(e.path)});n&&N.error(a),await t()},onDeleteFolder:async function(e){let{path:n,project:a}=e;const s=dt(n);if(s.length>0){const{error:e,message:t}=await z({auth:c,url:u,project:a,file:s});e&&N.error(t)}else{const{error:e,message:t}=await z({auth:c,url:u,project:a});e&&N.error(t)}await t()},onDeletePackage:async function(e){let{name:n}=e;const{error:a,message:s}=await z({auth:c,url:u,project:n});a?N.error(s):(await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t())},onFileSelect:async function(e){const{path:t,project:n,name:a}=e,s=dt(t),l=`${r}_${t}`,o=x[l],i=l in x;if(i)return{cached:i,content:o,path:t,project:n,name:a};const{error:d,message:p}=await T({auth:c,url:u,project:n,file:s});return d?(N.error(p),{content:"",path:t,project:n,name:a,cached:!1}):{cached:i,content:p,path:t,project:n,name:a}},onFileRename:async function(e,n){const{path:a,content:s,project:r}=n,l=dt(a).split("/").slice(0,-1).join("/"),o=l?`${l}/${e}`:e;await z({auth:c,url:u,project:r,file:dt(a)}),await R({auth:c,url:u,project:r,file:o,payload:s}),t()},refreshingCustomFunctions:n,restartInstance:async()=>C({auth:c,url:u}),restartingInstance:b}):(0,k.jsx)(ut,{refreshCustomFunctions:t,loading:n})};const ht=function(){return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"floating-card-header text-end",children:"\xa0"}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"empty-prompt narrow",children:[(0,k.jsx)("i",{className:"fa fa-bullhorn fa-3x text-success"}),(0,k.jsx)("div",{className:"mt-3 text-bold",children:"Coming Soon: Custom Functions!"}),(0,k.jsx)("div",{className:"mt-3",children:(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Add your own API endpoints to a standalone API server inside HarperDB"}),(0,k.jsx)("li",{children:"Use HarperDB Core methods to interact with your data at lightning speed"}),(0,k.jsx)("li",{children:"Custom Functions are powered by Fastify, so they're extremely flexible"}),(0,k.jsx)("li",{children:"Manage in HarperDB Studio, or use your own IDE and Version Management System"}),(0,k.jsx)("li",{children:"Distribute your Custom Functions to all your HarperDB instances with a single click"})]})})]})})})]})};var ft=n(4979),gt=n(2914);const xt=function(){const e=(0,s.O$)(l.A,(e=>e.auth)),t=(0,s.O$)(l.A,(e=>e.url)),n=(0,s.O$)(l.A,(e=>e.custom_functions)),o=(0,s.O$)(l.A,(e=>e.registration)),i=(0,gt.A)({version:null===o||void 0===o?void 0:o.version}),c=(0,s.O$)(l.A,(e=>e.restarting)),[u,d]=(0,a.useState)(!1),[p,m]=(0,a.useState)(!0),[h,f]=(0,a.useState)(!1),g=(0,a.useCallback)((async()=>{e&&t&&!c&&(m(!0),await A({auth:e,url:t}),m(!1))}),[e,t,c]);return(0,a.useEffect)((()=>{g()}),[g]),(0,a.useEffect)((()=>{const e=(null===n||void 0===n?void 0:n.is_enabled)&&(null===n||void 0===n?void 0:n.port)||i;d(e),e&&f(!1)}),[n,i]),(0,r.A)((()=>{h&&g()}),2e3),n?n.error?(0,k.jsx)(ht,{}):h?(0,k.jsx)(P.A,{description:"Configuring Custom Functions",icon:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):u?(0,k.jsx)(mt,{refreshCustomFunctions:g,loading:p}):(0,k.jsx)(E,{setConfiguring:f}):(0,k.jsx)(ft.A,{header:"loading custom functions",spinner:!0})}},7666:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(9950),s=n(7176),r=n(6114),l=n(3452),o=n(7348),i=n(4414);const c=function(e){let{text:t,beforeText:n,afterText:c,obscure:u=!1}=e;const d=(0,o.MW)(),p=navigator.clipboard,m=(0,a.useCallback)((async e=>{e.stopPropagation(),await navigator.clipboard.writeText(t),d.success("Text copied to clipboard")}),[d,t]);return(0,i.jsxs)(s.A,{className:"copyable-text-holder g-0",children:[p&&t&&(0,i.jsx)(r.A,{className:"copy-icon",children:(0,i.jsx)(l.A,{title:"Copy this value",onClick:m,color:"link",children:(0,i.jsx)("i",{className:"fa fa-copy text-small"})})}),(0,i.jsx)(r.A,{className:"text-container",children:t?(0,i.jsxs)(i.Fragment,{children:[n,u?t.replace(/./g,"*"):t,c]}):(0,i.jsx)("span",{children:"\xa0"})})]})}},4343:(e,t,n)=>{n.d(t,{A:()=>b});var a=n(9950),s=n(2043),r=n(5488),l=n(9435),o=n(7176),i=n(6114),c=n(4414);const u=e=>{let{headerGroups:t,onSortedChange:n,sorted:a,showFilter:s}=e;return t.map((e=>{const{key:t,...r}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...r,children:[(0,c.jsx)(o.A,{className:"header g-0",children:e.headers.map((e=>{var t,s;return(0,c.jsx)(i.A,{onClick:()=>{var t,s;return n([{id:e.id,desc:(null===(t=a[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(s=a[0])&&void 0!==s&&s.desc)}])},className:`${(null===(t=a[0])||void 0===t?void 0:t.id)===e.id?"sorted":""} ${null!==(s=a[0])&&void 0!==s&&s.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),s&&(0,c.jsx)(o.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(i.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},t)}))};var d=n(3452);const p=function(e){let{page:t,pageSize:n,totalPages:a,onPageChange:s,onPageSizeChange:l,loading:u}=e;return(0,c.jsxs)(o.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>s(t-1),disabled:!a||0===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:t+1,min:1,max:a,onChange:e=>s(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",u?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):a]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",value:n,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>s(t+1),disabled:!a||t+1===a,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:t,canPreviousPage:n,pageIndex:a,gotoPage:s,setPageSize:l,pageCount:u,nextPage:p,canNextPage:m,loading:h}=e;return(0,c.jsxs)(o.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!u||!n,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:a+1||1,min:1,max:u,onChange:e=>s(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",h?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):u]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{s(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:p,disabled:!u||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const h=function(e){let{prepareRow:t,row:n,onRowClick:a=!1}=e;return t(n),(0,c.jsx)(o.A,{onClick:()=>a&&a(n.original),className:"g-0",children:n.cells.map((e=>(0,c.jsx)(i.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var f=n(3628),g=n(3150);function x(e){let{value:t}=e;return(0,c.jsx)("div",{className:"text-renderer",children:t})}function j(e){let{src:t}=e;const[n,s]=(0,a.useState)(!1),[r,l]=(0,a.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),n&&r?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):n?(0,c.jsx)("img",{onError:l,alt:t,src:t,className:"preview-image"}):null]})}const v={Filter:e=>{let{column:{filterValue:t,setFilter:n}}=e;return(0,c.jsx)(r.A,{type:"text",value:t||"",onChange:e=>n(e.target.value||void 0)})},Cell:e=>{let{value:t}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(x,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(x,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,c.jsx)(j,{src:e}):(0,c.jsx)(x,{value:e});default:return(0,c.jsx)(x,{value:e})}var t})(t)}};const b=function(e){let{columns:t,data:n,currentPage:r,pageSize:o,totalPages:i,onFilteredChange:d,onSortedChange:x,onPageChange:j,onPageSizeChange:b,showFilter:y,onRowClick:N,sorted:A,loading:k,manual:C=!1}=e;const{headerGroups:w,page:_,rows:S,prepareRow:F,state:P,setAllFilters:O,canPreviousPage:$,canNextPage:E,pageOptions:D,pageCount:I,gotoPage:T,nextPage:R,previousPage:z,setPageSize:U}=(0,s.useTable)({columns:t,data:n,defaultColumn:v,onFilteredChange:d,onSortedChange:x,onPageChange:j,onPageSizeChange:b,onRowClick:N,manualPagination:C,manualFilters:C,initialState:{pageIndex:r,pageSize:o}},s.useFilters,s.usePagination),[L,W]=(0,a.useState)(!0),M=C||!_.length?S:_;return(0,a.useEffect)((()=>{!y&&P.filters.length?O([]):d(P.filters)}),[P.filters,y]),(0,a.useEffect)((()=>{setTimeout((()=>W(!1)),100)}),[null===M||void 0===M?void 0:M.length]),(0,c.jsxs)(l.tH,{onError:(e,t)=>(0,f.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(u,{headerGroups:w,onSortedChange:x,sorted:A,showFilter:y}),k||L?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):M.length?M.map((e=>(0,c.jsx)(h,{row:e,prepareRow:F,onRowClick:N},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:"no records"})]})]}),C?(0,c.jsx)(p,{page:r,pageSize:o,totalPages:i,onPageChange:j,onPageSizeChange:b,loading:k}):(0,c.jsx)(m,{previousPage:z,pageSize:o,canPreviousPage:$,pageIndex:P.pageIndex,pageOptions:D,gotoPage:T,setPageSize:U,pageCount:I,nextPage:R,canNextPage:E,loading:k})]})}},8750:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n}=e;return(0,a.A)({operation:{operation:"get_configuration"},auth:t,url:n})}},2415:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;const r=await(0,a.A)({operation:{operation:"list_roles"},auth:t,url:n}),l=[...Array.isArray(r)?r:[]].sort(((e,t)=>e.role.toLowerCase()>t.role.toLowerCase()?1:-1));return s.A.update((e=>{e.roles=l})),l}},8222:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,signal:r}=e;const l=await(0,a.A)({operation:{operation:"list_users"},auth:t,url:n,signal:r}),o=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,t)=>e.username.toLowerCase()>t.username.toLowerCase()?1:-1)):[];return s.A.update((e=>{e.users=o})),o}},2010:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;return s.A.update((e=>{e.restarting=!0})),(0,a.A)({operation:{operation:"restart"},auth:t,url:n})}},1534:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,service:r=null}=e;return r?(s.A.update((e=>{e.restarting_service=r})),(0,a.A)({operation:{operation:"restart_service",service:r},auth:t,url:n})):{error:!0,message:"You must specify a service"}}},4834:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n,...s}=e;return(0,a.A)({operation:{operation:"set_configuration",...s},auth:t,url:n})}},6177:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8750),s=n(2415),r=n(8222),l=n(717),o=n(127);const i=async e=>{let{auth:t,url:n}=e;const i=await(0,a.A)({auth:t,url:n}),c=await(0,l.A)({auth:t,url:n}),u=await(async e=>{let{auth:t,url:n}=e;return(0,o.A)({operation:{operation:"cluster_status"},auth:t,url:n})})({auth:t,url:n}),d=parseFloat(null===c||void 0===c?void 0:c.version)>=4?"nats":"socketcluster",p=await(0,s.A)({auth:t,url:n});let m=!1;p.error||(m=p.find((e=>e.permission.cluster_user)));const h=await(0,r.A)({auth:t,url:n});let f=!1;h.error||(f=m&&h.find((e=>e.role===m.role)));const g="nats"===d?i.clustering.enabled:i.CLUSTERING,x="nats"===d?i.clustering.user:i.CLUSTERING_USER,j="nats"===d?i.clustering.hubServer.cluster.network.port:i.CLUSTERING_PORT,v="nats"===d?i.clustering.nodeName:i.NODE_NAME;return{is_ready:!!g&&!!f&&!!x&&!!m&&!!j&&!!v,cluster_role:m,cluster_user:f,is_enabled:g,config_cluster_user:x,config_cluster_port:j,node_name:v,engine:d,status:null===u||void 0===u?void 0:u.status,message:null===u||void 0===u?void 0:u.message,connections:null===u||void 0===u?void 0:u.connections}}},9561:(e,t,n)=>{n.d(t,{A:()=>a});const a=e=>e.match(/^[-a-zA-Z0-9_]+$/)},5379:(e,t,n)=>{n.d(t,{A:()=>a});const a=e=>!Number.isNaN(parseFloat(e))&&Number.isFinite(parseFloat(e))},5488:(e,t,n)=>{n.d(t,{A:()=>b});var a=n(9950),s=n(1942),r=n.n(s),l=n(8738),o=n.n(l),i=n(1497);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var u=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},d.apply(this,arguments)}function p(e,t){if(null==e)return{};var n,a,s=function(e,t){if(null==e)return{};var n,a,s={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function f(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=x(e);if(t){var s=x(this).constructor;n=Reflect.construct(a,arguments,s)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return g(e)}(this,n)}}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}var j={children:r().node,type:r().string,size:r().oneOfType([r().number,r().string]),bsSize:r().string,valid:r().bool,invalid:r().bool,tag:i.Wx,innerRef:r().oneOfType([r().object,r().func,r().string]),plaintext:r().bool,addon:r().bool,className:r().string,cssModule:r().object},v=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(l,e);var t,n,s,r=f(l);function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=r.call(this,e)).getRef=t.getRef.bind(g(t)),t.focus=t.focus.bind(g(t)),t}return t=l,(n=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.cssModule,s=e.type,r=void 0===s?"text":s,l=e.bsSize,c=e.valid,m=e.invalid,h=e.tag,f=e.addon,g=e.plaintext,x=e.innerRef,j=p(e,u),v=["switch","radio","checkbox"].indexOf(r)>-1,b="select"===r,y="range"===r,N=h||(b||"textarea"===r?r:"input"),A="form-control";g?(A="".concat(A,"-plaintext"),N=h||"input"):y?A="form-range":b?A="form-select":v&&(A=f?null:"form-check-input"),j.size&&/\D/g.test(j.size)&&((0,i.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),l=j.size,delete j.size);var k=(0,i.qO)(o()(t,m&&"is-invalid",c&&"is-valid",!!l&&(b?"form-select-".concat(l):"form-control-".concat(l)),A),n);return("input"===N||h&&"function"===typeof h)&&(j.type="switch"===r?"checkbox":r),j.children&&!g&&"select"!==r&&"string"===typeof N&&"select"!==N&&((0,i.mc)('Input with a type of "'.concat(r,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete j.children),a.createElement(N,d({},j,{ref:x,className:k,"aria-invalid":m}))}}])&&m(t.prototype,n),s&&m(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(a.Component);v.propTypes=j;const b=v}}]);
|
|
1
|
+
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[302],{4410:(e,t,n)=>{n.r(t),n.d(t,{default:()=>xt});var a=n(9950),s=n(6713),r=n(135),l=n(5269),o=n(7176),i=n(6114),c=n(4084),u=n(8156),d=n(8429),p=n(9435),m=n(5488),h=n(3452),f=n(9163),g=n.n(f),x=n(5379),j=n(127);const v=async e=>{let{auth:t,url:n}=e;return(0,j.A)({operation:{operation:"custom_functions_status"},auth:t,url:n,timeout:5e3})},b=async e=>{let{auth:t,url:n}=e;return(0,j.A)({operation:{operation:"get_custom_functions"},auth:t,url:n})};function y(e,t,n){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e&&e.entries){var s,r,l;if(t===n)e.path=n,e.key=null!==(s=null===(r=(l=crypto).randomUUID)||void 0===r?void 0:r.call(l))&&void 0!==s?s:Math.random().toString().slice(2);for(const s of e.entries){var o,i,c;const e=`${t}/${s.name}`,[,r]=e.split("/");s.project=r,s.path=e,s.key=null!==(o=null===(i=(c=crypto).randomUUID)||void 0===i?void 0:i.call(c))&&void 0!==o?o:Math.random().toString().slice(2),s.readOnly=a||!!s.package,y(s,e,n,s.readOnly)}}}const N=async e=>{let{auth:t,url:n}=e;const a=await(0,j.A)({operation:{operation:"get_components"},auth:t,url:n});return y(a,a.name,a.name,!1),a},A=async e=>{let{auth:t,url:n}=e;const{is_enabled:a,port:s,directory:r,error:o,message:i}=await v({auth:t,url:n}),c=await N({auth:t,url:n}),u={is_enabled:a,port:s,endpoints:a?await b({auth:t,url:n}):{},directory:r,error:o,message:i,fileTree:c};return l.A.update((e=>{e.custom_functions=u})),{custom_functions:u}};var k=n(4414);const C=function(){const e=(0,s.O$)(l.A,(e=>e.auth)),t=(0,s.O$)(l.A,(e=>e.url)),n=(0,s.O$)(l.A,(e=>e.is_local)),r=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.custom_functions)||void 0===t?void 0:t.port})),[d,p]=(0,a.useState)({}),[f,v]=(0,a.useState)({port:r||9926});return g()((async()=>{const{submitted:n}=d;if(n){const{port:n}=f;if(n)if((0,x.A)(n)){const a=await(async e=>{let{auth:t,url:n,port:a}=e;return(0,j.A)({operation:{operation:"configure_cluster",CUSTOM_FUNCTIONS_PORT:parseInt(a,10)},auth:t,url:n})})({auth:e,url:t,port:n});a.error?p({error:a.message}):A({auth:e,url:t})}else p({error:"port must be a valid number"});else p({error:"All fields are required"})}}),[d]),g()((()=>{d.submitted||p({})}),[f]),n&&!r?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"text-nowrap mb-3",children:"Custom Functions Port"}),(0,k.jsx)(m.A,{id:"custom_api_port",onChange:e=>v({...f,port:e.target.value}),className:"mb-3 "+(d.error&&!f.port?"error":""),type:"number",title:"custom api port",placeholder:"9926",value:f.port}),(0,k.jsx)(h.A,{color:"success",block:!0,onClick:()=>p({submitted:!0}),children:"Set Custom API Port"}),!!d.error&&(0,k.jsx)(c.A,{className:"mt-3 error",children:(0,k.jsx)(u.A,{children:d.error})})]}):(0,k.jsxs)(o.A,{children:[(0,k.jsxs)(i.A,{xs:"10",children:["Custom Functions Port ",n?r:"Set"]}),(0,k.jsx)(i.A,{xs:"2",className:"text-end",children:(0,k.jsx)("i",{className:"fa fa-check-circle fa-lg text-success"})})]})};var w=n(4834),_=n(2010),S=n(6177);const F=function(e){let{setConfiguring:t}=e;const{compute_stack_id:n}=(0,d.g)(),r=(0,s.O$)(l.A,(e=>e.auth),[n]),o=(0,s.O$)(l.A,(e=>e.url),[n]),i=(0,s.O$)(l.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[n]),[c,u]=(0,a.useState)({});return g()((async()=>{if(c.submitted){if("nats"===i)await(0,w.A)({auth:r,url:o,customFunctions_enabled:!0});else{const e=await(0,S.A)({auth:r,url:o});await(0,w.A)({auth:r,url:o,operation:"configure_cluster",CUSTOM_FUNCTIONS:!0,CLUSTERING:Boolean(null===e||void 0===e?void 0:e.config_cluster_user),CLUSTERING_PORT:null===e||void 0===e?void 0:e.config_cluster_port,CLUSTERING_USER:null===e||void 0===e?void 0:e.config_cluster_user,NODE_NAME:null===e||void 0===e?void 0:e.nodeName})}window._kmq&&window._kmq.push(["record","enabled custom functions"]),(0,_.A)({auth:r,url:o}),setTimeout((()=>t(!0)),0)}}),[c.submitted]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsx)(h.A,{color:"success",disabled:c.submitted,block:!0,onClick:()=>u({submitted:!0}),children:c.submitted?(0,k.jsx)("i",{className:"fa fa-spinner fa-spin text-white"}):"Enable Custom Functions"})]})};var P=n(6165),O=n(3150),$=n(3628);const E=function(e){let{setConfiguring:t}=e;const{compute_stack_id:n}=(0,d.g)(),a=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.custom_functions)||void 0===t?void 0:t.port}),[n]);return(0,k.jsxs)(o.A,{id:"functions",children:[(0,k.jsxs)(i.A,{xl:"3",lg:"4",md:"5",xs:"12",children:[(0,k.jsx)("span",{className:"floating-card-header",children:"enable custom functions"}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(p.tH,{onError:(e,t)=>(0,$.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:O.A,children:[(0,k.jsx)(C,{}),!!a&&(0,k.jsx)(F,{setConfiguring:t})]})})})]}),(0,k.jsx)(i.A,{xl:"9",lg:"8",md:"7",xs:"12",children:a?(0,k.jsx)(P.A,{headline:"Enable Custom Functions",description:"Click the button at left to enable Custom Functions. NOTE: We'll restart the instance when you click this button.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):(0,k.jsx)(P.A,{headline:"Set Your Custom Functions Server Port",description:"If your instance is behind a firewall, you'll need to ensure this port is accessible by other instances if you want to access the API.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})})})]})};var D=n(7348),I=n(5553);const T=async e=>{let{auth:t,url:n,project:a,file:s}=e;return(0,j.A)({operation:{operation:"get_component_file",project:a,file:s},auth:t,url:n})},R=async e=>{let{auth:t,url:n,project:a,file:s,payload:r}=e;return(0,j.A)({operation:{operation:"set_component_file",project:a,file:s,payload:r},auth:t,url:n})},z=async e=>{let{auth:t,url:n,project:a,file:s}=e;return(0,j.A)({operation:{operation:"drop_component",project:a,file:s},auth:t,url:n})},U=async e=>{let{auth:t,url:n,project:a,packageUrl:s,payload:r}=e;return r?(0,j.A)({auth:t,url:n,operation:{operation:"deploy_component",project:a,payload:r}}):(0,j.A)({auth:t,url:n,operation:{operation:"deploy_component",project:a,package:s}})};var L=n(1534),W=n(4319);const M=(0,n(6997).A)("editorCache");var q=n(8738),B=n.n(q);function H(){return(0,k.jsx)(c.A,{className:"file-browser-scroll-container",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"p-4",children:["You have no HarperDB applications yet. ",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),'Click "',(0,k.jsx)("i",{className:"fas fa-plus"}),' app" above to create one!',(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"See the"," ",(0,k.jsx)("a",{className:"docs-link",href:"https://docs.harperdb.io",target:"_blank",rel:"noreferrer",children:"documentation"})," ","for more info on HarperDB Applications."]})})})}function G(e,t){const n=+Boolean(e.entries),a=+Boolean(t.entries);return n===a?e.name.localeCompare(t.name):a-n}function V(){return(0,k.jsx)("i",{className:B()("package-icon fas fa-cube")})}function K(e){let{name:t,url:n,onPackageSelect:s,selectedPackage:r}=e;const[l,o]=(0,a.useState)(Boolean(r)&&t===(null===r||void 0===r?void 0:r.name));return(0,a.useEffect)((()=>{o(r&&r.name===t)}),[r,t]),(0,k.jsxs)("button",{type:"button",onClick:e=>{s(l?null:{name:t,url:n,event:e}),o(!l)},className:B()("package",{"package-selected":l}),onKeyDown:()=>{},children:[(0,k.jsx)(V,{}),(0,k.jsx)("span",{className:"package-text",children:t})]})}function Z(e){let{directoryEntry:t,selectedFile:n,selectedFolder:a,onFileSelect:s,onFolderSelect:r,Icon:l}=e;const o=Boolean(t.entries);const i=t.path===n,c=t.path===(null===a||void 0===a?void 0:a.path);return(0,k.jsxs)("button",{type:"button",onClick:function(e){const n=e.target.classList.contains("rename-file")||e.target.classList.contains("deploy-project");o?c&&n||r(c?null:t):s(i?null:t)},className:B()("file",{"file-selected":i,"folder-selected":c}),onKeyDown:function(){},children:[(0,k.jsx)(l,{className:"filename-icon"}),(0,k.jsx)("span",{className:"filename-text",children:t.name})]})}function Y(e){let{directoryEntry:t,userOnSelect:n,onFolderSelect:s,onDeployProject:r,onFileSelect:l,onPackageSelect:o,onFileRename:i,selectedFile:c,selectedFolder:u,selectedPackage:d}=e;const[p,m]=(0,a.useState)(!0),h=[...t.entries||[]].sort(G),f=(g=t.name)&&[...g].includes(".")?g.split(".").slice(-1)[0]:null;var g;let x;return x=2===t.path.split("/").length?()=>(0,k.jsx)("i",{className:B()("project-icon fas fa-file-code")}):t.entries?()=>function(e){let{toggleClosed:t}=e;return(0,k.jsx)("i",{onClick:t,onKeyDown:t,className:B()("folder-icon fas fa-folder-open")})}({isOpen:p,toggleClosed:()=>m(!p)}):()=>function(e){let{extension:t}=e;switch(t){case"js":return(0,k.jsx)("i",{className:B()("file-icon filetype-js fab fa-js")});case"yaml":return(0,k.jsx)("i",{className:B()("file-icon filetype-yaml fas fa-cog")});default:return(0,k.jsx)("i",{className:B()("file-icon filetype-unknown far fa-file-alt")})}}({extension:f}),(0,k.jsxs)(k.Fragment,{children:["components"!==t.name?(0,k.jsx)("li",{className:B()("folder-container"),children:t.package?(0,k.jsx)(K,{selectedPackage:d,onPackageSelect:o,name:t.name,url:t.package}):(0,k.jsx)(Z,{Icon:x,selectedFile:c,selectedFolder:u,selectedPackage:d,directoryEntry:t,onDeployProject:r,onFileRename:()=>{i(t)},onFileSelect:l,onFolderSelect:s,userOnSelect:n})},t.key):null,h.map((e=>(0,k.jsx)("li",{children:(0,k.jsx)("ul",{className:B()("folder",{"folder-contents-open":!0,"folder-contents-closed":!1}),children:(0,k.jsx)(Y,{selectedFile:c,selectedFolder:u,selectedPackage:d,directoryEntry:e,onFileSelect:l,onDeployProject:r,onFileRename:i,onFolderSelect:s,onPackageSelect:o,userOnSelect:n})})},e.key)))]})}const J=function(e){var t;let{files:n,userOnSelect:a,onFileSelect:s,onPackageSelect:r,onDeployProject:l,onFileRename:o,onFolderSelect:i,selectedFile:d,selectedFolder:p,selectedPackage:m}=e;return null!==n&&void 0!==n&&null!==(t=n.entries)&&void 0!==t&&t.length?(0,k.jsx)(c.A,{className:"file-browser-scroll-container",children:(0,k.jsx)(u.A,{children:(0,k.jsx)("ul",{className:"file-browser",children:(0,k.jsx)(Y,{selectedFile:d,selectedFolder:p,selectedPackage:m,onFileSelect:s,onFileRename:o,onFolderSelect:i,onDeployProject:l,onPackageSelect:r,userOnSelect:a,directoryEntry:n})})})}):(0,k.jsx)(H,{})};var Q=n(5023);Q.wG.init().then((e=>{e.editor.defineTheme("hdb",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#111111"}})}));const X={js:"javascript",yaml:"yaml",ts:"typescript",json:"json",md:"markdown",html:"html",css:"css",graphql:"graphql"};const ee=function(e){let{active:t,file:n,onFileChange:s}=e;const[r,l]=(0,a.useState)("javascript");return(0,a.useEffect)((()=>{const e=function(e){var t;const n=null===(t=e||"")||void 0===t?void 0:t.split(".");return n.length>1?n.slice(-1)[0]:""}(null===n||void 0===n?void 0:n.name);l(X[e]||"plaintext")}),[n]),t?(0,k.jsx)(Q.Ay,{height:"100%",language:r,value:(null===n||void 0===n?void 0:n.content)||"",theme:"hdb",onChange:s,options:{readOnly:null===n||void 0===n?void 0:n.readOnly,automaticLayout:!0,minimap:{enabled:!1}}}):null};function te(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Create a new app",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsxs)("span",{className:"ms-1",children:[" ",a]})]})}function ne(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Add a folder",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsx)("span",{className:"ms-1 d-none d-lg-inline-block",children:a})]})}function ae(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:n,className:s,title:"Delete selected app or folder",children:[(0,k.jsx)("i",{className:"fas fa-minus"}),a&&(0,k.jsx)("span",{className:"ms-1 d-none d-lg-inline-block",children:a})]})}function se(e){let{onClick:t,disabled:n,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Add a new file",children:[(0,k.jsx)("i",{className:"fas fa-plus"}),a&&(0,k.jsxs)("span",{className:"ms-1 d-none d-lg-inline-block",children:[" ",a]})]})}function re(e){let{onClick:t,disabled:n,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:n,className:s,title:"Delete selected file",children:[(0,k.jsx)("i",{className:"fas fa-minus"}),a&&(0,k.jsxs)("span",{className:"ms-1 d-none d-lg-inline-block",children:[" ",a]})]})}const le=function(e){let{children:t}=e;return(0,k.jsx)("ul",{className:"file-menu text-nowrap",children:t.map((e=>{var t,n,a;return e&&(0,k.jsx)("li",{className:"file-menu-item",children:e},null!==(t=null===(n=(a=crypto).randomUUID)||void 0===n?void 0:n.call(a))&&void 0!==t?t:Math.random().toString().slice(2))}))})};function oe(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s=""}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"Import external component or application",children:[(0,k.jsx)("i",{className:"fas fa-share-alt"}),a&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:a})]})}function ie(e){let{onClick:t,savingFile:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"save file to instance",children:[(0,k.jsx)("i",{className:B()("fas",{"fa-save":!n,"fa-spinner":n,"fa-spin":n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function ce(e){let{onClick:t,restarting:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"Click to restart your instance",children:[(0,k.jsx)("i",{className:B()("fas",{"fa-sync":!n,"fa-spinner":n,"fa-spin":n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function ue(e){let{onClick:t,restartAfterSave:n,disabled:a=!1,text:s="",extraClasses:r=""}=e;return(0,k.jsxs)("button",{type:"button",onClick:t,disabled:a,className:r,title:"Toggle whether saving a file restarts the application",children:[(0,k.jsx)("i",{className:B()("fa",{"fa-toggle-on":n,"fa-toggle-off":!n})}),s&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:s})]})}function de(e){let{onClick:t,disabled:n=!1,text:a="",extraClasses:s="",loading:r}=e;return(0,k.jsxs)("button",{type:"button",disabled:n,onClick:t,className:s,title:"revert file",children:[(0,k.jsx)("i",{className:B()("revert-file fas",{disabled:n,"fa-history":!r,"fa-spinner":r,"fa-spin":r})}),a&&(0,k.jsx)("span",{className:"ms-2 d-none d-lg-inline-block",children:a})]})}function pe(e){let{children:t}=e;return(0,k.jsx)("ul",{className:"editor-menu",children:t.map((e=>{var t,n,a;return e&&(0,k.jsx)("li",{className:"editor-menu-item",children:e},null!==(t=null===(n=(a=crypto).randomUUID)||void 0===n?void 0:n.call(a))&&void 0!==t?t:Math.random().toString().slice(2))}))})}function me(e){let{active:t,AddProjectButtonClick:n,InstallPackageButtonClick:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Add A New Application"}),(0,k.jsx)(te,{text:"Create A New Application Using The Default Template",extraClasses:"btn btn-block btn-success",onClick:n}),(0,k.jsx)(oe,{text:"Import Or Deploy A Remote Application Package",extraClasses:"btn btn-block btn-outline-success mt-2",onClick:a})]}):null}function he(e){let{active:t,type:n}=e;return t?(0,k.jsxs)("div",{className:"content-window text-nowrap",children:[(0,k.jsx)("i",{className:"fa fa-exclamation-triangle mt-5 pt-5"}),"\xa0",(0,k.jsxs)("span",{children:["You have selected a ",n,". Nothing to see here!"]})]}):null}var fe=n(6359);function ge(e){return/^[a-zA-Z0-9-_]+$/.test(e)}function xe(e){if(!e)return null;const t={type:null,user:null,repo:null,url:null,package:null,tag:null};if(e.url.match("://"))t.url=e.url,t.type="url";else if(e.url.match("semver:")){const[n,a,s]=e.url.split(/[/#]/);t.type="github",t.user=n,t.repo=a,t.tag=s.replace("semver:","")}else{t.type="npm";const n=e.url.split("/");if(1===n.length){const[e,a]=n[0].split("@");t.package=e,t.tag=a}else if(2===n.length){const[,e]=n,[a,s]=e.split("@");t.package=a,t.tag=s}}return t}function je(e,t,n){var s=this,r=(0,a.useRef)(null),l=(0,a.useRef)(0),o=(0,a.useRef)(null),i=(0,a.useRef)([]),c=(0,a.useRef)(),u=(0,a.useRef)(),d=(0,a.useRef)(e),p=(0,a.useRef)(!0);d.current=e;var m="undefined"!=typeof window,h=!t&&0!==t&&m;if("function"!=typeof e)throw new TypeError("Expected a function");t=+t||0;var f=!!(n=n||{}).leading,g=!("trailing"in n)||!!n.trailing,x="maxWait"in n,j="debounceOnServer"in n&&!!n.debounceOnServer,v=x?Math.max(+n.maxWait||0,t):null;(0,a.useEffect)((function(){return p.current=!0,function(){p.current=!1}}),[]);var b=(0,a.useMemo)((function(){var e=function(e){var t=i.current,n=c.current;return i.current=c.current=null,l.current=e,u.current=d.current.apply(n,t)},n=function(e,t){h&&cancelAnimationFrame(o.current),o.current=h?requestAnimationFrame(e):setTimeout(e,t)},a=function(e){if(!p.current)return!1;var n=e-r.current;return!r.current||n>=t||n<0||x&&e-l.current>=v},b=function(t){return o.current=null,g&&i.current?e(t):(i.current=c.current=null,u.current)},y=function e(){var s=Date.now();if(a(s))return b(s);if(p.current){var o=t-(s-r.current),i=x?Math.min(o,v-(s-l.current)):o;n(e,i)}},N=function(){if(m||j){var d=Date.now(),h=a(d);if(i.current=[].slice.call(arguments),c.current=s,r.current=d,h){if(!o.current&&p.current)return l.current=r.current,n(y,t),f?e(r.current):u.current;if(x)return n(y,t),e(r.current)}return o.current||n(y,t),u.current}};return N.cancel=function(){o.current&&(h?cancelAnimationFrame(o.current):clearTimeout(o.current)),l.current=0,i.current=r.current=c.current=o.current=null},N.isPending=function(){return!!o.current},N.flush=function(){return o.current?b(Date.now()):u.current},N}),[f,x,t,v,g,h,m,j]);return b}function ve(e,t){return e===t}function be(e,t){return t}function ye(e,t,n){var s=n&&n.equalityFn||ve,r=(0,a.useReducer)(be,e),l=r[0],o=r[1],i=je((0,a.useCallback)((function(e){return o(e)}),[o]),t,n),c=(0,a.useRef)(e);return s(c.current,e)||(i(e),c.current=e),s(l,e)&&i.cancel(),[l,i]}function Ne(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)((null===t||void 0===t?void 0:t.user)||""),[l]=ye(s,300),[o,i]=(0,a.useState)((null===t||void 0===t?void 0:t.repo)||""),[c]=ye(o,300),[u,d]=(0,a.useState)([]),[p,h]=(0,a.useState)(!1),[f,g]=(0,a.useState)((null===t||void 0===t?void 0:t.tag)||""),[x,j]=(0,a.useState)(""),[,v]=(0,a.useState)(!1),[b,y]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r((null===t||void 0===t?void 0:t.user)||""),i((null===t||void 0===t?void 0:t.repo)||""),d(null!==t&&void 0!==t&&t.tag?[null===t||void 0===t?void 0:t.tag]:[]),g((null===t||void 0===t?void 0:t.tag)||"")}),[t]),(0,a.useEffect)((()=>{l&&c?(v(!0),async function(e,t){try{const n=await fetch(`https://api.github.com/repos/${e}/${t}`),a=await n.json();return n.status<400?a.name:null}catch(n){return null}}(s,c).then((e=>{e?(j(e),y(!0),async function(e,t){const n=await fetch(`https://api.github.com/repos/${e}/${t}/git/refs/tags`);if(n.status<400)return(await n.json()).map((e=>e.ref.split("/").slice(-1)[0]));return[]}(s,c).then((e=>{v(!1),h(!0),d(e)}))):(v(!1),y(!1),j(""),d([]))})).catch((()=>{v(!1)}))):(y(!1),v(!1),d([]),g(""))}),[l,c,s]),(0,a.useEffect)((()=>{if(s&&o&&x){n(f?`${s}/${o}#semver:${f}`:`${s}/${o}`)}else n("")}),[x,f,s,n,o]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(m.A,{title:"Github Organization",className:"mt-2 form-control",valid:l.length>0&&c.length>0&&b,placeholder:"Github Organization",onChange:e=>r(e.target.value),value:s}),(0,k.jsx)(m.A,{title:"Github Repo",className:"mt-2",placeholder:"Github Repo",onChange:e=>i(e.target.value),value:o}),(null===u||void 0===u?void 0:u.length)>0&&(0,k.jsx)(fe.Ay,{className:"react-select-container github-tag-select mt-2",classNamePrefix:"react-select",isDisabled:!x,isSearchable:!0,placeholder:"Choose a tag",onChange:e=>g(e.value),options:u.map((e=>({label:e,value:e})))})]})}function Ae(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)(""),[l]=ye(s,300),[o,i]=(0,a.useState)(""),[c,u]=(0,a.useState)(""),[d,p]=(0,a.useState)(""),[m,h]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{r((null===t||void 0===t?void 0:t.package)||"")}),[t]),(0,a.useEffect)((function(){if(d){n(c?`${d}@${c}`:d)}else n("")}),[d,c,n]),(0,a.useEffect)((function(){l?(h(!0),async function(e){var t;const n=await fetch(`https://registry.npmjs.org/-/v1/search?text=${e}`),a=(await n.json()).objects.find((t=>t.package.name===e));return null===a||void 0===a||null===(t=a.package)||void 0===t?void 0:t.name}(l).then((e=>{h(!1),g(!!e),p(e),e&&async function(e){const t=await fetch(`https://registry.npmjs.org/${e}`);return(await t.json())["dist-tags"]}(e).then((e=>{i(e),u(null)})).catch((e=>{throw e}))})).catch((()=>{h(!1)}))):(p(null),i(null),u(null))}),[l]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("div",{className:"input-group",children:[(0,k.jsx)("input",{className:"mt-2 form-control",title:"enter an npm package specifier",value:s,placeholder:"Enter the [@scope]/package",onChange:function(e){r(e.target.value)}}),(0,k.jsx)("div",{className:"input-group-append",children:(0,k.jsx)("i",{className:B()("input-group-text fa mt-2",{"fa-spinner fa-spin loading":m,"fa-check found":l.length>0&&f,"fa-times not-found":l.length>0&&!(m||f),"fa-check not-searching":0===l.length})})})]}),(0,k.jsx)(fe.Ay,{className:"react-select-container mt-2",classNamePrefix:"react-select",isDisabled:!s,placeholder:"Choose a tag",disabled:!o,onChange:function(e){let{value:t}=e;u(t)},options:Object.entries(o||[]).map((e=>{let[t,n]=e;return{label:`${t} (${n})`,value:t}}))})]})}function ke(e){return function(e){try{return Boolean(new URL(e))}catch(t){return!1}}(e)&&(-1!==e.indexOf(".tar")||-1!==e.indexOf(".tar.gz")||-1!==e.indexOf(".tgz"))}function Ce(e){let{pkg:t,setPackageSpec:n}=e;const[s,r]=(0,a.useState)((null===t||void 0===t?void 0:t.url)||""),[l,o]=(0,a.useState)(ke(null===t||void 0===t?void 0:t.url));return(0,a.useEffect)((()=>{n(l?s:"")}),[s,l,n]),(0,k.jsx)(m.A,{type:"text",id:"tarball-url",title:"URL to gzipped tarball",className:B()("package-url-input mt-2",{invalid:!l}),value:s,onChange:e=>{o(0===e.target.value.length||ke(e.target.value)),r(e.target.value)},placeholder:"URL to gzipped tarball"})}var we=n(5996);function _e(e){let{selectedPackage:t,onConfirm:n,onCancel:r,deployTargets:o,active:i}=e;const c=!1,[u,d]=(0,a.useState)(Boolean(t)),[p,f]=(0,a.useState)(xe(t)),[g,x]=(0,a.useState)((null===p||void 0===p?void 0:p.type)||c),[j,v]=(0,a.useState)((null===t||void 0===t?void 0:t.name)||""),[b,y]=(0,a.useState)(!0),[N,A]=(0,a.useState)(""),[C,w]=(0,a.useState)(!1),_=(0,s.O$)(l.A,(e=>e.auth)),S=(0,s.O$)(l.A,(e=>e.url)),[F,P]=(0,a.useState)([{isCurrentInstance:!0,auth:_,instance:{url:S,instance_name:"This Instance"}}]);function O(){v(""),y(!1),x(!1),P([]),r()}return(0,a.useEffect)((function(){const e=xe(t);v((null===t||void 0===t?void 0:t.name)||""),f(xe(t)),x((null===e||void 0===e?void 0:e.type)||c),d(Boolean(t))}),[t,c]),(0,a.useEffect)((function(){y(ge(j))}),[j]),i?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Import Remote App Package"}),(0,k.jsx)(m.A,{valid:b&&j.length>0,title:"enter a name for this package",value:j,placeholder:"Application Name",onChange:e=>{v(e.target.value),y(ge(e.target.value))}}),!we.A.is_local_studio&&(0,k.jsx)(fe.Ay,{className:"react-select-container package-install-deploy-targets-dropdown mt-2",classNamePrefix:"react-select",isSearchable:!0,isMulti:!0,placeholder:"Choose your deploy targets",onChange:e=>{const t=e.map((e=>e.value)),n=o.filter((e=>t.includes(e.instance.url)));P(n)},options:o.map((e=>({label:e.instance.instance_name,value:e.instance.url})))}),(0,k.jsx)(fe.Ay,{className:"react-select-container mt-2",classNamePrefix:"react-select",placeholder:"How would you like to fetch this package?",onChange:function(e){let{value:t}=e;x(t)},options:[{label:"A Public GitHub Repo",value:"github"},{label:"Install a gzipped .tar file from a URL",value:"url"}]}),!b&&j.length>0&&(0,k.jsxs)("span",{className:"text-danger text-center mt-3",children:[(0,k.jsx)("i",{className:"fa fa-exclamation-triangle"}),(0,k.jsx)("br",{}),(0,k.jsx)("span",{className:"mt-2",children:"Project name limited to alphanumeric, dashes, & underscores."})]}),b&&F.length>0&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"mt-2"}),"npm"===g&&(0,k.jsx)(Ae,{projectName:j,installed:u,pkg:p,setPackageSpec:A}),"github"===g&&(0,k.jsx)(Ne,{projectName:j,installed:u,pkg:p,setPackageSpec:A}),"url"===g&&(0,k.jsx)(Ce,{projectName:j,installed:u,pkg:p,setPackageSpec:A})]}),b&&F.length>0&&g?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{onClick:async()=>{w(!0);try{await n(j,N,F)}catch(e){w(!1)}w(!1)},className:B()("btn btn-block btn-success mt-3",{loading:C}),disabled:!ge(j)||!N||!F.length,children:C?(0,k.jsx)("i",{className:"install-package-status-icon fa fa-spinner fa-spin"}):"Install Package"}),(0,k.jsx)(h.A,{onClick:O,className:"btn btn-block btn-outline-success mt-2",children:"Cancel"})]}):(0,k.jsx)(h.A,{onClick:O,className:"btn btn-block btn-outline-success mt-3",children:"Cancel"})]}):null}function Se(e){let{className:t,onClick:n,disabled:s,children:r}=e;const[l,o]=(0,a.useState)(!1);return(0,k.jsx)("button",{disabled:s,type:"button",onClick:async()=>{o(!0);try{await n(),o(!1)}catch(e){o(!1)}},className:B()(`${t} button-with-loader`,{loading:l}),children:l?(0,k.jsx)("i",{className:"button-with-loader-icon fas fa-spinner fa-spin"}):r})}function Fe(e){let{onCancel:t,onConfirm:n,onEnter:s,value:r,type:l,validate:o=()=>!0}=e;const[i,c]=(0,a.useState)(r||""),[u,d]=(0,a.useState)(!1);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("input",{className:B()("w-100 text-center",{invalid:i.length>0&&!u}),onChange:e=>{c(e.target.value),d(o(e.target.value))},onKeyDown:function(e){"Enter"===e.key?s(e.target.value):"Esc"===e.key&&t()},value:i,placeholder:`name for your new ${l}`,title:`name for your new ${l}`}),(0,k.jsx)("i",{title:"error: name must contain only alphanumeric characters, dashes and underscores.",className:B()("text-danger fa fa-warning",{hidden:u||0===i.length})}),(0,k.jsx)(Se,{disabled:!u,className:"btn btn-success btn-block mt-3",onClick:()=>n(i),children:"OK"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-success btn-block mt-2",onClick:t,children:"Cancel"}),i.length>0&&!u&&(0,k.jsx)("div",{className:"validation-message mt-5",children:"error: name must contain only alphanumeric characters, dashes and underscores."})]})}function Pe(e){let{active:t,onConfirm:n,onCancel:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Default Template Application"}),(0,k.jsx)(Fe,{type:"project",validate:ge,onEnter:n,onConfirm:n,onCancel:a})]}):null}function Oe(e){let{active:t,onConfirm:n,onCancel:a,selectedFolder:s}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Add Folder To ",(0,k.jsx)("span",{className:"text-success",children:s.path.replace("components","")})]}),(0,k.jsx)(Fe,{type:"folder",selectedFolder:s,onEnter:n,onConfirm:n,onCancel:a})]}):null}function $e(e){let{active:t,onConfirm:n,onCancel:a}=e;return t?(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsx)("h4",{className:"mb-5",children:"Add A New File"}),(0,k.jsx)(Fe,{type:"file",onEnter:n,onConfirm:n,onCancel:a})]}):null}function Ee(e){let{active:t,selectedFile:n,onConfirm:a,onCancel:s}=e;if(!t)return null;const{path:r}=n,l=r.split("/"),o=l.pop(),i=l.slice(1);return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:o})," File"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsxs)("div",{className:"mt-5",children:["Are you sure you want to delete ",(0,k.jsx)("span",{className:"text-danger",children:o})," from ",(0,k.jsx)("span",{className:"text-danger",children:i.join("/")}),"?"]})]})}function De(e){let{active:t,selectedFolder:n,onConfirm:a,onCancel:s}=e;if(!t)return null;if(!n)return null;const r=n.path.split("/"),l=2===r.length,o=l?null:r.slice(-1)[0];return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:l?null===n||void 0===n?void 0:n.project:o})," ",l?"Project":"Folder"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsx)("div",{className:"mt-5",children:l?(0,k.jsxs)("div",{children:["Are you sure you want to delete project ",(0,k.jsx)("span",{className:"text-danger",children:null===n||void 0===n?void 0:n.project})," ?"]}):(0,k.jsxs)("div",{children:["Are you sure you want to delete the folder ",(0,k.jsx)("span",{className:"text-danger",children:o})," from ",(0,k.jsx)("span",{className:"text-danger",children:null===n||void 0===n?void 0:n.project}),"?"]})})]})}function Ie(e){let{active:t,selectedPackage:n,onConfirm:a,onCancel:s}=e;if(!t)return null;const r=n.name;return(0,k.jsxs)("div",{className:"content-window",children:[(0,k.jsxs)("h4",{className:"mb-5",children:["Delete ",(0,k.jsx)("span",{className:"text-danger",children:r})," Package"]}),(0,k.jsx)(Se,{className:"btn btn-danger btn-block delete-button mt-2",onClick:a,children:"Delete"}),(0,k.jsx)("button",{type:"button",className:"btn btn-outline-danger btn-block mt-2",onClick:s,children:"Cancel"}),(0,k.jsxs)("div",{className:"mt-5",children:["Are you sure you want to delete ",(0,k.jsx)("span",{className:"text-danger",children:r}),"?"]})]})}const Te="DEFAULT_WINDOW",Re="DEFAULT_FOLDER_WINDOW",ze="CODE_EDITOR_WINDOW",Ue="NAME_FILE_WINDOW",Le="NAME_PROJECT_WINDOW",We="NAME_PROJECT_FOLDER_WINDOW",Me="INSTALL_PACKAGE_WINDOW",qe="DELETE_FILE_WINDOW",Be="DELETE_FOLDER_WINDOW",He="DELETE_PACKAGE_WINDOW";function Ge(e){let{children:t}=e;return(0,k.jsx)(c.A,{className:"editor-window",children:(0,k.jsx)(u.A,{children:t})})}const Ve=function(e){var t,n,s,r;let{deployTargets:l,fileTree:c,onFileSave:u,onAddFile:d,onRevertFile:p,onAddProjectFolder:m,onAddProject:h,onFileChange:f,onDeleteFolder:g,onDeleteFile:x,onDeletePackage:j,onDeployProject:v,onFileSelect:b,onInstallPackage:y,restartInstance:N,restartingInstance:A}=e;const[C,w]=(0,a.useState)(null),[_,S]=(0,a.useState)(null),[F,P]=(0,a.useState)(null),[O,$]=(0,a.useState)(Te),[E,D]=(0,a.useState)(null),[I,T]=(0,a.useState)(!0),[R,z]=(0,a.useState)(!1),[U,L]=(0,a.useState)(!1),W=(null===c||void 0===c||null===(t=c.entries)||void 0===t?void 0:t.length)>0,M=Boolean(W&&C),q=Boolean(W&&(C||F)),B=Boolean(C);function H(e,t){$(e),D(t)}function G(){P(null),w(null),S(null)}function V(){H(Te,O)}return(0,k.jsxs)(o.A,{id:"webide",children:[(0,k.jsxs)(i.A,{md:"4",xl:"3",className:"file-browser-outer-container mb-3",children:[(0,k.jsx)("div",{className:"floating-card-header-row",children:(0,k.jsxs)(le,{children:[(0,k.jsx)(te,{onClick:()=>H(Te,O),text:"app"}),(B||q)&&(0,k.jsx)("span",{className:"px-1",children:"|"}),B&&(0,k.jsx)(ne,{disabled:!B,onClick:()=>H(We,O),text:!q&&"folder"}),q&&(0,k.jsx)(ae,{disabled:!q,onClick:()=>{F?H(He,O):C&&H(Be,O)},text:"folder"}),(M||(null===_||void 0===_?void 0:_.path))&&(0,k.jsx)("span",{className:"px-1",children:"|"}),M&&(0,k.jsx)(se,{onClick:()=>H(Ue,O),disabled:!M,text:!(null!==_&&void 0!==_&&_.path)&&"file"}),(null===_||void 0===_?void 0:_.path)&&(0,k.jsx)(re,{disabled:!(null!==_&&void 0!==_&&_.path),onClick:()=>H(qe,O),text:!M&&"file"})]})}),(0,k.jsx)(J,{files:c,root:c.path,selectedFile:null===_||void 0===_?void 0:_.path,selectedFolder:C,selectedPackage:F,onDeployProject:v,onFolderSelect:e=>{G(),w(e),H(e?Re:Te,O)},onPackageSelect:e=>{G(),P(e),H(e?Re:Te,O)},onFileSelect:async e=>{const t=!e;if(G(),t)S(null),H(Te,O);else{const t=await b(e),{content:n,cached:a}=t;S({...e,content:n,cached:a}),H(ze,O)}}})]}),(0,k.jsxs)(i.A,{md:"8",xl:"9",className:"editor-window-container",children:[(0,k.jsxs)(o.A,{className:"floating-card-header-row g-0",children:[(0,k.jsx)(i.A,{className:"text-nowrap",children:_&&(0,k.jsxs)(k.Fragment,{children:[null===_||void 0===_||null===(n=_.path)||void 0===n||null===(s=n.split("/"))||void 0===s||null===(r=s.slice(1))||void 0===r?void 0:r.join(" > ")," ",(0,k.jsxs)("span",{className:"text-grey d-none d-xl-inline-block",children:["| ",(null===_||void 0===_?void 0:_.size)||"..."," bytes | ",null!==_&&void 0!==_&&_.mtime?new Date(_.mtime).toLocaleTimeString():"..."]})]})}),(0,k.jsx)(i.A,{className:"text-nowrap",children:(0,k.jsxs)(pe,{children:[(0,k.jsx)(ie,{savingFile:U,disabled:!(null!==_&&void 0!==_&&_.cached&&O===ze),onClick:async()=>{L(!0),await u(_,I),L(!1)},text:"save"}),(0,k.jsx)(de,{loading:R,disabled:!(null!==_&&void 0!==_&&_.cached&&O===ze),onClick:async()=>{z(!0);try{const e=await p(_),t={..._,content:e,cached:!1};S(t)}finally{z(!1)}},text:"revert"}),(0,k.jsx)("span",{className:"px-1",children:"|"}),(0,k.jsx)(ce,{restarting:A,onClick:N,text:"restart"}),(0,k.jsx)(ue,{restartAfterSave:I,onClick:()=>T(!I),text:"auto"})]})})]}),(0,k.jsxs)(Ge,{children:[(0,k.jsx)(me,{fileTree:c,active:O===Te,AddProjectButtonClick:()=>H(Le,O),InstallPackageButtonClick:()=>{P(null),H(Me,O)}}),(0,k.jsx)(he,{active:O===Re,type:F?"package":C?"folder":"nothing"}),(0,k.jsx)(Pe,{active:O===Le,onConfirm:async function(e){await h(e),H(E,O)},onCancel:V}),(0,k.jsx)(Oe,{projectName:null===C||void 0===C?void 0:C.project,active:O===We,selectedFolder:C,onConfirm:async function(e){await m(e,C),H(E,O)},onCancel:V}),(0,k.jsx)($e,{active:O===Ue,onConfirm:async function(e){const t=await d(e,C);S(t),H(ze,O)},onCancel:V}),(0,k.jsx)(_e,{active:O===Me,onConfirm:async function(e,t,n){await y(e,t,n),P(null),H(Te,O)},onCancel:V,deployTargets:l,selectedPackage:F}),(0,k.jsx)(Ie,{active:O===He,selectedPackage:F,onConfirm:async()=>{await j(F),H(Te,O),G()},onCancel:V}),(0,k.jsx)(De,{active:O===Be,selectedFolder:C,onConfirm:async()=>{await g(C),H(Te,O),G()},onCancel:V}),(0,k.jsx)(Ee,{active:O===qe,selectedFile:_,onConfirm:async()=>{await x(_),H(Te,O),G()},onCancel:V}),(0,k.jsx)(ee,{active:O===ze,file:_,onFileChange:async e=>{_&&(!function(e){const t={..._,content:e};S(t)}(e),await f({path:null===_||void 0===_?void 0:_.path,content:e}),S({..._,content:e,cached:!0}))}})]})]})]})},Ke=async e=>{let{auth:t,url:n,function_content:a,project:s,type:r,file:l}=e;return(0,j.A)({operation:{operation:"set_custom_function",function_content:a,project:s,type:r,file:l},auth:t,url:n})},Ze={routes:"'use strict';\n\n/* Dependencies\n- import any packages that are listed in your projects package.json\n- for example:\nimport needle from 'needle'\n*/\n\n/* Helpers\n- import any helper methods from your project's \"helpers\" directory\n- for example:\nimport filter from '../helpers/filter.js';\n*/\n\nmodule.exports = async (server, { hdbCore, logger }) => {\n // POST route\n // with hdbCore.preValidation to process basic auth\n // uses hdbCore.requese to execute the validated request\n server.route({\n url: '/path/to/my/route',\n method: 'POST',\n preValidation: hdbCore.preValidation,\n handler: hdbCore.request,\n })\n\n // GET route\n // with custom validation\n // uses hdbCore.requestWithoutAuthentication\n server.route({\n url: '/path/to/my/route/:id',\n method: 'GET',\n preValidation: async (request, reply) => {\n const token = request.headers.authorization\n const results = hdbCore.requestWithoutAuthentication({\n body: {\n operation: 'search_by_hash',\n schema: 'auth',\n table: 'tokens',\n hash_values: [token],\n get_attributes: ['id']\n }\n })\n if (!results.length) {\n const errorString = result.body.error || 'Sorry, there was an error authenticating your request';\n logger.error(errorString);\n throw new Error(errorString);\n }\n },\n handler: async (request) => {\n const id = parseInt(request.params.id)\n request.body= {\n operation: 'sql',\n sql: `SELECT * FROM dev.dogs WHERE id = ${id}`\n };\n\n /*\n * requestWithoutAuthentication bypasses the standard HarperDB authentication.\n * YOU MUST ADD YOUR OWN preValidation method above, or this method will be available to anyone.\n */\n const result = await hdbCore.requestWithoutAuthentication(request);\n\n return result\n }\n });\n};\n",helpers:"\n/* filters the results, only returning the selected keys */\nexport default (result, keys) => {\n return result.map(r => {\n const f = {}\n keys.forEach(k => f[k] = r[k])\n return f;\n })\n}\n"};var Ye=n(9561);const Je=function(e){let{items:t,toggleDropItem:n,toggleCreate:r,baseUrl:c,restarting:u,itemType:p,project:f}=e;const g=(0,d.Zp)(),x=(0,D.MW)(),v=(0,s.O$)(l.A,(e=>e.auth)),b=(0,s.O$)(l.A,(e=>e.url)),[y,N]=(0,a.useState)(!1),[C,w]=(0,a.useState)(!1),[_,S]=(0,a.useState)(!1),F=async e=>{e.preventDefault();let n,a=!1;if(y&&!t.includes(y)||(w(!0),a=!0),y&&!(0,Ye.A)(y)&&(w(!0),a=!0,x.error(("projects"===p?"Project":"File")+" names may only contain letters, numbers, hyphens, or underscores.")),a)return!1;if(S(!0),"projects"===p)n=await(async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"add_custom_function_project",project:a},auth:t,url:n})})({auth:v,url:b,project:y});else{const e=(e=>Ze[e]||null)(p);n=await Ke({auth:v,url:b,project:f,type:p,file:y,function_content:e})}return n.error?(S(!1),r(!1),x.error(n.message)):setTimeout((async()=>(await(0,L.A)({auth:v,url:b,service:"custom_functions"}),await A({auth:v,url:b}),g(`${c}/${y}`))),500)};return(0,a.useEffect)((()=>{n()}),[n]),(0,a.useEffect)((()=>{y&&t.find((e=>e===y))&&g(`${c}/${y}`)}),[t]),(0,k.jsxs)(o.A,{className:"item-row form",children:[(0,k.jsx)(i.A,{className:"input-holder",children:(0,k.jsx)(m.A,{id:"name",invalid:C,onChange:e=>{w(!1),N(e.target.value)},value:y||"",disabled:_,type:"text",name:"name",placeholder:"projects"===p?"ex: api, api-v1, dogs":"routes"===p?"ex: v1, post, public":"ex: filter, auth, queries"})}),(0,k.jsx)(i.A,{className:"item-action",children:_?(0,k.jsx)(h.A,{color:"success",className:"round me-1",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin text-white"})}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{id:"createItem",color:"success",className:"round me-1",disabled:u,onClick:F,onKeyDown:e=>13!==e.keyCode||F(e),children:(0,k.jsx)("i",{className:"fa fa-check text-white"})}),(0,k.jsx)(h.A,{id:"toggleCreate",color:"black",className:"round",onClick:()=>r(!1),children:(0,k.jsx)("i",{className:"fa fa-times text-white"})})]})})]})},Qe=async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"drop_custom_function_project",project:a},auth:t,url:n})};const Xe=function(e){let{item:t,baseUrl:n,isActive:r,toggleDropItem:c,isDropping:u,itemType:p,restarting:m}=e;const{project:f}=(0,d.g)(),g=(0,d.Zp)(),x=(0,D.MW)(),[v,b]=(0,a.useState)(!1),[y,N]=(0,a.useState)(!1),C=(0,s.O$)(l.A,(e=>e.auth)),w=(0,s.O$)(l.A,(e=>e.url)),_=async()=>{if(!v)return!1;let e;return e="projects"===p?await Qe({auth:C,url:w,project:t}):await(async e=>{let{auth:t,url:n,project:a,type:s,file:r}=e;return(0,j.A)({operation:{operation:"drop_custom_function",project:a,type:s,file:r},auth:t,url:n})})({auth:C,url:w,project:f,type:p,file:t}),e.error?(b(!1),N(!1),x.error(e.message)):(x.success(e.message),(0,L.A)({auth:C,url:w,service:"custom_functions"}),await A({auth:C,url:w}),g(n))};return(0,k.jsxs)(o.A,{title:`View${r?"ing":""} ${t}`,className:"item-row "+(r?"active":""),onClick:m?null:()=>!(r||u||v)&&g(`${n}/${t}`),tabIndex:"0",children:[(0,k.jsx)(i.A,{className:"item-label "+(v?"text-danger text-nowrap":""),children:v?`drop ${t}?`:"projects"===p?`/${t}`:t}),(0,k.jsx)(i.A,{className:"item-action",children:y?(0,k.jsx)(h.A,{tabIndex:"-1",disabled:!0,color:"purple",className:"round",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):v?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(h.A,{id:"confirmDropItem",color:"danger",className:"round me-1",title:`confirm drop ${t}`,onClick:()=>{b(!1),N(!0),_()},children:(0,k.jsx)("i",{className:"fa fa-check text-white"})}),(0,k.jsx)(h.A,{id:"cancelDropItem",color:"black",className:"round",title:`Cancel drop ${t}`,onClick:()=>{b(!1)},children:(0,k.jsx)("i",{className:"fa fa-times text-white"})})]}):u?(0,k.jsx)(h.A,{id:"dropItem",color:"danger",className:"round",title:`Drop ${t}`,onClick:()=>{b(t),c(!1)},children:(0,k.jsx)("i",{className:"fa fa-minus text-white"})}):r?(0,k.jsx)(h.A,{tabIndex:"-1",color:"purple",className:"round",children:(0,k.jsx)("i",{className:"fa fa-chevron-right"})}):null})]},t)};const et=function(e){let{items:t,toggleDropItem:n,isDropping:a,toggleCreate:s,project:r,isCreating:l,restarting:c,itemType:u,showForm:d}=e;return(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsx)(i.A,{children:"projects"===u?"projects":`/${r}/${u}`}),d&&null!==t&&void 0!==t&&t.length?(0,k.jsxs)(i.A,{className:"text-end",children:[(0,k.jsx)(h.A,{disabled:c,id:"toggleRemove",color:"link",title:"Remove Functions",className:"add-remove me-3",onClick:()=>{n(!a),s(!1)},children:(0,k.jsx)("i",{className:"fa fa-minus"})}),(0,k.jsx)(h.A,{disabled:c,id:"toggleCreate",color:"link",title:"Add Function",className:"add-remove me-1",onClick:()=>{s(!l),n(!1)},children:(0,k.jsx)("i",{className:"fa fa-plus"})})]}):null]})};const tt=function(e){let{items:t,activeItem:n,baseUrl:s,restarting:r,itemType:l,project:o,showForm:i}=e;const[d,p]=(0,a.useState)(!1),[m,h]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{h(),p()}),[n,t.length]),(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsx)(et,{items:t,itemType:l,isDropping:d,toggleDropItem:p,isCreating:m,toggleCreate:h,restarting:r,project:o,showForm:i}),(0,k.jsxs)(c.A,{className:"my-3",children:[t&&t.length?(0,k.jsx)(u.A,{className:"scrollable "+(m?"creating":""),children:t.map((e=>(0,k.jsx)(Xe,{item:e,baseUrl:s,isActive:n===e,isDropping:d,toggleDropItem:p,itemType:l,restarting:r},e)))}):null,i&&t&&!t.length||m?(0,k.jsx)(u.A,{children:(0,k.jsx)(Je,{items:t,itemType:l,baseUrl:s,isDropping:d,toggleDropItem:p,isCreating:m,toggleCreate:h,restarting:r,project:o})}):!t||t.length||m?null:(0,k.jsx)(u.A,{children:(0,k.jsx)("div",{className:"py-3 text-center no-content",children:"no functions found"})})]})]})};const nt=function(){const e=(0,d.Zp)(),t=(0,D.MW)(),{customer_id:n,compute_stack_id:r,project:p,type:m,file:f}=(0,d.g)(),g=(0,s.O$)(l.A,(e=>e.auth)),x=(0,s.O$)(l.A,(e=>e.url)),[v,b]=(0,a.useState)(""),[y,N]=(0,a.useState)(""),A=(0,a.useCallback)((async()=>{if(p&&m&&f&&"undefined"!==f){const e=await(async e=>{let{auth:t,url:n,project:a,type:s,file:r}=e;return(0,j.A)({operation:{operation:"get_custom_function",project:a,type:s,file:r},auth:t,url:n})})({auth:g,url:x,project:p,type:m,file:f});b(null===e||void 0===e?void 0:e.message),N(null===e||void 0===e?void 0:e.message)}else b("")}),[g,x,p,m,f,b]);return(0,a.useEffect)((()=>{A()}),[p,f,A,r]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsxs)(i.A,{children:["edit >\xa0",(0,k.jsxs)("i",{children:["/",p,f&&"undefined"!==f&&`/${m}/${f}.js`]})]}),(0,k.jsxs)(i.A,{className:"text-end",children:[(0,k.jsxs)(h.A,{onClick:A,color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"reload"}),(0,k.jsx)("i",{title:"Reload File",className:"fa fa-sync-alt"})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"}),(0,k.jsxs)(h.A,{onClick:()=>e(`/o/${n}/i/${r}/functions/deploy/${p}`),color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"deploy"}),(0,k.jsx)("i",{title:"Deploy Project",className:"fa fa-share"})]})]})]}),(0,k.jsx)(c.A,{className:"my-3",children:v?(0,k.jsxs)(u.A,{children:[(0,k.jsx)("div",{className:"code-editor-holder",children:(0,k.jsx)(Q.Ay,{height:"100%",defaultLanguage:"javascript",value:v,theme:"vs-dark",onChange:b})}),(0,k.jsxs)(o.A,{children:[(0,k.jsx)(i.A,{md:"6",className:"mt-2",children:(0,k.jsx)(h.A,{block:!0,color:"grey",title:"Revert Code to Last Saved State",disabled:v===y,onClick:A,id:"reset",children:(0,k.jsx)("i",{className:"fa fa-undo"})})}),(0,k.jsx)(i.A,{md:"6",className:"mt-2",children:(0,k.jsx)(h.A,{block:!0,title:"Save Code to Instance",color:"success",id:"addEditItem",onClick:async()=>{const e=await Ke({auth:g,url:x,function_content:v,project:p,type:m,file:f});e.error?t.error(e.message):(setTimeout((()=>(0,L.A)({auth:g,url:x,service:"custom_functions"})),500),t.success(e.message)),A()},children:(0,k.jsx)("i",{className:"fa fa-save"})})})]})]}):(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"empty-prompt narrow",children:[(0,k.jsx)("div",{className:"mt-3 text-bold",children:"This project does not yet have any routes or helpers"}),(0,k.jsx)("div",{className:"mt-3",children:"Add some using the form fields at left."})]})})})]})};var at=n(4343);const st=e=>{let{initializing:t,loading:n,handleClick:a}=e;return[{Header:"instance name",accessor:"instance_name"},{Header:"instance url",accessor:"url"},{Header:"cf capable",id:"hdb-narrow-cfcapable",Cell:e=>{let{row:{original:{custom_functions_status:t}}}=e;return t.error?"no":"yes"}},{Header:"cf enabled",id:"hdb-narrow-cfenabled",Cell:e=>{let{row:{original:{custom_functions_status:t}}}=e;return t.is_enabled?"yes":"no"}},{Header:"has project",id:"hdb-narrow-cfhasproject",Cell:e=>{let{row:{original:{has_current_project:t}}}=e;return t?"yes":"no"}},{Header:"deploy",id:"hdb-narrow-deploy",Cell:e=>{let{row:{original:{compute_stack_id:s,custom_functions_status:r,has_auth:l}}}=e;return r.is_enabled&&l?(0,k.jsx)(h.A,{color:"success",block:!0,size:"sm",disabled:t||n[s],onClick:()=>a(s,"deploy"),children:(0,k.jsx)("i",{className:"fa "+("deploy"===n[s]?"fa-spinner fa-spin":"fa-share")})}):null}},{Header:"remove",id:"hdb-narrow-remove",Cell:e=>{let{row:{original:{compute_stack_id:t,custom_functions_status:s,has_current_project:r,has_auth:l}}}=e;return s.is_enabled&&r&&l?(0,k.jsx)(h.A,{color:"danger",block:!0,size:"sm",disabled:n[t],onClick:()=>a(t,"drop"),children:(0,k.jsx)("i",{className:"fa "+("drop"===n[t]?"fa-spinner fa-spin":"fa-trash")})}):null}}]},rt={filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};const lt=function(){const{customer_id:e,compute_stack_id:t,project:n}=(0,d.g)(),r=(0,d.Zp)(),[p]=(0,W.A)({}),m=(0,s.O$)(l.A,(e=>e.auth)),f=(0,s.O$)(l.A,(e=>e.url)),x=(0,s.O$)(l.A,(e=>{var t;return null===(t=e.registration)||void 0===t?void 0:t.version})),[{payload:y,file:N},A]=(0,a.useState)([]),C=`/o/${e}/i/${t}/functions/edit/${n}`,w=(0,s.O$)(I.A,(e=>e.instances.filter((e=>e.compute_stack_id!==t)))),[_,S]=x.split("."),F=_>=3&&(_>3||S>=3),[P,O]=(0,a.useState)([]),[$,E]=(0,a.useState)(F),[D,T]=(0,a.useReducer)(((e,t)=>({...e,...t})),{}),[R,z]=(0,a.useState)(rt),U=(0,a.useCallback)((()=>r(C)),[r,C]),M=(0,a.useCallback)((async(e,t)=>{const a=P.find((t=>t.compute_stack_id===e)),s=p[e];if(a&&s){T({[e]:t});let r=!1;const l=await v({auth:s,url:a.url});if(!l.error){const e=await b({auth:s,url:a.url});r=Object.keys(e).includes(n)}const o=P.map((t=>(t.compute_stack_id===e&&(t.custom_functions_status=l,t.has_current_project=r),t)));O(o),T({[e]:null})}}),[p,n,P]),q=(0,a.useCallback)((async(e,t)=>{const a=P.find((t=>t.compute_stack_id===e)),s=p[e];a&&s&&(T({[e]:t}),"deploy"===t?(await(async e=>{let{auth:t,url:n,project:a,payload:s,file:r}=e;return(0,j.A)({operation:{operation:"deploy_custom_function_project",project:a,payload:s,file:r},auth:t,url:n})})({auth:s,url:a.url,payload:y,project:n,file:N}),$&&await(async e=>{let{auth:t,url:n,projects:a,dry_run:s=!1}=e;return(0,j.A)({operation:{operation:"install_node_modules",projects:a,dry_run:s},auth:t,url:n})})({auth:s,url:a.url,projects:[n]}),await(0,L.A)({auth:s,url:a.url,service:"custom_functions"})):await Qe({auth:s,url:a.url,project:n}),setTimeout((()=>{T({[e]:!1}),M(e,t)}),1e3))}),[N,p,y,n,P,M,$]);return g()((async()=>{if(m&&f&&n){A(!1);const e=await(async e=>{let{auth:t,url:n,project:a,skip_node_modules:s}=e;return(0,j.A)({operation:{operation:"package_custom_function_project",project:a,skip_node_modules:s},auth:t,url:n})})({auth:m,url:f,project:n,skip_node_modules:$});A(e)}}),[m,f,n,$]),g()((async()=>{if(w){const e=await Promise.all(w.map((async e=>{const t=p[e.compute_stack_id];let a={};if(t){const s=await v({auth:t,url:e.url});return s.error||(a=await b({auth:t,url:e.url})),{...e,custom_functions_status:s,has_auth:!0,has_current_project:Object.keys(a).includes(n)}}return{...e,custom_functions_status:!1}})));O(e)}}),[w,n]),(0,a.useEffect)((()=>{z({...R,totalPages:Math.ceil((P.length||R.pageSize)/R.pageSize)})}),[z,R.pageSize]),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsxs)(i.A,{children:["deploy ",n&&`> ${n}`]}),(0,k.jsxs)(i.A,{className:"text-end",children:[F&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(h.A,{color:"link",title:"Turn on autofresh",onClick:()=>E(!$),children:[(0,k.jsx)("span",{className:"me-2",children:"install dependencies at destination"}),(0,k.jsx)("i",{className:"fa fa-lg fa-toggle-"+($?"on":"off")})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"})]}),(0,k.jsxs)(h.A,{onClick:U,color:"link",className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"back to edit"}),(0,k.jsx)("i",{title:"Edit Project",className:"fa fa-edit"})]})]})]}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{className:"react-table-holder",children:P.length?(0,k.jsx)(at.A,{columns:st({initializing:!y,loading:D,handleClick:q}),data:P,page:R.page,pageSize:R.pageSize,totalPages:R.totalPages,showFilter:R.showFilter,sorted:R.sorted,onFilteredChange:e=>z({...R,filtered:e}),onSortedChange:e=>z({...R,sorted:e}),onPageChange:e=>z({...R,pageSize:e}),onPageSizeChange:e=>z({...R,page:0,pageSize:e})}):(0,k.jsx)("div",{className:"empty-prompt",children:"Please register at least one Custom Function-enabled instance to deploy to"})})})]})};const ot=function(e){let{loading:t,refreshCustomFunctions:n,restarting:a}=e;const r=(0,s.O$)(l.A,(e=>e.auth)),o=(0,s.O$)(l.A,(e=>e.url));return(0,k.jsxs)("span",{className:"structure-reloader d-block text-center mb-4",children:[(0,k.jsxs)(h.A,{disabled:t,color:"link",onClick:n,children:[(0,k.jsx)("span",{className:"me-2",children:"refresh projects"}),(0,k.jsx)("i",{title:"Refresh Endpoint Files",className:"fa "+(t?"fa-spinner fa-spin":"fa-sync-alt")})]}),(0,k.jsx)("span",{className:"mx-3 text",children:"|"}),(0,k.jsxs)(h.A,{disabled:a,color:"link",onClick:()=>(0,L.A)({auth:r,url:o,service:"custom_functions"}),className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"restart server"}),(0,k.jsx)("i",{title:"Refresh Endpoint Files",className:"fa "+(a?"fa-spinner fa-spin":"fa-stop-circle")})]}),(0,k.jsx)("hr",{className:"d-block d-md-none mt-4"})]})};const it=function(e){let{url:t,project:n,fileCount:a}=e;return(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsxs)("div",{className:"floating-card-header",children:["/",n,"/static"]}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(o.A,{className:"item-row",children:[(0,k.jsx)(i.A,{className:"item-label",children:a?"enabled":'"static" subfolder not found'}),(0,k.jsxs)(i.A,{className:"item-action",children:[(0,k.jsx)(h.A,{tabIndex:"-1",color:a?"success":"danger",disabled:!a,className:"round me-1",children:a}),(0,k.jsx)(h.A,{tabIndex:"-1",color:"purple",className:"round",disabled:!a,href:`${t}/${n}/static`,target:"_blank",rel:"noopener noreferrer",children:(0,k.jsx)("i",{title:"View UI",className:"fa fa-share"})})]})]})})})]})};var ct=n(7666);const ut=function(e){var t,n,c;let{refreshCustomFunctions:u,loading:m}=e;const{customer_id:h,compute_stack_id:f,action:g="edit",project:x,file:j}=(0,d.g)(),v=(0,d.Zp)(),b=(0,s.O$)(l.A,(e=>e.custom_functions)),y=(0,s.O$)(l.A,(e=>e.registration)),[N,A]=((null===y||void 0===y?void 0:y.version)||"").split("."),C=parseFloat(`${N}.${A}`)<4.1,w=(0,s.O$)(l.A,(e=>"custom_functions"===e.restarting_service)),_=(0,s.O$)(l.A,(e=>{var t;return e.custom_functions_url||`${e.url.split(":").slice(0,-1).join(":")}:${null===(t=e.custom_functions)||void 0===t?void 0:t.port}`})),S=`/o/${h}/i/${f}/functions/${g}`;return(0,a.useEffect)((()=>{const e=(null===b||void 0===b?void 0:b.endpoints)&&Object.keys(null===b||void 0===b?void 0:b.endpoints).length,t=(null===b||void 0===b?void 0:b.endpoints)&&Object.keys(null===b||void 0===b?void 0:b.endpoints).includes(x);if(e&&x&&!t){const e=x&&Object.keys(null===b||void 0===b?void 0:b.endpoints)[0];v(`${S}/${e}`)}else if(e&&x&&!j){var n,a;const e=x&&(null===b||void 0===b||null===(n=b.endpoints[x])||void 0===n?void 0:n.routes[0]),t=x&&(null===b||void 0===b||null===(a=b.endpoints[x])||void 0===a?void 0:a.helpers[0]);v(`${S}/${x}/${e?"routes":"helpers"}/${e||t}`)}else if(e&&!x){const e=Object.keys(null===b||void 0===b?void 0:b.endpoints)[0];v(`${S}/${e}`)}else e||v(S)}),[null===b||void 0===b?void 0:b.endpoints,h,f,v,g,x,j,S]),(0,r.A)((async()=>{if(_&&w)try{await fetch(_),l.A.update((e=>{e.restarting_service=!1}))}catch(e){console.log(e)}}),1e3),(0,k.jsxs)(o.A,{id:"functions",children:[(0,k.jsx)(i.A,{xl:"3",lg:"4",md:"6",xs:"12",children:(0,k.jsxs)(p.tH,{onError:(e,t)=>(0,$.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:O.A,children:[(0,k.jsx)(tt,{itemType:"projects",items:Object.keys(null===b||void 0===b?void 0:b.endpoints)||[],activeItem:x,baseUrl:S,restarting:w,showForm:"edit"===g}),x&&"edit"===g&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(tt,{itemType:"routes",items:x&&(null===b||void 0===b||null===(t=b.endpoints[x])||void 0===t?void 0:t.routes)||[],project:x,activeItem:j,baseUrl:`${S}/${x}/routes`,restarting:w,showForm:"edit"===g}),(0,k.jsx)(tt,{itemType:"helpers",items:x&&(null===b||void 0===b||null===(n=b.endpoints[x])||void 0===n?void 0:n.helpers)||[],project:x,activeItem:j,baseUrl:`${S}/${x}/helpers`,restarting:w,showForm:"edit"===g}),C&&(0,k.jsx)(it,{url:_,project:x,fileCount:x&&(null===b||void 0===b||null===(c=b.endpoints[x])||void 0===c?void 0:c.static)||0})]}),(0,k.jsx)("hr",{className:"mt-0"}),(0,k.jsxs)("div",{className:"entity-manager-footer",children:[(0,k.jsx)("div",{className:"text-bold mb-1",children:"Root File Directory"}),(0,k.jsx)(ct.A,{text:b.directory}),(0,k.jsx)("div",{className:"text-bold mb-1 mt-3",children:"Custom Functions Server URL"}),(0,k.jsx)(ct.A,{text:_})]}),(0,k.jsx)("hr",{}),(0,k.jsx)(ot,{refreshCustomFunctions:u,loading:m,restarting:w})]})}),(0,k.jsx)(i.A,{xl:"9",lg:"8",md:"6",xs:"12",children:"deploy"===g?(0,k.jsx)(lt,{}):x?(0,k.jsx)(nt,{}):(0,k.jsx)(P.A,{refreshCustomFunctions:u,headline:`Please ${null!==b&&void 0!==b&&b.endpoints.length?"choose":"create"} a project at left.`})})]})};function dt(e){return e.split("/").slice(2).join("/")}function pt(e,t,n,a){return e.reduce(((e,s)=>{const r=s.compute_stack_id,l=t[r];if(null===l||void 0===l||!l.version)return e;const[o,i]=(null===l||void 0===l?void 0:l.version.split("."))||[];return parseInt(o,10)>=4&&parseInt(i,10)>=2&&e.push({isCurrentInstance:r===n,auth:a,instance:s}),e}),[])}const mt=function(e){let{refreshCustomFunctions:t,loading:n}=e;const{compute_stack_id:r}=(0,d.g)(),o=(0,s.O$)(l.A,(e=>e.registration)),{fileTree:i}=(0,s.O$)(l.A,(e=>e.custom_functions)),c=(0,s.O$)(l.A,(e=>e.auth)),u=(0,s.O$)(l.A,(e=>e.url)),[p,m]=((null===o||void 0===o?void 0:o.version)||"").split(".")||[],h=parseFloat(`${p}.${m}`)>=4.2,f=(0,s.O$)(I.A,(e=>e.instances)),[g]=(0,W.A)({}),[x,v]=M({}),[b,y]=(0,a.useState)(!1),N=(0,D.MW)();function A(e){let{path:t}=e;const n={...x},a=`${r}_${t}`;a in n&&delete n[a],v({...n})}async function C(e){let{auth:t,url:n}=e;y(!0),setTimeout((async()=>{await(0,L.A)({auth:t,url:n,service:"http_workers"}),y(!1)}),100)}return h?(0,k.jsx)(Ve,{fileTree:i,deployTargets:pt(f,g,r,c),onRevertFile:async function(e){A({path:e.path});const{error:n,message:a}=await T({auth:c,url:u,project:e.project,file:dt(e.path)});return n?N.error(a):(await t(),a)},onFileChange:async function(e){const{path:t,content:n}=e,a=`${r}_${t}`;v({...x,[a]:n})},onFileSave:async function(e,n){const a=e.path.split("/").slice(2).join("/"),s={auth:c,url:u,project:e.project,file:a,payload:e.content},{error:r,message:l}=await R(s);r&&N.error(l),n&&await C({auth:c,url:u}),A({path:e.path}),e.cached=!1,await t()},onUpdate:t,onAddFile:async function(e,n){const{path:a,project:s}=n,r=dt(a),l=r?`${r}/${e}`:e;return await R({auth:c,url:u,project:s,file:l,payload:""}),await t(),{content:"",path:[n.path,e].join("/"),project:s}},onAddProject:async function(e){const{error:n,message:a}=await(async e=>{let{auth:t,url:n,project:a}=e;return(0,j.A)({operation:{operation:"add_component",project:a},auth:t,url:n})})({auth:c,url:u,project:e});n&&N.error(a),await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t()},onAddProjectFolder:async function(e,n){const{path:a,project:s}=n,r=dt(a),l=r?`${r}/${e}`:e,{error:o,message:i}=await R({auth:c,url:u,project:s,file:l});o&&N.error(i),await t()},onInstallPackage:async function(e,n,a){const s=a.map((async t=>{const{error:a,message:s}=await U({auth:t.auth,url:t.instance.url,project:e,packageUrl:n});a&&N.error(s),await(0,L.A)({auth:t.auth,url:t.instance.url,service:"http_workers"})}));await Promise.all(s),await t()},onDeployProject:async function(e){let{project:n,deployTarget:a}=e;const{auth:s,instance:r}=a,{payload:l}=await(async e=>{let{auth:t,url:n,project:a,skip_node_modules:s=!0}=e;return(0,j.A)({auth:t,url:n,operation:{operation:"package_component",project:a,skip_node_modules:s}})})({auth:c,url:u,project:n.name});await U({auth:s,url:r.url,project:n.name,payload:l}),await(0,L.A)({auth:s,url:r.url,service:"http_workers"}),await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t()},onDeleteFile:async function(e){const{error:n,message:a}=await z({auth:c,url:u,project:e.project,file:dt(e.path)});n&&N.error(a),await t()},onDeleteFolder:async function(e){let{path:n,project:a}=e;const s=dt(n);if(s.length>0){const{error:e,message:t}=await z({auth:c,url:u,project:a,file:s});e&&N.error(t)}else{const{error:e,message:t}=await z({auth:c,url:u,project:a});e&&N.error(t)}await t()},onDeletePackage:async function(e){let{name:n}=e;const{error:a,message:s}=await z({auth:c,url:u,project:n});a?N.error(s):(await(0,L.A)({auth:c,url:u,service:"http_workers"}),await t())},onFileSelect:async function(e){const{path:t,project:n,name:a}=e,s=dt(t),l=`${r}_${t}`,o=x[l],i=l in x;if(i)return{cached:i,content:o,path:t,project:n,name:a};const{error:d,message:p}=await T({auth:c,url:u,project:n,file:s});return d?(N.error(p),{content:"",path:t,project:n,name:a,cached:!1}):{cached:i,content:p,path:t,project:n,name:a}},onFileRename:async function(e,n){const{path:a,content:s,project:r}=n,l=dt(a).split("/").slice(0,-1).join("/"),o=l?`${l}/${e}`:e;await z({auth:c,url:u,project:r,file:dt(a)}),await R({auth:c,url:u,project:r,file:o,payload:s}),t()},refreshingCustomFunctions:n,restartInstance:async()=>C({auth:c,url:u}),restartingInstance:b}):(0,k.jsx)(ut,{refreshCustomFunctions:t,loading:n})};const ht=function(){return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("div",{className:"floating-card-header text-end",children:"\xa0"}),(0,k.jsx)(c.A,{className:"my-3",children:(0,k.jsx)(u.A,{children:(0,k.jsxs)("div",{className:"empty-prompt narrow",children:[(0,k.jsx)("i",{className:"fa fa-bullhorn fa-3x text-success"}),(0,k.jsx)("div",{className:"mt-3 text-bold",children:"Coming Soon: Custom Functions!"}),(0,k.jsx)("div",{className:"mt-3",children:(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Add your own API endpoints to a standalone API server inside HarperDB"}),(0,k.jsx)("li",{children:"Use HarperDB Core methods to interact with your data at lightning speed"}),(0,k.jsx)("li",{children:"Custom Functions are powered by Fastify, so they're extremely flexible"}),(0,k.jsx)("li",{children:"Manage in HarperDB Studio, or use your own IDE and Version Management System"}),(0,k.jsx)("li",{children:"Distribute your Custom Functions to all your HarperDB instances with a single click"})]})})]})})})]})};var ft=n(4979),gt=n(2914);const xt=function(){const e=(0,s.O$)(l.A,(e=>e.auth)),t=(0,s.O$)(l.A,(e=>e.url)),n=(0,s.O$)(l.A,(e=>e.custom_functions)),o=(0,s.O$)(l.A,(e=>e.registration)),i=(0,gt.A)({version:null===o||void 0===o?void 0:o.version}),c=(0,s.O$)(l.A,(e=>e.restarting)),[u,d]=(0,a.useState)(!1),[p,m]=(0,a.useState)(!0),[h,f]=(0,a.useState)(!1),g=(0,a.useCallback)((async()=>{e&&t&&!c&&(m(!0),await A({auth:e,url:t}),m(!1))}),[e,t,c]);return(0,a.useEffect)((()=>{g()}),[g]),(0,a.useEffect)((()=>{const e=(null===n||void 0===n?void 0:n.is_enabled)&&(null===n||void 0===n?void 0:n.port)||i;d(e),e&&f(!1)}),[n,i]),(0,r.A)((()=>{h&&g()}),2e3),n?n.error?(0,k.jsx)(ht,{}):h?(0,k.jsx)(P.A,{description:"Configuring Custom Functions",icon:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):u?(0,k.jsx)(mt,{refreshCustomFunctions:g,loading:p}):(0,k.jsx)(E,{setConfiguring:f}):(0,k.jsx)(ft.A,{header:"loading custom functions",spinner:!0})}},7666:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(9950),s=n(7176),r=n(6114),l=n(3452),o=n(7348),i=n(4414);const c=function(e){let{text:t,beforeText:n,afterText:c,obscure:u=!1}=e;const d=(0,o.MW)(),p=navigator.clipboard,m=(0,a.useCallback)((async e=>{e.stopPropagation(),await navigator.clipboard.writeText(t),d.success("Text copied to clipboard")}),[d,t]);return(0,i.jsxs)(s.A,{className:"copyable-text-holder g-0",children:[p&&t&&(0,i.jsx)(r.A,{className:"copy-icon",children:(0,i.jsx)(l.A,{title:"Copy this value",onClick:m,color:"link",children:(0,i.jsx)("i",{className:"fa fa-copy text-small"})})}),(0,i.jsx)(r.A,{className:"text-container",children:t?(0,i.jsxs)(i.Fragment,{children:[n,u?t.replace(/./g,"*"):t,c]}):(0,i.jsx)("span",{children:"\xa0"})})]})}},4343:(e,t,n)=>{n.d(t,{A:()=>b});var a=n(9950),s=n(2043),r=n(5488),l=n(9435),o=n(7176),i=n(6114),c=n(4414);const u=e=>{let{headerGroups:t,onSortedChange:n,sorted:a,showFilter:s}=e;return t.map((e=>{const{key:t,...r}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...r,children:[(0,c.jsx)(o.A,{className:"header g-0",children:e.headers.map((e=>{var t,s;return(0,c.jsx)(i.A,{onClick:()=>{var t,s;return n([{id:e.id,desc:(null===(t=a[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(s=a[0])&&void 0!==s&&s.desc)}])},className:`${(null===(t=a[0])||void 0===t?void 0:t.id)===e.id?"sorted":""} ${null!==(s=a[0])&&void 0!==s&&s.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),s&&(0,c.jsx)(o.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(i.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},t)}))};var d=n(3452);const p=function(e){let{page:t,pageSize:n,totalPages:a,onPageChange:s,onPageSizeChange:l,loading:u}=e;return(0,c.jsxs)(o.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>s(t-1),disabled:!a||0===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:t+1,min:1,max:a,onChange:e=>s(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",u?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):a]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",value:n,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>s(t+1),disabled:!a||t+1===a,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:t,canPreviousPage:n,pageIndex:a,gotoPage:s,setPageSize:l,pageCount:u,nextPage:p,canNextPage:m,loading:h}=e;return(0,c.jsxs)(o.A,{className:"pagination",children:[(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!u||!n,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(i.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:a+1||1,min:1,max:u,onChange:e=>s(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",h?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):u]})]}),(0,c.jsx)(i.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{s(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(i.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:p,disabled:!u||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const h=function(e){let{prepareRow:t,row:n,onRowClick:a=!1}=e;return t(n),(0,c.jsx)(o.A,{onClick:()=>a&&a(n.original),className:"g-0",children:n.cells.map((e=>(0,c.jsx)(i.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var f=n(3628),g=n(3150);function x(e){let{value:t}=e;return(0,c.jsx)("div",{className:"text-renderer",children:t})}function j(e){let{src:t}=e;const[n,s]=(0,a.useState)(!1),[r,l]=(0,a.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),n&&r?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):n?(0,c.jsx)("img",{onError:l,alt:t,src:t,className:"preview-image"}):null]})}const v={Filter:e=>{let{column:{filterValue:t,setFilter:n}}=e;return(0,c.jsx)(r.A,{type:"text",value:t||"",onChange:e=>n(e.target.value||void 0)})},Cell:e=>{let{value:t}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(x,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(x,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,c.jsx)(j,{src:e}):(0,c.jsx)(x,{value:e});default:return(0,c.jsx)(x,{value:e})}var t})(t)}};const b=function(e){let{columns:t,data:n,error:r,currentPage:o,pageSize:i,totalPages:d,onFilteredChange:x,onSortedChange:j,onPageChange:b,onPageSizeChange:y,showFilter:N,onRowClick:A,sorted:k,loading:C,manual:w=!1}=e;const{headerGroups:_,page:S,rows:F,prepareRow:P,state:O,setAllFilters:$,canPreviousPage:E,canNextPage:D,pageOptions:I,pageCount:T,gotoPage:R,nextPage:z,previousPage:U,setPageSize:L}=(0,s.useTable)({columns:t,data:n,defaultColumn:v,onFilteredChange:x,onSortedChange:j,onPageChange:b,onPageSizeChange:y,onRowClick:A,manualPagination:w,manualFilters:w,initialState:{pageIndex:o,pageSize:i}},s.useFilters,s.usePagination),[W,M]=(0,a.useState)(!0),q=w||!S.length?F:S;return(0,a.useEffect)((()=>{!N&&O.filters.length?$([]):x(O.filters)}),[O.filters,N]),(0,a.useEffect)((()=>{setTimeout((()=>M(!1)),100)}),[null===q||void 0===q?void 0:q.length]),(0,c.jsxs)(l.tH,{onError:(e,t)=>(0,f.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(u,{headerGroups:_,onSortedChange:j,sorted:k,showFilter:N}),C||W?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):q.length?q.map((e=>(0,c.jsx)(h,{row:e,prepareRow:P,onRowClick:A},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:r?`Error loading data: ${r}`:"no records"})]})]}),w?(0,c.jsx)(p,{page:o,pageSize:i,totalPages:d,onPageChange:b,onPageSizeChange:y,loading:C}):(0,c.jsx)(m,{previousPage:U,pageSize:i,canPreviousPage:E,pageIndex:O.pageIndex,pageOptions:I,gotoPage:R,setPageSize:L,pageCount:T,nextPage:z,canNextPage:D,loading:C})]})}},8750:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n}=e;return(0,a.A)({operation:{operation:"get_configuration"},auth:t,url:n})}},2415:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;const r=await(0,a.A)({operation:{operation:"list_roles"},auth:t,url:n}),l=[...Array.isArray(r)?r:[]].sort(((e,t)=>e.role.toLowerCase()>t.role.toLowerCase()?1:-1));return s.A.update((e=>{e.roles=l})),l}},8222:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,signal:r}=e;const l=await(0,a.A)({operation:{operation:"list_users"},auth:t,url:n,signal:r}),o=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,t)=>e.username.toLowerCase()>t.username.toLowerCase()?1:-1)):[];return s.A.update((e=>{e.users=o})),o}},2010:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;return s.A.update((e=>{e.restarting=!0})),(0,a.A)({operation:{operation:"restart"},auth:t,url:n})}},1534:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,service:r=null}=e;return r?(s.A.update((e=>{e.restarting_service=r})),(0,a.A)({operation:{operation:"restart_service",service:r},auth:t,url:n})):{error:!0,message:"You must specify a service"}}},4834:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n,...s}=e;return(0,a.A)({operation:{operation:"set_configuration",...s},auth:t,url:n})}},6177:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8750),s=n(2415),r=n(8222),l=n(717),o=n(127);const i=async e=>{let{auth:t,url:n}=e;const i=await(0,a.A)({auth:t,url:n}),c=await(0,l.A)({auth:t,url:n}),u=await(async e=>{let{auth:t,url:n}=e;return(0,o.A)({operation:{operation:"cluster_status"},auth:t,url:n})})({auth:t,url:n}),d=parseFloat(null===c||void 0===c?void 0:c.version)>=4?"nats":"socketcluster",p=await(0,s.A)({auth:t,url:n});let m=!1;p.error||(m=p.find((e=>e.permission.cluster_user)));const h=await(0,r.A)({auth:t,url:n});let f=!1;h.error||(f=m&&h.find((e=>e.role===m.role)));const g="nats"===d?i.clustering.enabled:i.CLUSTERING,x="nats"===d?i.clustering.user:i.CLUSTERING_USER,j="nats"===d?i.clustering.hubServer.cluster.network.port:i.CLUSTERING_PORT,v="nats"===d?i.clustering.nodeName:i.NODE_NAME;return{is_ready:!!g&&!!f&&!!x&&!!m&&!!j&&!!v,cluster_role:m,cluster_user:f,is_enabled:g,config_cluster_user:x,config_cluster_port:j,node_name:v,engine:d,status:null===u||void 0===u?void 0:u.status,message:null===u||void 0===u?void 0:u.message,connections:null===u||void 0===u?void 0:u.connections}}},9561:(e,t,n)=>{n.d(t,{A:()=>a});const a=e=>e.match(/^[-a-zA-Z0-9_]+$/)},5379:(e,t,n)=>{n.d(t,{A:()=>a});const a=e=>!Number.isNaN(parseFloat(e))&&Number.isFinite(parseFloat(e))},5488:(e,t,n)=>{n.d(t,{A:()=>b});var a=n(9950),s=n(1942),r=n.n(s),l=n(8738),o=n.n(l),i=n(1497);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var u=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},d.apply(this,arguments)}function p(e,t){if(null==e)return{};var n,a,s=function(e,t){if(null==e)return{};var n,a,s={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function f(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=x(e);if(t){var s=x(this).constructor;n=Reflect.construct(a,arguments,s)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return g(e)}(this,n)}}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}var j={children:r().node,type:r().string,size:r().oneOfType([r().number,r().string]),bsSize:r().string,valid:r().bool,invalid:r().bool,tag:i.Wx,innerRef:r().oneOfType([r().object,r().func,r().string]),plaintext:r().bool,addon:r().bool,className:r().string,cssModule:r().object},v=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(l,e);var t,n,s,r=f(l);function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=r.call(this,e)).getRef=t.getRef.bind(g(t)),t.focus=t.focus.bind(g(t)),t}return t=l,(n=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.cssModule,s=e.type,r=void 0===s?"text":s,l=e.bsSize,c=e.valid,m=e.invalid,h=e.tag,f=e.addon,g=e.plaintext,x=e.innerRef,j=p(e,u),v=["switch","radio","checkbox"].indexOf(r)>-1,b="select"===r,y="range"===r,N=h||(b||"textarea"===r?r:"input"),A="form-control";g?(A="".concat(A,"-plaintext"),N=h||"input"):y?A="form-range":b?A="form-select":v&&(A=f?null:"form-check-input"),j.size&&/\D/g.test(j.size)&&((0,i.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),l=j.size,delete j.size);var k=(0,i.qO)(o()(t,m&&"is-invalid",c&&"is-valid",!!l&&(b?"form-select-".concat(l):"form-control-".concat(l)),A),n);return("input"===N||h&&"function"===typeof h)&&(j.type="switch"===r?"checkbox":r),j.children&&!g&&"select"!==r&&"string"===typeof N&&"select"!==N&&((0,i.mc)('Input with a type of "'.concat(r,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete j.children),a.createElement(N,d({},j,{ref:x,className:k,"aria-invalid":m}))}}])&&m(t.prototype,n),s&&m(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(a.Component);v.propTypes=j;const b=v}}]);
|