@nocobase/plugin-multi-app-manager 1.5.0-alpha.5 → 1.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@nocobase/client"),require("antd"),require("@formily/react"),require("antd-style"),require("react-router-dom"),require("react")):"function"==typeof define&&define.amd?define("@nocobase/plugin-multi-app-manager",["react-i18next","@formily/shared","@nocobase/utils/client","@nocobase/client","antd","@formily/react","antd-style","react-router-dom","react"],t):"object"==typeof exports?exports["@nocobase/plugin-multi-app-manager"]=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@nocobase/client"),require("antd"),require("@formily/react"),require("antd-style"),require("react-router-dom"),require("react")):e["@nocobase/plugin-multi-app-manager"]=t(e["react-i18next"],e["@formily/shared"],e["@nocobase/utils/client"],e["@nocobase/client"],e.antd,e["@formily/react"],e["antd-style"],e["react-router-dom"],e.react)}(self,function(e,t,n,r,o,i,a,c,u){return function(){"use strict";var p={505:function(e){e.exports=i},875:function(e){e.exports=t},772:function(e){e.exports=r},584:function(e){e.exports=n},721:function(e){e.exports=o},202:function(e){e.exports=a},156:function(e){e.exports=u},238:function(t){t.exports=e},128:function(e){e.exports=c}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return p[e](n,n.exports,s),n.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m={};s.r(m),s.d(m,{default:function(){return Q},tableActionColumnSchema:function(){return _},formSchema:function(){return F},PluginMultiAppManagerClient:function(){return J}});var f=s("772"),d=s("721"),y=s("156"),b=s.n(y),v=s("128"),x=s("505"),g=(0,x.connect)(d.Input,(0,x.mapReadPretty)(function(e){var t=(0,f.useApp)(),n=e.value&&b().createElement("a",{target:"_blank",href:t.getRouteUrl("/apps/".concat(e.value,"/admin")),rel:"noreferrer"},e.value);return b().createElement("div",{style:e.style},e.addonBefore,e.prefix,n,e.suffix,e.addonAfter)})),h=(0,s("202").createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}}),A=s("238"),w=function(){return{t:(0,A.useTranslation)("multi-app-manager").t}},O=function(e){return'{{t("'.concat(e,"\", { ns: 'multi-app-manager' })}}")};function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var C=function(){var e,t=h().styles,n=(0,f.useRequest)({resource:"applications",action:"listPinned"},{manual:!0}),r=n.data,o=n.run,i=w().t,a=(0,f.useApp)();var c=((function(e){if(Array.isArray(e))return S(e)})(e=((null==r?void 0:r.data)||[]).map(function(e){var t=a.getRouteUrl("/apps/".concat(e.name,"/admin/"));return e.cname&&(t="//".concat(e.cname)),{key:e.name,label:b().createElement("a",{href:t,target:"_blank",rel:"noopener noreferrer"},e.displayName||e.name)}}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return S(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return S(e,t)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([{key:".manager",label:b().createElement(v.Link,{to:a.pluginSettingsManager.getRoutePath("multi-app-manager")},i("Manage applications"))}]);return b().createElement(d.Dropdown,{onOpenChange:function(e){o()},menu:{items:c}},b().createElement(d.Button,{className:t.button,title:"Apps",icon:b().createElement(f.Icon,{type:"AppstoreOutlined"})}))},P=function(e){return b().createElement(f.PinnedPluginListProvider,{items:{am:{order:201,component:"MultiAppManager",pin:!0}}},b().createElement(f.SchemaComponentOptions,{components:{MultiAppManager:C,AppNameInput:g}},e.children))},j=s("875"),k=s("584");function E(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){q(e,t,n[t])})}return e}function R(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var T={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:O("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:O("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":O("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:O("App status"),enum:[{label:"Initializing",value:"initializing"},{label:"Initialized",value:"initialized"},{label:"Running",value:"running"},{label:"Commanding",value:"commanding"},{label:"Stopped",value:"stopped"},{label:"Error",value:"error"},{label:"Not found",value:"not_found"}],"x-component":"Radio.Group"}}]},F={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},"options.autoStart":{title:(0,k.tval)("Start mode",{ns:"@nocobase/plugin-multi-app-manager"}),"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{label:(0,k.tval)("Start on first visit",{ns:"@nocobase/plugin-multi-app-manager"}),value:!1},{label:(0,k.tval)("Start with main application",{ns:"@nocobase/plugin-multi-app-manager"}),value:!0}]},cname:{title:O("Custom domain"),"x-component":"Input","x-decorator":"FormItem"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"}}},_={properties:{view:{type:"void","x-component":"AppVisitor","x-component-props":{}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{t("Edit")}}',properties:{formSchema:F,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}},I={type:"object",properties:q({},(0,j.uid)(),{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:T,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:T},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:function(){var e=(0,f.useResourceActionContext)(),t=e.state,n=e.setState,r=e.refresh,o=(0,f.useResourceContext)().resource;return{run:function(){var e;return(e=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}(this,function(e){switch(e.label){case 0:return[4,o.destroy({filterByTk:(null==t?void 0:t.selectedRowKeys)||[]})];case 1:return e.sent(),null==n||n({selectedRowKeys:[]}),r(),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){E(i,r,o,a,c,"next",e)}function c(e){E(i,r,o,a,c,"throw",e)}a(void 0)})})()}}},confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":function(e){return b().createElement(f.SchemaComponentOptions,R(D({},e),{scope:{createOnly:!0}}))},"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t=(0,f.useActionContext)();return(0,f.useRequest)(function(){return Promise.resolve({data:{name:"a_".concat((0,j.uid)())}})},R(D({},e),{refreshDeps:[t.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:F,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},name:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pinned:{type:"void",title:O("Pin to menu"),"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{pinned:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:D({type:"void","x-component":"Space","x-component-props":{split:"|"}},_)}}}}}})},M=function(){var e=(0,f.useRecord)(),t=(0,f.useApp)();return e.cname?"//".concat(e.cname):t.getRouteUrl("/apps/".concat(e.name,"/admin/"))},N=function(){var e=w().t,t=M();return b().createElement("a",{href:t,target:"_blank",rel:"noreferrer"},e("View",{ns:"client"}))},V=function(){return b().createElement(d.Card,{bordered:!1},b().createElement(f.SchemaComponent,{schema:I,components:{AppVisitor:N}}))},B="multi-app-manager";function z(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function G(e,t,n){return(G=$()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&L(o,n.prototype),o}).apply(null,arguments)}function K(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function U(e){return(U=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e,t){return(L=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function H(e){var t="function"==typeof Map?new Map:void 0;return(H=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return G(e,arguments,U(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),L(r,e)})(e)}function $(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return($=function(){return!!e})()}var J=function(e){var t,n,r;function o(){var e,t,n;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),e=this,t=o,n=arguments,t=U(t),function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,$()?Reflect.construct(t,n||[],U(e).constructor):t.apply(e,n))}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&L(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}(this,function(e){return t.app.use(P),t.app.pluginSettingsManager.add(B,{title:'{{t("Multi-app manager", { ns: "'.concat(B,'" })}}'),icon:"AppstoreOutlined",Component:V,aclSnippet:"pm.multi-app-manager.applications"}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){z(i,r,o,a,c,"next",e)}function c(e){z(i,r,o,a,c,"throw",e)}a(void 0)})})()}}],K(t.prototype,n),o}(H(f.Plugin)),Q=J;return m}()});
10
+ (function(o,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("antd"),require("react-router-dom"),require("@formily/react"),require("antd-style"),require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("react")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","antd","react-router-dom","@formily/react","antd-style","react-i18next","@formily/shared","@nocobase/utils/client","react"],e):(o=typeof globalThis!="undefined"?globalThis:o||self,e(o["@nocobase/plugin-multi-app-manager"]={},o["@nocobase/client"],o.jsxRuntime,o.antd,o["react-router-dom"],o["@formily/react"],o["antd-style"],o["react-i18next"],o["@formily/shared"],o["@nocobase/utils"],o.react))})(this,function(o,e,n,c,m,d,y,l,i,a,T){"use strict";var z=Object.defineProperty,B=Object.defineProperties;var K=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var F=(o,e,n)=>e in o?z(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,x=(o,e)=>{for(var n in e||(e={}))L.call(e,n)&&F(o,n,e[n]);if(M)for(var n of M(e))U.call(e,n)&&F(o,n,e[n]);return o},g=(o,e)=>B(o,K(e));var v=(o,e,n)=>new Promise((c,m)=>{var d=i=>{try{l(n.next(i))}catch(a){m(a)}},y=i=>{try{l(n.throw(i))}catch(a){m(a)}},l=i=>i.done?c(i.value):Promise.resolve(i.value).then(d,y);l((n=n.apply(o,e)).next())});const k=t=>{const r=e.useApp(),u=t.value&&n.jsx("a",{target:"_blank",href:r.getRouteUrl(`/apps/${t.value}/admin`),rel:"noreferrer",children:t.value});return n.jsxs("div",{style:t.style,children:[t.addonBefore,t.prefix,u,t.suffix,t.addonAfter]})},q=d.connect(c.Input,d.mapReadPretty(k)),I=y.createStyles(({token:t})=>({button:{color:t.colorTextHeaderMenu+" !important"}})),b=()=>{const{t}=l.useTranslation("multi-app-manager");return{t}},s=t=>`{{t("${t}", { ns: 'multi-app-manager' })}}`,N=()=>{const{styles:t}=I(),{data:r,run:u}=e.useRequest({resource:"applications",action:"listPinned"},{manual:!0}),{t:f}=b(),P=e.useApp(),$=[...((r==null?void 0:r.data)||[]).map(p=>{let w=P.getRouteUrl(`/apps/${p.name}/admin/`);return p.cname&&(w=`//${p.cname}`),{key:p.name,label:n.jsx("a",{href:w,target:"_blank",rel:"noopener noreferrer",children:p.displayName||p.name})}}),{key:".manager",label:n.jsx(m.Link,{to:P.pluginSettingsManager.getRoutePath("multi-app-manager"),children:f("Manage applications")})}];return n.jsx(c.Dropdown,{onOpenChange:p=>{u()},menu:{items:$},children:n.jsx(c.Button,{className:t.button,title:"Apps",icon:n.jsx(e.Icon,{type:"AppstoreOutlined"})})})},O=t=>n.jsx(e.PinnedPluginListProvider,{items:{am:{order:201,component:"MultiAppManager",pin:!0}},children:n.jsx(e.SchemaComponentOptions,{components:{MultiAppManager:N,AppNameInput:q},children:t.children})}),h={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:s("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:s("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":s("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:s("App status"),enum:[{label:"Initializing",value:"initializing"},{label:"Initialized",value:"initialized"},{label:"Running",value:"running"},{label:"Commanding",value:"commanding"},{label:"Stopped",value:"stopped"},{label:"Error",value:"error"},{label:"Not found",value:"not_found"}],"x-component":"Radio.Group"}}]},R=()=>{const{state:t,setState:r,refresh:u}=e.useResourceActionContext(),{resource:f}=e.useResourceContext();return{run(){return v(this,null,function*(){yield f.destroy({filterByTk:(t==null?void 0:t.selectedRowKeys)||[]}),r==null||r({selectedRowKeys:[]}),u()})}}},A={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},"options.autoStart":{title:a.tval("Start mode",{ns:"@nocobase/plugin-multi-app-manager"}),"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{label:a.tval("Start on first visit",{ns:"@nocobase/plugin-multi-app-manager"}),value:!1},{label:a.tval("Start with main application",{ns:"@nocobase/plugin-multi-app-manager"}),value:!0}]},cname:{title:s("Custom domain"),"x-component":"Input","x-decorator":"FormItem"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"}}},C={properties:{view:{type:"void","x-component":"AppVisitor","x-component-props":{}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{t("Edit")}}',properties:{formSchema:A,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}},V={type:"object",properties:{[i.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:h,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:h},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:R,confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":t=>T.createElement(e.SchemaComponentOptions,g(x({},t),{scope:{createOnly:!0}})),"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(t){const r=e.useActionContext();return e.useRequest(()=>Promise.resolve({data:{name:`a_${i.uid()}`}}),g(x({},t),{refreshDeps:[r.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:A,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},name:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pinned:{type:"void",title:s("Pin to menu"),"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{pinned:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:x({type:"void","x-component":"Space","x-component-props":{split:"|"}},C)}}}}}}}},_=()=>{const t=e.useRecord(),r=e.useApp();return t.cname?`//${t.cname}`:r.getRouteUrl(`/apps/${t.name}/admin/`)},j=()=>{const{t}=b(),r=_();return n.jsx("a",{href:r,target:"_blank",rel:"noreferrer",children:t("View",{ns:"client"})})},E=()=>n.jsx(c.Card,{bordered:!1,children:n.jsx(e.SchemaComponent,{schema:V,components:{AppVisitor:j}})}),S="multi-app-manager";class D extends e.Plugin{load(){return v(this,null,function*(){this.app.use(O),this.app.pluginSettingsManager.add(S,{title:`{{t("Multi-app manager", { ns: "${S}" })}}`,icon:"AppstoreOutlined",Component:E,aclSnippet:"pm.multi-app-manager.applications"})})}}o.PluginMultiAppManagerClient=D,o.default=D,o.formSchema=A,o.tableActionColumnSchema=C,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -8,18 +8,18 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "1.5.0-alpha.5",
11
+ "@nocobase/client": "1.5.0-beta.2",
12
12
  "antd": "5.12.8",
