@nocobase/plugin-multi-portal 2.2.0-alpha.12 → 2.4.0-alpha.1
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 +7 -5
- package/dist/client-v2/354.87f18462949b5c23.js +10 -0
- package/dist/client-v2/499.245037eea4cc7266.js +10 -0
- package/dist/client-v2/556.443e73c9ca4c18b9.js +10 -0
- package/dist/client-v2/778.affaa69b23857ef2.js +10 -0
- package/dist/client-v2/993.7a1cc7aa6cec0160.js +10 -0
- package/dist/client-v2/PortalAccessBoundary.d.ts +49 -0
- package/dist/client-v2/RootLanding.d.ts +4 -5
- package/dist/client-v2/index.js +1 -1
- package/dist/client-v2/interceptor.d.ts +13 -0
- package/dist/client-v2/layoutRegistration.d.ts +3 -6
- package/dist/client-v2/models/MultiPortalLayoutModels.d.ts +14 -0
- package/dist/client-v2/models/MultiPortalMobilePageModels.d.ts +2 -0
- package/dist/client-v2/pages/MultiPortalsPage.d.ts +10 -27
- package/dist/client-v2/portalAccess.d.ts +73 -0
- package/dist/client-v2/routeUrl.d.ts +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.js +30 -2
- package/dist/externalVersion.js +9 -8
- package/dist/locale/en-US.json +45 -14
- package/dist/locale/zh-CN.json +43 -12
- package/dist/node_modules/tar/package.json +1 -1
- package/dist/server/collections/multiPortals.js +12 -11
- package/dist/server/plugin.d.ts +6 -4
- package/dist/server/plugin.js +487 -312
- package/dist/swagger/index.d.ts +152 -0
- package/dist/swagger/index.js +142 -0
- package/package.json +3 -3
- package/dist/client-v2/354.7be267ae5d61a878.js +0 -10
- package/dist/client-v2/499.ef2ff0c022687485.js +0 -10
- package/dist/client-v2/556.5faf86d4f8faef40.js +0 -10
- package/dist/client-v2/778.c98e7ec542d931fe.js +0 -10
package/dist/locale/en-US.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Access path": "Access path",
|
|
3
3
|
"Actions": "Actions",
|
|
4
|
-
"Add Multi-portal": "Add
|
|
5
|
-
"Add portal": "Add
|
|
4
|
+
"Add Multi-portal": "Add Portal",
|
|
5
|
+
"Add portal": "Add Portal",
|
|
6
6
|
"Allow access": "Allow access",
|
|
7
7
|
"Allow access to {{portal}}": "Allow access to {{portal}}",
|
|
8
8
|
"Access path cannot be /": "Access path cannot be /",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Access path cannot contain wildcard": "Access path cannot contain wildcard",
|
|
12
12
|
"Access path can only contain letters, numbers, hyphens, underscores, and slashes": "Access path can only contain letters, numbers, hyphens, underscores, and slashes",
|
|
13
13
|
"Access path must start with /": "Access path must start with /",
|
|
14
|
-
"AI
|
|
14
|
+
"AI mode": "AI mode",
|
|
15
15
|
"Are you sure you want to delete it?": "Are you sure you want to delete it?",
|
|
16
16
|
"Are you sure you want to delete the selected Multi-portal records?": "Are you sure you want to delete the selected portal records?",
|
|
17
17
|
"Cancel": "Cancel",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"Delete Multi-portal": "Delete portal",
|
|
20
20
|
"Delete portal": "Delete portal",
|
|
21
21
|
"Desktop": "Desktop",
|
|
22
|
-
"
|
|
22
|
+
"Development mode": "Development mode",
|
|
23
23
|
"Edit": "Edit",
|
|
24
24
|
"Edit Multi-portal": "Edit portal",
|
|
25
25
|
"Edit portal": "Edit portal",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"Routes permissions": "Routes permissions",
|
|
34
34
|
"Multi-portal": "Portal manager",
|
|
35
35
|
"Mobile": "Mobile",
|
|
36
|
+
"More": "More",
|
|
36
37
|
"New portals are allowed to be accessed by default": "New portals are allowed to be accessed by default",
|
|
37
38
|
"New routes are allowed to be accessed by default": "New routes are allowed to be accessed by default",
|
|
38
39
|
"Must start with /. For example: /portal.": "Must start with /. For example: /portal.",
|
|
@@ -42,21 +43,24 @@
|
|
|
42
43
|
"No routes": "No routes",
|
|
43
44
|
"Failed to load portals": "Failed to load portals",
|
|
44
45
|
"Failed to save portal": "Failed to save portal",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
46
|
+
"Build complete business systems with AI agents and code.": "Build complete business systems with AI agents and code.",
|
|
47
|
+
"Users describe requirements in natural language, and AI agents create and modify applications, including interfaces, data models, business logic, roles and permissions, and more.": "Users describe requirements in natural language, and AI agents create and modify applications, including interfaces, data models, business logic, roles and permissions, and more.",
|
|
48
|
+
"Build business systems through visual configuration.": "Build business systems through visual configuration.",
|
|
49
|
+
"Users create applications through drag-and-drop configuration. AI can assist with creating, adjusting, and optimizing configurations such as data models, interfaces, workflows, and more.": "Users create applications through drag-and-drop configuration. AI can assist with creating, adjusting, and optimizing configurations such as data models, interfaces, workflows, and more.",
|
|
47
50
|
"Directory inside the Git repository for this portal. Leave empty for the root.": "Directory inside the Git repository for this portal. Leave empty for the root.",
|
|
48
51
|
"Git": "Git",
|
|
49
52
|
"Git branch": "Git branch",
|
|
50
53
|
"Git path": "Git path",
|
|
51
54
|
"Git repository URL": "Git repository URL",
|
|
52
55
|
"Icon": "Icon",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
56
|
+
"Store and manage application source code in a Git repository.": "Store and manage application source code in a Git repository.",
|
|
57
|
+
"Store and manage application source code in NocoBase.": "Store and manage application source code in NocoBase.",
|
|
55
58
|
"NocoBase": "NocoBase",
|
|
56
59
|
"Portal": "Portal",
|
|
57
|
-
"No-code
|
|
60
|
+
"No-code mode": "No-code mode",
|
|
58
61
|
"Portal manager": "Portal manager",
|
|
59
62
|
"Portal name": "Portal name",
|
|
63
|
+
"Portal name \"{{portalName}}\" already exists": "Portal name \"{{portalName}}\" already exists",
|
|
60
64
|
"Portal name can only contain lowercase letters, numbers, hyphens, and underscores": "Portal name can only contain lowercase letters, numbers, hyphens, and underscores",
|
|
61
65
|
"Portals": "Portals",
|
|
62
66
|
"Refresh": "Refresh",
|
|
@@ -67,13 +71,16 @@
|
|
|
67
71
|
"Saved successfully": "Saved successfully",
|
|
68
72
|
"Search routes": "Search routes",
|
|
69
73
|
"Select a role to configure permissions": "Select a role to configure permissions",
|
|
70
|
-
"Source
|
|
74
|
+
"Source management": "Source management",
|
|
75
|
+
"Select how the application source code is stored and managed.": "Select how the application source code is stored and managed.",
|
|
71
76
|
"Submit": "Submit",
|
|
72
77
|
"Target portal": "Target portal",
|
|
78
|
+
"The default portal cannot be disabled": "The default portal cannot be disabled. Set another portal as default first.",
|
|
73
79
|
"The corresponding portal directory will also be deleted.": "The corresponding portal directory will also be deleted.",
|
|
74
80
|
"This entry is currently unavailable. Please check the application status.": "This entry is currently unavailable. Please check the application status.",
|
|
75
81
|
"This entry is no longer available. Please remove this button.": "This entry is no longer available. Please remove this button.",
|
|
76
82
|
"Title": "Title",
|
|
83
|
+
"Display name of the portal.": "Display name of the portal.",
|
|
77
84
|
"Title field is required": "Title field is required",
|
|
78
85
|
"The field value is required": "The field value is required",
|
|
79
86
|
"UID": "UID",
|
|
@@ -101,7 +108,6 @@
|
|
|
101
108
|
"If selected, the page will display Tab pages.": "If selected, the page will display Tab pages.",
|
|
102
109
|
"If selected, the route will be displayed in the menu.": "If selected, the route will be displayed in the menu.",
|
|
103
110
|
"Link": "Link",
|
|
104
|
-
"Managed by layout permissions": "Managed by layout permissions",
|
|
105
111
|
"Name": "Name",
|
|
106
112
|
"Page": "Page",
|
|
107
113
|
"Path": "Path",
|
|
@@ -119,15 +125,40 @@
|
|
|
119
125
|
"No-code": "No-code mode",
|
|
120
126
|
"AI": "AI mode",
|
|
121
127
|
"Default": "Default",
|
|
128
|
+
"Default portal": "Default portal",
|
|
129
|
+
"Set as default": "Set as default",
|
|
130
|
+
"Default portal updated successfully": "Default portal updated successfully",
|
|
131
|
+
"Users enter this portal by default when they open the application without specifying one.": "Users enter this portal by default when they open the application without specifying one.",
|
|
132
|
+
"Use multiPortals:setDefault to update the default Portal": "Use multiPortals:setDefault to update the default Portal",
|
|
133
|
+
"filterByTk is required": "filterByTk is required",
|
|
134
|
+
"Invalid Portal context": "Invalid Portal context",
|
|
135
|
+
"Portal not found": "Portal not found",
|
|
136
|
+
"You do not have access to this Portal": "You do not have access to this Portal",
|
|
137
|
+
"Disabled Portal cannot be set as default": "Disabled Portal cannot be set as default",
|
|
138
|
+
"Portal device configuration is invalid": "Portal device configuration is invalid",
|
|
139
|
+
"Unsupported Portal type cannot be set as default": "Unsupported Portal type cannot be set as default",
|
|
122
140
|
"No portals yet": "No portals yet",
|
|
123
141
|
"Each portal is a standalone front end with its own routes and menus.": "Each portal is a standalone front end with its own routes and menus.",
|
|
124
142
|
"Cover": "Cover",
|
|
125
143
|
"Upload cover": "Upload cover",
|
|
126
144
|
"Replace cover": "Replace cover",
|
|
127
145
|
"Used as the cover placeholder when no cover is uploaded.": "Used as the cover placeholder when no cover is uploaded.",
|
|
128
|
-
"Used
|
|
129
|
-
"
|
|
146
|
+
"Used to generate the portal URL.": "Used to generate the portal URL.",
|
|
147
|
+
"Example:": "Example:",
|
|
148
|
+
"Shown on the portal card.": "Shown on the portal card.",
|
|
130
149
|
"Device": "Device",
|
|
131
150
|
"No-code portals render with the components of this device; AI portals use it for grouping.": "No-code portals render with the components of this device; AI portals use it for grouping.",
|
|
132
|
-
"
|
|
151
|
+
"Anonymous": "Anonymous",
|
|
152
|
+
"Checking Portal access": "Checking Portal access",
|
|
153
|
+
"Current role": "Current role",
|
|
154
|
+
"Failed to check Portal access": "Failed to check Portal access",
|
|
155
|
+
"Failed to switch role": "Failed to switch role",
|
|
156
|
+
"Full permissions": "Full permissions",
|
|
157
|
+
"No access to this Portal": "No access to this Portal",
|
|
158
|
+
"Please switch to a role that can access this Portal.": "Please switch to a role that can access this Portal.",
|
|
159
|
+
"Portal access will be checked again after switching.": "Portal access will be checked again after switching.",
|
|
160
|
+
"Retry": "Retry",
|
|
161
|
+
"Select role": "Select role",
|
|
162
|
+
"Switch role": "Switch role",
|
|
163
|
+
"Unable to verify whether the current role can access this Portal.": "Unable to verify whether the current role can access this Portal."
|
|
133
164
|
}
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Access path cannot contain wildcard": "访问路径不能包含通配符",
|
|
12
12
|
"Access path can only contain letters, numbers, hyphens, underscores, and slashes": "访问路径只能包含英文字母、数字、连字符、下划线和斜杠",
|
|
13
13
|
"Access path must start with /": "访问路径必须以 / 开头",
|
|
14
|
-
"AI
|
|
14
|
+
"AI mode": "AI 模式",
|
|
15
15
|
"Are you sure you want to delete it?": "确定要删除吗?",
|
|
16
16
|
"Are you sure you want to delete the selected Multi-portal records?": "确定要删除选中的门户记录吗?",
|
|
17
17
|
"Cancel": "取消",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"Delete Multi-portal": "删除门户",
|
|
20
20
|
"Delete portal": "删除门户",
|
|
21
21
|
"Desktop": "桌面端",
|
|
22
|
-
"
|
|
22
|
+
"Development mode": "开发模式",
|
|
23
23
|
"Edit": "编辑",
|
|
24
24
|
"Edit Multi-portal": "编辑门户",
|
|
25
25
|
"Edit portal": "编辑门户",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"Routes permissions": "路由权限",
|
|
34
34
|
"Multi-portal": "门户管理",
|
|
35
35
|
"Mobile": "移动端",
|
|
36
|
+
"More": "更多",
|
|
36
37
|
"New portals are allowed to be accessed by default": "新建门户默认允许访问",
|
|
37
38
|
"New routes are allowed to be accessed by default": "新建路由默认允许访问",
|
|
38
39
|
"Must start with /. For example: /portal.": "必须以 / 开头,例如 /门户。",
|
|
@@ -42,21 +43,24 @@
|
|
|
42
43
|
"No routes": "暂无路由",
|
|
43
44
|
"Failed to load portals": "加载门户失败",
|
|
44
45
|
"Failed to save portal": "保存门户失败",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
46
|
+
"Build complete business systems with AI agents and code.": "使用 AI Agent 和代码能力开发完整业务系统。",
|
|
47
|
+
"Users describe requirements in natural language, and AI agents create and modify applications, including interfaces, data models, business logic, roles and permissions, and more.": "用户通过自然语言描述需求,AI Agent 负责创建和修改应用,包括界面、数据模型、业务逻辑、角色权限等。",
|
|
48
|
+
"Build business systems through visual configuration.": "通过可视化界面配置开发业务系统。",
|
|
49
|
+
"Users create applications through drag-and-drop configuration. AI can assist with creating, adjusting, and optimizing configurations such as data models, interfaces, workflows, and more.": "用户通过拖拽和配置方式创建应用,AI 可以协助创建、调整和优化数据模型、界面、工作流等配置。",
|
|
47
50
|
"Directory inside the Git repository for this portal. Leave empty for the root.": "该门户在 Git 仓库内的目录,留空表示仓库根目录。",
|
|
48
51
|
"Git": "Git",
|
|
49
52
|
"Git branch": "Git 分支",
|
|
50
53
|
"Git path": "Git 路径",
|
|
51
54
|
"Git repository URL": "Git 仓库 URL",
|
|
52
55
|
"Icon": "图标",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
56
|
+
"Store and manage application source code in a Git repository.": "在 Git 仓库中存储和管理应用源码。",
|
|
57
|
+
"Store and manage application source code in NocoBase.": "在 NocoBase 中存储和管理应用源码。",
|
|
55
58
|
"NocoBase": "NocoBase",
|
|
56
59
|
"Portal": "门户",
|
|
57
|
-
"No-code
|
|
60
|
+
"No-code mode": "无代码模式",
|
|
58
61
|
"Portal manager": "门户管理",
|
|
59
62
|
"Portal name": "门户名称",
|
|
63
|
+
"Portal name \"{{portalName}}\" already exists": "门户名称“{{portalName}}”已存在",
|
|
60
64
|
"Portal name can only contain lowercase letters, numbers, hyphens, and underscores": "门户名称只能包含小写英文字母、数字、连字符和下划线",
|
|
61
65
|
"Portals": "门户",
|
|
62
66
|
"Refresh": "刷新",
|
|
@@ -67,13 +71,16 @@
|
|
|
67
71
|
"Saved successfully": "保存成功",
|
|
68
72
|
"Search routes": "搜索路由",
|
|
69
73
|
"Select a role to configure permissions": "请选择角色后配置权限",
|
|
70
|
-
"Source
|
|
74
|
+
"Source management": "源码管理",
|
|
75
|
+
"Select how the application source code is stored and managed.": "选择应用源码的存储和管理方式。",
|
|
71
76
|
"Submit": "提交",
|
|
72
77
|
"Target portal": "目标门户",
|
|
78
|
+
"The default portal cannot be disabled": "默认门户不能停用,请先把默认设置给其他门户。",
|
|
73
79
|
"The corresponding portal directory will also be deleted.": "对应的门户目录也会被删除。",
|
|
74
80
|
"This entry is currently unavailable. Please check the application status.": "当前不可用,请检查应用状态。",
|
|
75
81
|
"This entry is no longer available. Please remove this button.": "该入口当前不可用,请移除此按钮。",
|
|
76
82
|
"Title": "标题",
|
|
83
|
+
"Display name of the portal.": "门户显示名称。",
|
|
77
84
|
"Title field is required": "标题字段为必填项",
|
|
78
85
|
"The field value is required": "字段值为必填项",
|
|
79
86
|
"UID": "UID",
|
|
@@ -101,7 +108,6 @@
|
|
|
101
108
|
"If selected, the page will display Tab pages.": "勾选后,页面将显示标签页。",
|
|
102
109
|
"If selected, the route will be displayed in the menu.": "勾选后,路由会在菜单中显示。",
|
|
103
110
|
"Link": "链接",
|
|
104
|
-
"Managed by layout permissions": "沿用布局权限",
|
|
105
111
|
"Name": "名称",
|
|
106
112
|
"Page": "页面",
|
|
107
113
|
"Path": "路径",
|
|
@@ -119,15 +125,40 @@
|
|
|
119
125
|
"No-code": "无代码模式",
|
|
120
126
|
"AI": "AI 模式",
|
|
121
127
|
"Default": "默认",
|
|
128
|
+
"Default portal": "默认门户",
|
|
129
|
+
"Set as default": "设为默认",
|
|
130
|
+
"Default portal updated successfully": "默认门户更新成功",
|
|
131
|
+
"Users enter this portal by default when they open the application without specifying one.": "用户未指定门户访问应用时,将默认进入此门户。",
|
|
132
|
+
"Use multiPortals:setDefault to update the default Portal": "请使用 multiPortals:setDefault 更新默认门户",
|
|
133
|
+
"filterByTk is required": "filterByTk 为必填项",
|
|
134
|
+
"Invalid Portal context": "Portal 上下文无效",
|
|
135
|
+
"Portal not found": "门户不存在",
|
|
136
|
+
"You do not have access to this Portal": "您无权访问此 Portal",
|
|
137
|
+
"Disabled Portal cannot be set as default": "已禁用的门户不能设为默认",
|
|
138
|
+
"Portal device configuration is invalid": "门户设备配置无效",
|
|
139
|
+
"Unsupported Portal type cannot be set as default": "不支持的门户类型不能设为默认",
|
|
122
140
|
"No portals yet": "还没有门户",
|
|
123
141
|
"Each portal is a standalone front end with its own routes and menus.": "每个门户是一套独立的前台,有自己的路由和菜单。",
|
|
124
142
|
"Cover": "封面",
|
|
125
143
|
"Upload cover": "上传封面",
|
|
126
144
|
"Replace cover": "更换封面",
|
|
127
145
|
"Used as the cover placeholder when no cover is uploaded.": "没有上传封面时,用它作为封面占位。",
|
|
128
|
-
"Used
|
|
129
|
-
"
|
|
146
|
+
"Used to generate the portal URL.": "用于生成门户访问地址。",
|
|
147
|
+
"Example:": "示例:",
|
|
148
|
+
"Shown on the portal card.": "显示在门户卡片上。",
|
|
130
149
|
"Device": "设备",
|
|
131
150
|
"No-code portals render with the components of this device; AI portals use it for grouping.": "无代码门户按此选择组件形态;AI 门户用它做归类。",
|
|
132
|
-
"
|
|
151
|
+
"Anonymous": "匿名用户",
|
|
152
|
+
"Checking Portal access": "正在检查门户访问权限",
|
|
153
|
+
"Current role": "当前角色",
|
|
154
|
+
"Failed to check Portal access": "门户访问权限检查失败",
|
|
155
|
+
"Failed to switch role": "切换角色失败",
|
|
156
|
+
"Full permissions": "全部权限",
|
|
157
|
+
"No access to this Portal": "无权访问此门户",
|
|
158
|
+
"Please switch to a role that can access this Portal.": "当前角色没有访问权限,请切换角色后重试。",
|
|
159
|
+
"Portal access will be checked again after switching.": "切换后将重新检查门户访问权限",
|
|
160
|
+
"Retry": "重试",
|
|
161
|
+
"Select role": "选择角色",
|
|
162
|
+
"Switch role": "切换角色",
|
|
163
|
+
"Unable to verify whether the current role can access this Portal.": "暂时无法确认当前角色是否有权访问此门户。"
|
|
133
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"Isaac Z. Schlueter","name":"tar","description":"tar for node","version":"7.5.15","repository":{"type":"git","url":"https://github.com/isaacs/node-tar.git"},"scripts":{"genparse":"node scripts/generate-parse-fixtures.js","snap":"tap","test":"tap","pretest":"npm run prepare","presnap":"npm run prepare","prepare":"tshy && bash scripts/build.sh","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write . --log-level warn","typedoc":"typedoc --tsconfig .tshy/esm.json ./src/*.ts","lint":"oxlint --fix src test","postsnap":"npm run lint","postlint":"npm run format"},"dependencies":{"@isaacs/fs-minipass":"^4.0.0","chownr":"^3.0.0","minipass":"^7.1.2","minizlib":"^3.1.0","yallist":"^5.0.0"},"devDependencies":{"@types/node":"^25.5.0","chmodr":"^2.0.2","end-of-stream":"^1.4.3","esbuild":"^0.27.4","events-to-array":"^2.0.3","mutate-fs":"^2.1.1","nock":"^13.5.4","oxlint":"^1.57.0","oxlint-tsgolint":"^0.17.3","prettier":"^3.8.1","rimraf":"^6.1.2","tap":"^21.6.2","tshy":"^3.3.2","typedoc":"^0.28.18"},"license":"BlueOak-1.0.0","engines":{"node":">=18"},"files":["dist"],"tshy":{"exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}},"./raw":"./src/index.ts","./c":"./src/create.ts","./create":"./src/create.ts","./replace":"./src/create.ts","./r":"./src/create.ts","./list":"./src/list.ts","./t":"./src/list.ts","./update":"./src/update.ts","./u":"./src/update.ts","./extract":"./src/extract.ts","./x":"./src/extract.ts","./pack":"./src/pack.ts","./unpack":"./src/unpack.ts","./parse":"./src/parse.ts","./read-entry":"./src/read-entry.ts","./write-entry":"./src/write-entry.ts","./header":"./src/header.ts","./pax":"./src/pax.ts","./types":"./src/types.ts"}},"exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}},"./raw":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.js"}},"./c":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./create":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./replace":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./r":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./list":{"import":{"types":"./dist/esm/list.d.ts","default":"./dist/esm/list.js"},"require":{"types":"./dist/commonjs/list.d.ts","default":"./dist/commonjs/list.js"}},"./t":{"import":{"types":"./dist/esm/list.d.ts","default":"./dist/esm/list.js"},"require":{"types":"./dist/commonjs/list.d.ts","default":"./dist/commonjs/list.js"}},"./update":{"import":{"types":"./dist/esm/update.d.ts","default":"./dist/esm/update.js"},"require":{"types":"./dist/commonjs/update.d.ts","default":"./dist/commonjs/update.js"}},"./u":{"import":{"types":"./dist/esm/update.d.ts","default":"./dist/esm/update.js"},"require":{"types":"./dist/commonjs/update.d.ts","default":"./dist/commonjs/update.js"}},"./extract":{"import":{"types":"./dist/esm/extract.d.ts","default":"./dist/esm/extract.js"},"require":{"types":"./dist/commonjs/extract.d.ts","default":"./dist/commonjs/extract.js"}},"./x":{"import":{"types":"./dist/esm/extract.d.ts","default":"./dist/esm/extract.js"},"require":{"types":"./dist/commonjs/extract.d.ts","default":"./dist/commonjs/extract.js"}},"./pack":{"import":{"types":"./dist/esm/pack.d.ts","default":"./dist/esm/pack.js"},"require":{"types":"./dist/commonjs/pack.d.ts","default":"./dist/commonjs/pack.js"}},"./unpack":{"import":{"types":"./dist/esm/unpack.d.ts","default":"./dist/esm/unpack.js"},"require":{"types":"./dist/commonjs/unpack.d.ts","default":"./dist/commonjs/unpack.js"}},"./parse":{"import":{"types":"./dist/esm/parse.d.ts","default":"./dist/esm/parse.js"},"require":{"types":"./dist/commonjs/parse.d.ts","default":"./dist/commonjs/parse.js"}},"./read-entry":{"import":{"types":"./dist/esm/read-entry.d.ts","default":"./dist/esm/read-entry.js"},"require":{"types":"./dist/commonjs/read-entry.d.ts","default":"./dist/commonjs/read-entry.js"}},"./write-entry":{"import":{"types":"./dist/esm/write-entry.d.ts","default":"./dist/esm/write-entry.js"},"require":{"types":"./dist/commonjs/write-entry.d.ts","default":"./dist/commonjs/write-entry.js"}},"./header":{"import":{"types":"./dist/esm/header.d.ts","default":"./dist/esm/header.js"},"require":{"types":"./dist/commonjs/header.d.ts","default":"./dist/commonjs/header.js"}},"./pax":{"import":{"types":"./dist/esm/pax.d.ts","default":"./dist/esm/pax.js"},"require":{"types":"./dist/commonjs/pax.d.ts","default":"./dist/commonjs/pax.js"}},"./types":{"import":{"types":"./dist/esm/types.d.ts","default":"./dist/esm/types.js"},"require":{"types":"./dist/commonjs/types.d.ts","default":"./dist/commonjs/types.js"}}},"type":"module","main":"./dist/commonjs/index.min.js","types":"./dist/commonjs/index.d.ts","module":"./dist/esm/index.min.js","_lastModified":"2026-
|
|
1
|
+
{"author":"Isaac Z. Schlueter","name":"tar","description":"tar for node","version":"7.5.15","repository":{"type":"git","url":"https://github.com/isaacs/node-tar.git"},"scripts":{"genparse":"node scripts/generate-parse-fixtures.js","snap":"tap","test":"tap","pretest":"npm run prepare","presnap":"npm run prepare","prepare":"tshy && bash scripts/build.sh","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write . --log-level warn","typedoc":"typedoc --tsconfig .tshy/esm.json ./src/*.ts","lint":"oxlint --fix src test","postsnap":"npm run lint","postlint":"npm run format"},"dependencies":{"@isaacs/fs-minipass":"^4.0.0","chownr":"^3.0.0","minipass":"^7.1.2","minizlib":"^3.1.0","yallist":"^5.0.0"},"devDependencies":{"@types/node":"^25.5.0","chmodr":"^2.0.2","end-of-stream":"^1.4.3","esbuild":"^0.27.4","events-to-array":"^2.0.3","mutate-fs":"^2.1.1","nock":"^13.5.4","oxlint":"^1.57.0","oxlint-tsgolint":"^0.17.3","prettier":"^3.8.1","rimraf":"^6.1.2","tap":"^21.6.2","tshy":"^3.3.2","typedoc":"^0.28.18"},"license":"BlueOak-1.0.0","engines":{"node":">=18"},"files":["dist"],"tshy":{"exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}},"./raw":"./src/index.ts","./c":"./src/create.ts","./create":"./src/create.ts","./replace":"./src/create.ts","./r":"./src/create.ts","./list":"./src/list.ts","./t":"./src/list.ts","./update":"./src/update.ts","./u":"./src/update.ts","./extract":"./src/extract.ts","./x":"./src/extract.ts","./pack":"./src/pack.ts","./unpack":"./src/unpack.ts","./parse":"./src/parse.ts","./read-entry":"./src/read-entry.ts","./write-entry":"./src/write-entry.ts","./header":"./src/header.ts","./pax":"./src/pax.ts","./types":"./src/types.ts"}},"exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}},"./raw":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.js"}},"./c":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./create":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./replace":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./r":{"import":{"types":"./dist/esm/create.d.ts","default":"./dist/esm/create.js"},"require":{"types":"./dist/commonjs/create.d.ts","default":"./dist/commonjs/create.js"}},"./list":{"import":{"types":"./dist/esm/list.d.ts","default":"./dist/esm/list.js"},"require":{"types":"./dist/commonjs/list.d.ts","default":"./dist/commonjs/list.js"}},"./t":{"import":{"types":"./dist/esm/list.d.ts","default":"./dist/esm/list.js"},"require":{"types":"./dist/commonjs/list.d.ts","default":"./dist/commonjs/list.js"}},"./update":{"import":{"types":"./dist/esm/update.d.ts","default":"./dist/esm/update.js"},"require":{"types":"./dist/commonjs/update.d.ts","default":"./dist/commonjs/update.js"}},"./u":{"import":{"types":"./dist/esm/update.d.ts","default":"./dist/esm/update.js"},"require":{"types":"./dist/commonjs/update.d.ts","default":"./dist/commonjs/update.js"}},"./extract":{"import":{"types":"./dist/esm/extract.d.ts","default":"./dist/esm/extract.js"},"require":{"types":"./dist/commonjs/extract.d.ts","default":"./dist/commonjs/extract.js"}},"./x":{"import":{"types":"./dist/esm/extract.d.ts","default":"./dist/esm/extract.js"},"require":{"types":"./dist/commonjs/extract.d.ts","default":"./dist/commonjs/extract.js"}},"./pack":{"import":{"types":"./dist/esm/pack.d.ts","default":"./dist/esm/pack.js"},"require":{"types":"./dist/commonjs/pack.d.ts","default":"./dist/commonjs/pack.js"}},"./unpack":{"import":{"types":"./dist/esm/unpack.d.ts","default":"./dist/esm/unpack.js"},"require":{"types":"./dist/commonjs/unpack.d.ts","default":"./dist/commonjs/unpack.js"}},"./parse":{"import":{"types":"./dist/esm/parse.d.ts","default":"./dist/esm/parse.js"},"require":{"types":"./dist/commonjs/parse.d.ts","default":"./dist/commonjs/parse.js"}},"./read-entry":{"import":{"types":"./dist/esm/read-entry.d.ts","default":"./dist/esm/read-entry.js"},"require":{"types":"./dist/commonjs/read-entry.d.ts","default":"./dist/commonjs/read-entry.js"}},"./write-entry":{"import":{"types":"./dist/esm/write-entry.d.ts","default":"./dist/esm/write-entry.js"},"require":{"types":"./dist/commonjs/write-entry.d.ts","default":"./dist/commonjs/write-entry.js"}},"./header":{"import":{"types":"./dist/esm/header.d.ts","default":"./dist/esm/header.js"},"require":{"types":"./dist/commonjs/header.d.ts","default":"./dist/commonjs/header.js"}},"./pax":{"import":{"types":"./dist/esm/pax.d.ts","default":"./dist/esm/pax.js"},"require":{"types":"./dist/commonjs/pax.d.ts","default":"./dist/commonjs/pax.js"}},"./types":{"import":{"types":"./dist/esm/types.d.ts","default":"./dist/esm/types.js"},"require":{"types":"./dist/commonjs/types.d.ts","default":"./dist/commonjs/types.js"}}},"type":"module","main":"./dist/commonjs/index.min.js","types":"./dist/commonjs/index.d.ts","module":"./dist/esm/index.min.js","_lastModified":"2026-09-02T04:18:45.219Z"}
|
|
@@ -39,7 +39,11 @@ var multiPortals_default = (0, import_database.defineCollection)({
|
|
|
39
39
|
indexes: [
|
|
40
40
|
{
|
|
41
41
|
type: "UNIQUE",
|
|
42
|
-
fields: ["
|
|
42
|
+
fields: ["routeName"]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: "UNIQUE",
|
|
46
|
+
fields: ["isDefault"]
|
|
43
47
|
}
|
|
44
48
|
],
|
|
45
49
|
fields: [
|
|
@@ -89,6 +93,12 @@ var multiPortals_default = (0, import_database.defineCollection)({
|
|
|
89
93
|
defaultValue: true,
|
|
90
94
|
allowNull: false
|
|
91
95
|
},
|
|
96
|
+
{
|
|
97
|
+
name: "isDefault",
|
|
98
|
+
type: "boolean",
|
|
99
|
+
defaultValue: null,
|
|
100
|
+
allowNull: true
|
|
101
|
+
},
|
|
92
102
|
{
|
|
93
103
|
name: "options",
|
|
94
104
|
type: "json",
|
|
@@ -98,8 +108,7 @@ var multiPortals_default = (0, import_database.defineCollection)({
|
|
|
98
108
|
{
|
|
99
109
|
name: "uiLayoutUid",
|
|
100
110
|
type: "string",
|
|
101
|
-
allowNull: true
|
|
102
|
-
hidden: true
|
|
111
|
+
allowNull: true
|
|
103
112
|
},
|
|
104
113
|
{
|
|
105
114
|
name: "createdAt",
|
|
@@ -114,14 +123,6 @@ var multiPortals_default = (0, import_database.defineCollection)({
|
|
|
114
123
|
field: "updatedAt",
|
|
115
124
|
interface: "updatedAt",
|
|
116
125
|
allowNull: true
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
type: "belongsTo",
|
|
120
|
-
name: "uiLayout",
|
|
121
|
-
target: "uiLayouts",
|
|
122
|
-
targetKey: "uid",
|
|
123
|
-
foreignKey: "uiLayoutUid",
|
|
124
|
-
onDelete: "RESTRICT"
|
|
125
126
|
}
|
|
126
127
|
],
|
|
127
128
|
filterTargetKey: "uid"
|
package/dist/server/plugin.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { Plugin } from '@nocobase/server';
|
|
10
10
|
import type { ResourcerContext } from '@nocobase/resourcer';
|
|
11
11
|
import { type Transaction } from '@nocobase/database';
|
|
12
|
+
import { type MultiPortalLayoutType } from '../constants';
|
|
12
13
|
type DatabaseHookOptions = {
|
|
13
14
|
transaction?: Transaction;
|
|
14
15
|
context?: ResourcerContext;
|
|
@@ -19,18 +20,21 @@ type AppPortalManifestItem = {
|
|
|
19
20
|
icon?: string | null;
|
|
20
21
|
portalType?: string | null;
|
|
21
22
|
routePath: string;
|
|
22
|
-
layout:
|
|
23
|
+
layout: MultiPortalLayoutType;
|
|
23
24
|
};
|
|
24
25
|
export declare class PluginMultiPortalServer extends Plugin {
|
|
25
26
|
private portalStorageTaskKeys;
|
|
26
27
|
private portalStorageTasks;
|
|
28
|
+
private deprecatedInitPortalEnvWarningEmitted;
|
|
27
29
|
afterAdd(): Promise<void>;
|
|
28
30
|
private getAppName;
|
|
31
|
+
private getCurrentStorageAppName;
|
|
29
32
|
private getMultiPortalStorageItem;
|
|
30
33
|
private warnPortalStorageSyncFailed;
|
|
34
|
+
private logPortalBuildHtml;
|
|
31
35
|
private getPortalStorageTaskKey;
|
|
32
36
|
private runPortalStorageTask;
|
|
33
|
-
private
|
|
37
|
+
private removePortalStorageIndexHtml;
|
|
34
38
|
private waitForPortalStorageTasks;
|
|
35
39
|
private schedulePortalTemplateCopyAndBuild;
|
|
36
40
|
private ensurePortalStorageItem;
|
|
@@ -41,12 +45,10 @@ export declare class PluginMultiPortalServer extends Plugin {
|
|
|
41
45
|
private pullPortalSource;
|
|
42
46
|
private pushPortalSource;
|
|
43
47
|
listAppPortalManifest(options?: DatabaseHookOptions): Promise<AppPortalManifestItem[]>;
|
|
44
|
-
private getUiLayout;
|
|
45
48
|
private toAppPortalManifestItem;
|
|
46
49
|
private setAppManifestItem;
|
|
47
50
|
private removeAppManifestItem;
|
|
48
51
|
private publishAppManifestItem;
|
|
49
|
-
private publishUiLayoutManifestItems;
|
|
50
52
|
private reconcilePortalStorage;
|
|
51
53
|
private reconcileAppManifest;
|
|
52
54
|
private removeAppManifest;
|