@nocobase/plugin-multi-app-manager 0.14.0-alpha.8 → 0.15.0-alpha.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.
@@ -1 +1 @@
1
- (function(n,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("antd"),require("react-router-dom"),require("@formily/shared"),require("react"),require("react-i18next"),require("@formily/react")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","antd","react-router-dom","@formily/shared","react","react-i18next","@formily/react"],t):(n=typeof globalThis!="undefined"?globalThis:n||self,t(n["@nocobase/plugin-multi-app-manager"]={},n["@nocobase/client"],n.jsxRuntime,n.antd,n["react-router-dom"],n["@formily/shared"],n.react,n["react-i18next"],n["@formily/react"]))})(this,function(n,t,o,s,m,u,x,l,i){"use strict";var j=Object.defineProperty,_=Object.defineProperties;var $=Object.getOwnPropertyDescriptors;var F=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var w=(n,t,o)=>t in n?j(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o,d=(n,t)=>{for(var o in t||(t={}))z.call(t,o)&&w(n,o,t[o]);if(F)for(var o of F(t))B.call(t,o)&&w(n,o,t[o]);return n},v=(n,t)=>_(n,$(t));var g=(n,t,o)=>new Promise((s,m)=>{var u=i=>{try{l(o.next(i))}catch(c){m(c)}},x=i=>{try{l(o.throw(i))}catch(c){m(c)}},l=i=>i.done?s(i.value):Promise.resolve(i.value).then(u,x);l((o=o.apply(n,t)).next())});const c=()=>{const{t:e}=l.useTranslation("multi-app-manager");return{t:e}},a=e=>`{{t("${e}", { ns: 'multi-app-manager' })}}`,b={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:a("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:a("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":a("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:a("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"}}]},P=()=>{const{state:e,setState:r,refresh:A}=t.useResourceActionContext(),{resource:f}=t.useResourceContext();return{run(){return g(this,null,function*(){yield f.destroy({filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}),r==null||r({selectedRowKeys:[]}),A()})}}},y={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"},"options.standaloneDeployment":{"x-component":"Checkbox","x-decorator":"FormItem","x-content":a("Standalone deployment")},"options.autoStart":{"x-component":"Checkbox","x-decorator":"FormItem","x-content":a("Auto start")},cname:{title:a("Custom domain"),"x-component":"Input","x-decorator":"FormItem"}}},h={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:y,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}}"}}}},k={type:"object",properties:{[u.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:b,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider","x-component-props":{collection:b},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":{useAction:P,confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":e=>x.createElement(t.SchemaComponentOptions,v(d({},e),{scope:{createOnly:!0}})),"x-component":"Action","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(e){const r=t.useActionContext();return t.useRequest(()=>Promise.resolve({data:{name:`a_${u.uid()}`}}),v(d({},e),{refreshDeps:[r.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:y,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:a("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:"|"}},h)}}}}}}}},T=()=>{var r;const e=t.useRecord();return(r=e.options)!=null&&r.standaloneDeployment&&e.cname?`//${e.cname}`:`/apps/${e.name}/admin/`},I=()=>{const{t:e}=c(),r=T();return o.jsx("a",{href:r,target:"_blank",rel:"noreferrer",children:e("View",{ns:"client"})})},M=()=>o.jsx(s.Card,{bordered:!1,children:o.jsx(t.SchemaComponent,{schema:k,components:{AppVisitor:I}})}),q=e=>{const r=e.value&&o.jsx("a",{target:"_blank",href:`/apps/${e.value}/admin`,rel:"noreferrer",children:e.value});return o.jsxs("div",{style:e.style,children:[e.addonBefore,e.prefix,r,e.suffix,e.addonAfter]})},N=i.connect(s.Input,i.mapReadPretty(q)),O=()=>{const{data:e,run:r}=t.useRequest({resource:"applications",action:"listPinned"},{manual:!0}),{t:A}=c(),f=[...((e==null?void 0:e.data)||[]).map(p=>{var D;let S=`/apps/${p.name}/admin/`;return(D=p.options)!=null&&D.standaloneDeployment&&p.cname&&(S=`//${p.cname}`),{key:p.name,label:o.jsx("a",{href:S,target:"_blank",rel:"noopener noreferrer",children:p.displayName||p.name})}}),{key:".manager",label:o.jsx(m.Link,{to:"/admin/settings/multi-app-manager/applications",children:A("Manage applications")})}];return o.jsx(s.Dropdown,{onOpenChange:p=>{r()},menu:{items:f},children:o.jsx(s.Button,{title:"Apps",icon:o.jsx(t.Icon,{type:"AppstoreOutlined"})})})},V=e=>{const{t:r}=c();return o.jsx(t.PinnedPluginListProvider,{items:{am:{order:201,component:"MultiAppManager",pin:!0}},children:o.jsx(t.SchemaComponentOptions,{components:{MultiAppManager:O,AppNameInput:N},children:o.jsx(t.SettingsCenterProvider,{settings:{"multi-app-manager":{title:r("Multi-app manager"),icon:"AppstoreOutlined",tabs:{applications:{title:r("Applications"),component:()=>o.jsx(M,{})}}}},children:e.children})})})};class C extends t.Plugin{load(){return g(this,null,function*(){this.app.use(V)})}}n.MultiAppManagerPlugin=C,n.default=C,n.formSchema=y,n.tableActionColumnSchema=h,Object.defineProperties(n,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(o,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("antd"),require("react-router-dom"),require("@formily/react"),require("react-i18next"),require("@formily/shared"),require("react")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","antd","react-router-dom","@formily/react","react-i18next","@formily/shared","react"],t):(o=typeof globalThis!="undefined"?globalThis:o||self,t(o["@nocobase/plugin-multi-app-manager"]={},o["@nocobase/client"],o.jsxRuntime,o.antd,o["react-router-dom"],o["@formily/react"],o["react-i18next"],o["@formily/shared"],o.react))})(this,function(o,t,n,c,m,u,x,s,i){"use strict";var _=Object.defineProperty,E=Object.defineProperties;var z=Object.getOwnPropertyDescriptors;var w=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var M=(o,t,n)=>t in o?_(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,d=(o,t)=>{for(var n in t||(t={}))B.call(t,n)&&M(o,n,t[n]);if(w)for(var n of w(t))K.call(t,n)&&M(o,n,t[n]);return o},g=(o,t)=>E(o,z(t));var v=(o,t,n)=>new Promise((c,m)=>{var u=i=>{try{s(n.next(i))}catch(l){m(l)}},x=i=>{try{s(n.throw(i))}catch(l){m(l)}},s=i=>i.done?c(i.value):Promise.resolve(i.value).then(u,x);s((n=n.apply(o,t)).next())});const l=e=>{const r=e.value&&n.jsx("a",{target:"_blank",href:`/apps/${e.value}/admin`,rel:"noreferrer",children:e.value});return n.jsxs("div",{style:e.style,children:[e.addonBefore,e.prefix,r,e.suffix,e.addonAfter]})},k=u.connect(c.Input,u.mapReadPretty(l)),h=()=>{const{t:e}=x.useTranslation("multi-app-manager");return{t:e}},a=e=>`{{t("${e}", { ns: 'multi-app-manager' })}}`,T=()=>{const{data:e,run:r}=t.useRequest({resource:"applications",action:"listPinned"},{manual:!0}),{t:A}=h(),f=t.useApp(),j=[...((e==null?void 0:e.data)||[]).map(p=>{var P;let F=`/apps/${p.name}/admin/`;return(P=p.options)!=null&&P.standaloneDeployment&&p.cname&&(F=`//${p.cname}`),{key:p.name,label:n.jsx("a",{href:F,target:"_blank",rel:"noopener noreferrer",children:p.displayName||p.name})}}),{key:".manager",label:n.jsx(m.Link,{to:f.pluginSettingsManager.getRoutePath("multi-app-manager"),children:A("Manage applications")})}];return n.jsx(c.Dropdown,{onOpenChange:p=>{r()},menu:{items:j},children:n.jsx(c.Button,{title:"Apps",icon:n.jsx(t.Icon,{type:"AppstoreOutlined"})})})},I=e=>n.jsx(t.PinnedPluginListProvider,{items:{am:{order:201,component:"MultiAppManager",pin:!0}},children:n.jsx(t.SchemaComponentOptions,{components:{MultiAppManager:T,AppNameInput:k},children:e.children})}),C={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:a("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:a("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":a("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:a("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"}}]},q=()=>{const{state:e,setState:r,refresh:A}=t.useResourceActionContext(),{resource:f}=t.useResourceContext();return{run(){return v(this,null,function*(){yield f.destroy({filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}),r==null||r({selectedRowKeys:[]}),A()})}}},y={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"},"options.standaloneDeployment":{"x-component":"Checkbox","x-decorator":"FormItem","x-content":a("Standalone deployment")},"options.autoStart":{"x-component":"Checkbox","x-decorator":"FormItem","x-content":a("Auto start")},cname:{title:a("Custom domain"),"x-component":"Input","x-decorator":"FormItem"}}},b={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:y,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}}"}}}},N={type:"object",properties:{[s.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:C,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider","x-component-props":{collection:C},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":{useAction:q,confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":e=>i.createElement(t.SchemaComponentOptions,g(d({},e),{scope:{createOnly:!0}})),"x-component":"Action","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(e){const r=t.useActionContext();return t.useRequest(()=>Promise.resolve({data:{name:`a_${s.uid()}`}}),g(d({},e),{refreshDeps:[r.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:y,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:a("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:"|"}},b)}}}}}}}},O=()=>{var r;const e=t.useRecord();return(r=e.options)!=null&&r.standaloneDeployment&&e.cname?`//${e.cname}`:`/apps/${e.name}/admin/`},V=()=>{const{t:e}=h(),r=O();return n.jsx("a",{href:r,target:"_blank",rel:"noreferrer",children:e("View",{ns:"client"})})},$=()=>n.jsx(c.Card,{bordered:!1,children:n.jsx(t.SchemaComponent,{schema:N,components:{AppVisitor:V}})}),S="multi-app-manager";class D extends t.Plugin{load(){return v(this,null,function*(){this.app.use(I),this.app.pluginSettingsManager.add(S,{title:`{{t("Multi-app manager", { ns: "${S}" })}}`,icon:"AppstoreOutlined",Component:$,aclSnippet:"pm.multi-app-manager.applications"})})}}o.MultiAppManagerPlugin=D,o.default=D,o.formSchema=y,o.tableActionColumnSchema=b,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,12 +1,12 @@
1
1
  module.exports = {
2
- "@nocobase/client": "0.14.0-alpha.8",
2
+ "@nocobase/client": "0.15.0-alpha.2",
3
3
  "antd": "5.8.6",
4
4
  "react": "18.2.0",
5
5
  "@formily/react": "2.2.27",
6
6
  "react-router-dom": "6.14.1",
7
7
  "react-i18next": "11.18.6",
8
- "@nocobase/database": "0.14.0-alpha.8",
9
- "@nocobase/server": "0.14.0-alpha.8",
8
+ "@nocobase/database": "0.15.0-alpha.2",
9
+ "@nocobase/server": "0.15.0-alpha.2",
10
10
  "async-mutex": "0.3.2",
11
11
  "lodash": "4.17.21",
12
12
  "mysql2": "2.3.3",
@@ -0,0 +1 @@
1
+ export declare const NAMESPACE = "multi-app-manager";
@@ -0,0 +1,27 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var locale_exports = {};
19
+ __export(locale_exports, {
20
+ NAMESPACE: () => NAMESPACE
21
+ });
22
+ module.exports = __toCommonJS(locale_exports);
23
+ const NAMESPACE = "multi-app-manager";
24
+ // Annotate the CommonJS export names for ESM import in node:
25
+ 0 && (module.exports = {
26
+ NAMESPACE
27
+ });
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": "0.14.0-alpha.8",
7
+ "version": "0.15.0-alpha.2",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "devDependencies": {
@@ -25,5 +25,5 @@
25
25
  "@nocobase/test": "0.x",
26
26
  "@nocobase/utils": "0.x"
27
27
  },
28
- "gitHead": "59c82fef6e34707802b5841f5ec4d9b3b6b68abb"
28
+ "gitHead": "2504887cf82935200bf546b28adf2872cab3e452"
29
29
  }