13
13
  "react": "18.2.0",
14
14
  "@formily/react": "2.3.0",
15
15
  "antd-style": "3.7.1",
16
16
  "react-router-dom": "6.21.0",
17
17
  "react-i18next": "11.18.6",
18
- "@nocobase/database": "1.5.0-alpha.5",
19
- "@nocobase/server": "1.5.0-alpha.5",
18
+ "@nocobase/database": "1.5.0-beta.2",
19
+ "@nocobase/server": "1.5.0-beta.2",
20
20
  "lodash": "4.17.21",
21
21
  "mysql2": "3.11.0",
22
22
  "pg": "8.11.3",
23
- "@nocobase/utils": "1.5.0-alpha.5",
23
+ "@nocobase/utils": "1.5.0-beta.2",
24
24
  "@formily/shared": "2.3.2"
25
25
  };
@@ -1 +1 @@
1
- {"name":"mariadb","version":"2.5.6","description":"fast mariadb/mysql connector.","main":"promise.js","types":"types/index.d.ts","directories":{"lib":"lib","test":"test"},"private":false,"scripts":{"test":"npm run test:types-prettier && npm run test:prettier && npm run test:types && npm run test:lint && npm run test:base","test:base":"mocha --no-parallel --timeout 5000 \"test/**/*.js\" ","test:lint":"eslint \"{lib,test}/**/*.js\" ","test:types":"eslint \"types/*.ts\" ","test:types-prettier":"prettier --write \"types/*.ts\"","test:prettier":"prettier --write \"{tools,lib,test,benchmarks}/**/*.js\"","coverage":"npm run coverage:test && npm run coverage:report","coverage:test":"nyc mocha --no-parallel --timeout 5000 \"test/**/*.js\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","benchmark":"node ./benchmarks/benchmarks.js","generate":"node ./tools/generate-mariadb.js"},"repository":{"type":"git","url":"git+https://github.com/mariadb-corporation/mariadb-connector-nodejs.git"},"keywords":["mariadb","mysql","client","driver","connector"],"files":["lib","types/index.d.ts","promise.js","callback.js"],"engines":{"node":">= 10.13"},"author":"Diego Dupin <diego.dupin@mariadb.com>","license":"LGPL-2.1-or-later","dependencies":{"@types/geojson":"^7946.0.8","@types/node":"^17.0.10","denque":"^2.0.1","iconv-lite":"^0.6.3","long":"^5.2.0","moment-timezone":"^0.5.34","please-upgrade-node":"^3.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.10.0","@typescript-eslint/parser":"^5.10.0","benchmark":"^2.1.4","chai":"^4.3.4","codecov":"^3.8.2","chalk":"^4.1.2","dom-parser":"^0.1.6","error-stack-parser":"^2.0.6","eslint":"^8.7.0","eslint-config-prettier":"^8.3.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","mocha":"^9.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","prettier":"^2.5.1","typescript":"^4.5.5"},"bugs":{"url":"https://jira.mariadb.org/projects/CONJS/"},"homepage":"https://github.com/mariadb-corporation/mariadb-connector-nodejs#readme","_lastModified":"2024-11-23T15:56:11.251Z"}
1
+ {"name":"mariadb","version":"2.5.6","description":"fast mariadb/mysql connector.","main":"promise.js","types":"types/index.d.ts","directories":{"lib":"lib","test":"test"},"private":false,"scripts":{"test":"npm run test:types-prettier && npm run test:prettier && npm run test:types && npm run test:lint && npm run test:base","test:base":"mocha --no-parallel --timeout 5000 \"test/**/*.js\" ","test:lint":"eslint \"{lib,test}/**/*.js\" ","test:types":"eslint \"types/*.ts\" ","test:types-prettier":"prettier --write \"types/*.ts\"","test:prettier":"prettier --write \"{tools,lib,test,benchmarks}/**/*.js\"","coverage":"npm run coverage:test && npm run coverage:report","coverage:test":"nyc mocha --no-parallel --timeout 5000 \"test/**/*.js\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","benchmark":"node ./benchmarks/benchmarks.js","generate":"node ./tools/generate-mariadb.js"},"repository":{"type":"git","url":"git+https://github.com/mariadb-corporation/mariadb-connector-nodejs.git"},"keywords":["mariadb","mysql","client","driver","connector"],"files":["lib","types/index.d.ts","promise.js","callback.js"],"engines":{"node":">= 10.13"},"author":"Diego Dupin <diego.dupin@mariadb.com>","license":"LGPL-2.1-or-later","dependencies":{"@types/geojson":"^7946.0.8","@types/node":"^17.0.10","denque":"^2.0.1","iconv-lite":"^0.6.3","long":"^5.2.0","moment-timezone":"^0.5.34","please-upgrade-node":"^3.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.10.0","@typescript-eslint/parser":"^5.10.0","benchmark":"^2.1.4","chai":"^4.3.4","codecov":"^3.8.2","chalk":"^4.1.2","dom-parser":"^0.1.6","error-stack-parser":"^2.0.6","eslint":"^8.7.0","eslint-config-prettier":"^8.3.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","mocha":"^9.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","prettier":"^2.5.1","typescript":"^4.5.5"},"bugs":{"url":"https://jira.mariadb.org/projects/CONJS/"},"homepage":"https://github.com/mariadb-corporation/mariadb-connector-nodejs#readme","_lastModified":"2024-12-06T08:59:28.038Z"}
@@ -41,11 +41,7 @@ class ApplicationModel extends import_database.Model {
41
41
  ...(0, import_utils.merge)(appOptions, appModelOptions),
42
42
  name: appName
43
43
  };
