@nocobase/plugin-multi-portal 2.2.0-alpha.12 → 3.0.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.
package/dist/externalVersion.js
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/flow-engine": "
|
|
12
|
-
"@nocobase/client": "
|
|
13
|
-
"@nocobase/client-v2": "
|
|
11
|
+
"@nocobase/flow-engine": "3.0.0-alpha.2",
|
|
12
|
+
"@nocobase/client": "3.0.0-alpha.2",
|
|
13
|
+
"@nocobase/client-v2": "3.0.0-alpha.2",
|
|
14
14
|
"antd": "5.24.2",
|
|
15
15
|
"react": "18.2.0",
|
|
16
16
|
"react-router-dom": "6.30.1",
|
|
17
|
-
"@nocobase/database": "
|
|
18
|
-
"@nocobase/server": "
|
|
19
|
-
"@nocobase/resourcer": "
|
|
20
|
-
"@nocobase/utils": "
|
|
17
|
+
"@nocobase/database": "3.0.0-alpha.2",
|
|
18
|
+
"@nocobase/server": "3.0.0-alpha.2",
|
|
19
|
+
"@nocobase/resourcer": "3.0.0-alpha.2",
|
|
20
|
+
"@nocobase/utils": "3.0.0-alpha.2",
|
|
21
21
|
"ahooks": "3.7.8",
|
|
22
22
|
"antd-style": "3.7.1",
|
|
23
|
-
"@nocobase/plugin-ui-layout": "
|
|
23
|
+
"@nocobase/plugin-ui-layout": "3.0.0-alpha.2",
|
|
24
24
|
"@ant-design/icons": "5.6.1",
|
|
25
25
|
"sequelize": "6.35.2"
|
|
26
26
|
};
|
|
@@ -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-07-
|
|
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-07-30T05:57:24.832Z"}
|
package/dist/server/plugin.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export declare class PluginMultiPortalServer extends Plugin {
|
|
|
28
28
|
private getAppName;
|
|
29
29
|
private getMultiPortalStorageItem;
|
|
30
30
|
private warnPortalStorageSyncFailed;
|
|
31
|
+
private logPortalBuildHtml;
|
|
31
32
|
private getPortalStorageTaskKey;
|
|
32
33
|
private runPortalStorageTask;
|
|
33
34
|
private removePortalStorageDist;
|
package/dist/server/plugin.js
CHANGED
|
@@ -2373,6 +2373,14 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2373
2373
|
error
|
|
2374
2374
|
});
|
|
2375
2375
|
}
|
|
2376
|
+
logPortalBuildHtml(item, status, reason) {
|
|
2377
|
+
var _a, _b;
|
|
2378
|
+
(_b = (_a = this.app.logger) == null ? void 0 : _a.info) == null ? void 0 : _b.call(_a, `Portal yarn build:html ${status} for ${item.appName}/${item.portalName}`, {
|
|
2379
|
+
appName: item.appName,
|
|
2380
|
+
portalName: item.portalName,
|
|
2381
|
+
reason
|
|
2382
|
+
});
|
|
2383
|
+
}
|
|
2376
2384
|
getPortalStorageTaskKey(item) {
|
|
2377
2385
|
return `${item.appName}/${item.portalName}`;
|
|
2378
2386
|
}
|
|
@@ -2408,6 +2416,7 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2408
2416
|
var _a;
|
|
2409
2417
|
const taskKey = this.getPortalStorageTaskKey(item);
|
|
2410
2418
|
if (this.portalStorageTaskKeys.has(taskKey)) {
|
|
2419
|
+
this.logPortalBuildHtml(item, "skipped", "a storage task is already running");
|
|
2411
2420
|
await ((_a = template.cleanup) == null ? void 0 : _a.call(template));
|
|
2412
2421
|
return;
|
|
2413
2422
|
}
|
|
@@ -2431,9 +2440,12 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2431
2440
|
await ensurePortalStorageConfigFiles(portalDir, item);
|
|
2432
2441
|
await appendPortalStorageLog(logPath, `Portal configuration files updated in ${portalDir}.`);
|
|
2433
2442
|
if (item.enabled) {
|
|
2443
|
+
this.logPortalBuildHtml(item, "requested", "storage directory was initialized");
|
|
2434
2444
|
await buildPortalStorageItem(portalDir, item);
|
|
2445
|
+
this.logPortalBuildHtml(item, "completed", "yarn build:html finished successfully");
|
|
2435
2446
|
return;
|
|
2436
2447
|
}
|
|
2448
|
+
this.logPortalBuildHtml(item, "skipped", "the portal is disabled");
|
|
2437
2449
|
await this.removePortalStorageDist(item);
|
|
2438
2450
|
await appendPortalStorageLog(logPath, `Portal dist directory removed for ${item.appName}/${item.portalName}.`);
|
|
2439
2451
|
} catch (error) {
|
|
@@ -2451,24 +2463,36 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2451
2463
|
this.portalStorageTasks.set(taskKey, task);
|
|
2452
2464
|
await task;
|
|
2453
2465
|
}
|
|
2454
|
-
async ensurePortalStorageItem(item) {
|
|
2466
|
+
async ensurePortalStorageItem(item, options = {}) {
|
|
2455
2467
|
const portalDir = (0, import_utils.storagePathJoin)("portals", item.appName, item.portalName);
|
|
2456
2468
|
const portalIndex = import_path.default.join(portalDir, "dist", "index.html");
|
|
2469
|
+
const logPath = getPortalStorageLogPath(item);
|
|
2457
2470
|
if (!await pathExists(portalDir)) {
|
|
2458
|
-
const template = await resolvePortalTemplate(getInitPortalTemplate(),
|
|
2471
|
+
const template = await resolvePortalTemplate(getInitPortalTemplate(), logPath);
|
|
2459
2472
|
await this.schedulePortalTemplateCopyAndBuild(item, template, portalDir);
|
|
2460
2473
|
return;
|
|
2461
2474
|
}
|
|
2462
2475
|
await ensurePortalStorageConfigFiles(portalDir, item);
|
|
2463
2476
|
if (item.enabled) {
|
|
2464
|
-
|
|
2477
|
+
const hasPortalIndex = await pathExists(portalIndex);
|
|
2478
|
+
if (options.forceBuild || !hasPortalIndex) {
|
|
2479
|
+
this.logPortalBuildHtml(
|
|
2480
|
+
item,
|
|
2481
|
+
"requested",
|
|
2482
|
+
options.forceBuild ? "forceBuild is enabled" : "dist/index.html does not exist"
|
|
2483
|
+
);
|
|
2465
2484
|
await buildPortalStorageItem(portalDir, item);
|
|
2485
|
+
this.logPortalBuildHtml(item, "completed", "yarn build:html finished successfully");
|
|
2486
|
+
} else {
|
|
2487
|
+
this.logPortalBuildHtml(item, "skipped", "dist/index.html already exists");
|
|
2466
2488
|
}
|
|
2467
2489
|
return;
|
|
2468
2490
|
}
|
|
2491
|
+
this.logPortalBuildHtml(item, "skipped", "the portal is disabled");
|
|
2469
2492
|
await this.removePortalStorageDist(item);
|
|
2493
|
+
await appendPortalStorageLog(logPath, `Portal dist directory removed for ${item.appName}/${item.portalName}.`);
|
|
2470
2494
|
}
|
|
2471
|
-
async syncMultiPortalStorageItem(multiPortal, options, syncPrevious = false) {
|
|
2495
|
+
async syncMultiPortalStorageItem(multiPortal, options, syncPrevious = false, forceBuild = false) {
|
|
2472
2496
|
const currentItem = this.getMultiPortalStorageItem(multiPortal);
|
|
2473
2497
|
const previousItem = syncPrevious ? this.getMultiPortalStorageItem(multiPortal, true) : null;
|
|
2474
2498
|
await this.runPortalStorageTask(async () => {
|
|
@@ -2476,7 +2500,7 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2476
2500
|
await this.removePortalStorageDist(previousItem);
|
|
2477
2501
|
}
|
|
2478
2502
|
if (currentItem) {
|
|
2479
|
-
await this.ensurePortalStorageItem(currentItem);
|
|
2503
|
+
await this.ensurePortalStorageItem(currentItem, { forceBuild });
|
|
2480
2504
|
}
|
|
2481
2505
|
}, options);
|
|
2482
2506
|
}
|
|
@@ -2903,7 +2927,7 @@ class PluginMultiPortalServer extends import_server.Plugin {
|
|
|
2903
2927
|
if (shouldSkipCreatePortalDirectory(options)) {
|
|
2904
2928
|
return;
|
|
2905
2929
|
}
|
|
2906
|
-
await this.syncMultiPortalStorageItem(multiPortal, options);
|
|
2930
|
+
await this.syncMultiPortalStorageItem(multiPortal, options, false, true);
|
|
2907
2931
|
});
|
|
2908
2932
|
this.app.db.on("multiPortals.afterUpdate", async (multiPortal, options) => {
|
|
2909
2933
|
await this.publishAppManifestItem(multiPortal, options);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-multi-portal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.2",
|
|
4
4
|
"main": "dist/server/index.js",
|
|
5
5
|
"nocobase": {
|
|
6
6
|
"supportedVersions": [
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"description.zh-CN": "为 Client V2 提供内置 Portal 注册、入口访问与路由权限管理。",
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@ant-design/icons": "5.x",
|
|
16
|
-
"@nocobase/plugin-ui-layout": "
|
|
16
|
+
"@nocobase/plugin-ui-layout": "3.0.0-alpha.2",
|
|
17
17
|
"ahooks": "3.x",
|
|
18
18
|
"antd": "5.x",
|
|
19
19
|
"react": "^18.2.0",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"@nocobase/server": "2.x",
|
|
30
30
|
"@nocobase/test": "2.x"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "a3faea21082b30989301de04591ee1b91fd4e6a5"
|
|
33
33
|
}
|