44
- const subApp = new import_server.Application(subAppOptions);
45
- subApp.on("afterStart", () => {
46
- mainApp.emit("subAppStarted", subApp);
47
- });
48
- return subApp;
44
+ return new import_server.Application(subAppOptions);
49
45
  }
50
46
  }
51
47
  // Annotate the CommonJS export names for ESM import in node:
@@ -20,7 +20,6 @@ export declare class PluginMultiAppManagerServer extends Plugin {
20
20
  appOptionsFactory: AppOptionsFactory;
21
21
  subAppUpgradeHandler: SubAppUpgradeHandler;
22
22
  static getDatabaseConfig(app: Application): IDatabaseOptions;
23
- handleSyncMessage(message: any): Promise<void>;
24
23
  setSubAppUpgradeHandler(handler: SubAppUpgradeHandler): void;
25
24
  setAppOptionsFactory(factory: AppOptionsFactory): void;
26
25
  setAppDbCreator(appDbCreator: AppDbCreator): void;
@@ -148,31 +148,6 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
148
148
  }
149
149
  return import_lodash.default.cloneDeep(import_lodash.default.omit(oldConfig, ["migrator"]));
150
150
  }
151
- async handleSyncMessage(message) {
152
- const { type } = message;
153
- if (type === "subAppStarted") {
154
- const { appName } = message;
155
- const model = await this.app.db.getRepository("applications").findOne({
156
- filter: {
157
- name: appName
158
- }
159
- });
160
- if (!model) {
161
- return;
162
- }
163
- if (import_server.AppSupervisor.getInstance().hasApp(appName)) {
164
- return;
165
- }
166
- const subApp = model.registerToSupervisor(this.app, {
167
- appOptionsFactory: this.appOptionsFactory
168
- });
169
- subApp.runCommand("start", "--quickstart");
170
- }
171
- if (type === "removeApp") {
172
- const { appName } = message;
173
- await import_server.AppSupervisor.getInstance().removeApp(appName);
174
- }
175
- }
176
151
  setSubAppUpgradeHandler(handler) {
177
152
  this.subAppUpgradeHandler = handler;
178
153
  }
@@ -201,12 +176,6 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
201
176
  const subApp = model.registerToSupervisor(this.app, {
202
177
  appOptionsFactory: this.appOptionsFactory
203
178
  });
204
- subApp.on("afterStart", async () => {
205
- this.sendSyncMessage({
206
- type: "subAppStarted",
207
- appName: name
208
- });
209
- });
210
179
  const quickstart = async () => {
211
180
  await this.appDbCreator(subApp, {
212
181
  transaction,
@@ -221,17 +190,8 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
221
190
  }
222
191
  }
223
192
  );
224
- this.db.on("applications.afterDestroy", async (model, options) => {
193
+ this.db.on("applications.afterDestroy", async (model) => {
225
194
  await import_server.AppSupervisor.getInstance().removeApp(model.get("name"));
226
- this.sendSyncMessage(
227
- {
228
- type: "removeApp",
229
- appName: model.get("name")
230
- },
231
- {
232
- transaction: options.transaction
233
- }
234
- );
235
195
  });
236
196
  const self = this;
237
197
  async function LazyLoadApplication({
@@ -263,12 +223,6 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
263
223
  const subApp = applicationRecord.registerToSupervisor(mainApp, {
264
224
  appOptionsFactory: self.appOptionsFactory
265
225
  });
266
- subApp.on("afterStart", async () => {
267
- this.sendSyncMessage({
268
- type: "subAppStarted",
269
- appName: name
270
- });
271
- });
272
226
  if (!loadButNotStart) {
273
227
  await subApp.runCommand("start", "--quickstart");
274
228
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "多应用管理器",
5
5
  "description": "Dynamically create multiple apps without separate deployments.",
6
6
  "description.zh-CN": "无需单独部署即可动态创建多个应用。",
7
- "version": "1.5.0-alpha.5",
7
+ "version": "1.5.0-beta.2",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/multi-app-manager",
@@ -14,7 +14,7 @@
14
14
  "@formily/shared": "2.x",
15
15
  "antd": "5.x",
16
16
  "antd-style": "3.x",
17
- "async-mutex": "^0.5.0",
17
+ "async-mutex": "^0.3.2",
18
18
  "mysql2": "^3.11.0",
19
19
  "pg": "^8.7.3",
20
20
  "react": "18.x",
@@ -28,7 +28,7 @@
28
28
  "@nocobase/test": "1.x",
29
29
  "@nocobase/utils": "1.x"
30
30
  },
31
- "gitHead": "8d24e8d2c0f3f57ceaa271438fd93db2b4150011",
31
+ "gitHead": "8a9c29fdac5c6295dcc7abf00c3fa81bd9e01a36",
32
32
  "keywords": [
33
33
  "system"
34
34
  ]