@nocobase/server 2.1.0-alpha.46 → 2.1.0-alpha.47

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.
@@ -372,6 +372,20 @@ const _Gateway = class _Gateway extends import_events.EventEmitter {
372
372
  directoryListing: false
373
373
  });
374
374
  }
375
+ if (pathname.startsWith(APP_PUBLIC_PATH + "dist/")) {
376
+ if (handleApp !== "main") {
377
+ const isProxy = await this.proxyRequestToSubApp(supervisor, handleApp, req, res);
378
+ if (isProxy) {
379
+ return;
380
+ }
381
+ }
382
+ req.url = req.url.substring(APP_PUBLIC_PATH.length + "dist".length);
383
+ await compress(req, res);
384
+ return (0, import_serve_handler.default)(req, res, {
385
+ public: (0, import_utils.storagePathJoin)("dist-client"),
386
+ directoryListing: false
387
+ });
388
+ }
375
389
  if (pathname.startsWith(PLUGIN_STATICS_PATH) && !pathname.includes("/server/")) {
376
390
  if (handleApp !== "main") {
377
391
  const isProxy = await this.proxyRequestToSubApp(supervisor, handleApp, req, res);
@@ -38,7 +38,7 @@ module.exports = __toCommonJS(constants_exports);
38
38
  const APP_NAME = "nocobase";
39
39
  const DEFAULT_PLUGIN_STORAGE_PATH = "storage/plugins";
40
40
  const DEFAULT_PLUGIN_PATH = "packages/plugins/";
41
- const pluginPrefix = (process.env.PLUGIN_PACKAGE_PREFIX || "@nocobase/plugin-,@nocobase/preset-,@nocobase/plugin-pro-").split(",");
41
+ const pluginPrefix = (process.env.PLUGIN_PACKAGE_PREFIX || "@nocobase/plugin-,@nocobase/preset-").split(",");
42
42
  const requireRegex = /require\s*\(['"`](.*?)['"`]\)/g;
43
43
  const importRegex = /^import(?:['"\s]*([\w*${}\s,]+)from\s*)?['"\s]['"\s](.*[@\w_-]+)['"\s].*/gm;
44
44
  const EXTERNAL = [
@@ -6,11 +6,11 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- declare function trim(packageNames: string[]): Promise<any[]>;
10
- export declare function findPackageNames(): Promise<any[]>;
11
- export declare function findBuiltInPlugins(): Promise<any[]>;
12
- export declare function findLocalPlugins(): Promise<any[]>;
13
- export declare function findAllPlugins(): Promise<any[]>;
9
+ declare function trim(packageNames: string[]): Promise<string[]>;
10
+ export declare function findPackageNames(): Promise<string[]>;
11
+ export declare function findBuiltInPlugins(): Promise<string[]>;
12
+ export declare function findLocalPlugins(): Promise<string[]>;
13
+ export declare function findAllPlugins(): Promise<string[]>;
14
14
  export declare const packageNameTrim: typeof trim;
15
15
  export declare function appendToBuiltInPlugins(nameOrPkg: string): Promise<void>;
16
16
  export {};
@@ -45,25 +45,17 @@ __export(findPackageNames_exports, {
45
45
  packageNameTrim: () => packageNameTrim
46
46
  });
47
47
  module.exports = __toCommonJS(findPackageNames_exports);
48
- var import_fast_glob = __toESM(require("fast-glob"));
49
- var import_utils = require("@nocobase/utils");
50
- var import_fs_extra = __toESM(require("fs-extra"));
48
+ var import_plugin_package = require("../../../utils/plugin-package");
51
49
  var import_lodash = __toESM(require("lodash"));
52
- var import_path = __toESM(require("path"));
53
- var import__ = require("./");
54
- function splitNames(name) {
55
- return (name || "").split(",").filter(Boolean);
56
- }
57
- __name(splitNames, "splitNames");
58
50
  async function trim(packageNames) {
59
51
  const nameOrPkgs = import_lodash.default.uniq(packageNames).filter(Boolean);
60
52
  const names = [];
61
53
  for (const nameOrPkg of nameOrPkgs) {
62
- const { name, packageName } = await import__.PluginManager.parseName(nameOrPkg);
63
- try {
64
- await import__.PluginManager.getPackageJson(packageName);
54
+ const { name, packageName } = await (0, import_plugin_package.parsePluginName)(nameOrPkg, {
55
+ nodeModulesPath: process.env.NODE_MODULES_PATH
56
+ });
57
+ if (await (0, import_plugin_package.resolvePluginPackagePath)(packageName)) {
65
58
  names.push(name);
66
- } catch (error) {
67
59
  }
68
60
  }
69
61
  return names;
@@ -82,76 +74,57 @@ const excludes = [
82
74
  "@nocobase/plugin-workflow-test"
83
75
  ];
84
76
  async function findPackageNames() {
85
- const pluginStoragePath = (0, import_utils.resolvePluginStoragePath)();
86
- const patterns = [
87
- "./packages/plugins/*/package.json",
88
- "./packages/plugins/*/*/package.json",
89
- "./packages/pro-plugins/*/*/package.json",
90
- import_path.default.join(pluginStoragePath, "*/package.json"),
91
- import_path.default.join(pluginStoragePath, "*/*/package.json")
92
- ];
93
77
  try {
94
- const packageJsonPaths = await (0, import_fast_glob.default)(patterns, {
95
- cwd: process.cwd(),
96
- absolute: true,
97
- ignore: ["**/external-db-data-source/**"]
78
+ const packages = await (0, import_plugin_package.discoverPluginPackages)({
79
+ nodeModulesPath: process.env.NODE_MODULES_PATH
98
80
  });
99
- const packageNames = await Promise.all(
100
- packageJsonPaths.map(async (packageJsonPath) => {
101
- const packageJson = await import_fs_extra.default.readJson(packageJsonPath);
102
- return packageJson.name;
103
- })
104
- );
105
- const nocobasePlugins = await findNocobasePlugins();
106
- const { APPEND_PRESET_BUILT_IN_PLUGINS = "", APPEND_PRESET_LOCAL_PLUGINS = "" } = process.env;
107
- return trim(
108
- packageNames.filter((pkg) => pkg && !excludes.includes(pkg)).concat(nocobasePlugins).concat(splitNames(APPEND_PRESET_BUILT_IN_PLUGINS)).concat(splitNames(APPEND_PRESET_LOCAL_PLUGINS))
109
- );
81
+ return trim(packages.filter((pkg) => !excludes.includes(pkg.packageName)).map((pkg) => pkg.packageName));
110
82
  } catch (error) {
111
83
  return [];
112
84
  }
113
85
  }
114
86
  __name(findPackageNames, "findPackageNames");
115
87
  async function getPackageJson() {
116
- const packageJson = await import_fs_extra.default.readJson(
117
- import_path.default.resolve(process.env.NODE_MODULES_PATH, "@nocobase/preset-nocobase/package.json")
118
- );
88
+ const packageJson = await (0, import_plugin_package.getPresetNocoBasePackageJson)({
89
+ nodeModulesPath: process.env.NODE_MODULES_PATH
90
+ });
91
+ if (!packageJson) {
92
+ throw new Error("Cannot find @nocobase/preset-nocobase package.json");
93
+ }
119
94
  return packageJson;
120
95
  }
121
96
  __name(getPackageJson, "getPackageJson");
122
- async function findNocobasePlugins() {
123
- try {
124
- const packageJson = await getPackageJson();
125
- const pluginNames = Object.keys(packageJson.dependencies).filter((name) => name.startsWith("@nocobase/plugin-"));
126
- return trim(pluginNames.filter((pkg) => pkg && !excludes.includes(pkg)));
127
- } catch (error) {
128
- return [];
129
- }
130
- }
131
- __name(findNocobasePlugins, "findNocobasePlugins");
132
97
  async function findBuiltInPlugins() {
133
98
  const { APPEND_PRESET_BUILT_IN_PLUGINS = "" } = process.env;
134
99
  try {
135
100
  const packageJson = await getPackageJson();
136
- return trim(packageJson.builtIn.concat(splitNames(APPEND_PRESET_BUILT_IN_PLUGINS)));
101
+ return trim((packageJson.builtIn || []).concat((0, import_plugin_package.splitPluginNames)(APPEND_PRESET_BUILT_IN_PLUGINS)));
137
102
  } catch (error) {
138
103
  return [];
139
104
  }
140
105
  }
141
106
  __name(findBuiltInPlugins, "findBuiltInPlugins");
142
107
  async function findLocalPlugins() {
143
- const { APPEND_PRESET_LOCAL_PLUGINS = "" } = process.env;
144
- const plugins1 = await findNocobasePlugins();
145
- const plugins2 = await findPackageNames();
146
- const builtInPlugins = await findBuiltInPlugins();
147
108
  const packageJson = await getPackageJson();
148
- const items = await trim(
109
+ const packages = await (0, import_plugin_package.discoverPluginPackages)({
110
+ nodeModulesPath: process.env.NODE_MODULES_PATH
111
+ });
112
+ const builtInPackageNames = await Promise.all(
113
+ (packageJson.builtIn || []).concat((0, import_plugin_package.splitPluginNames)(process.env.APPEND_PRESET_BUILT_IN_PLUGINS || "")).map(
114
+ async (nameOrPkg) => (await (0, import_plugin_package.parsePluginName)(nameOrPkg, { nodeModulesPath: process.env.NODE_MODULES_PATH })).packageName
115
+ )
116
+ );
117
+ const deprecatedPackageNames = await Promise.all(
118
+ (packageJson.deprecated || []).map(
119
+ async (nameOrPkg) => (await (0, import_plugin_package.parsePluginName)(nameOrPkg, { nodeModulesPath: process.env.NODE_MODULES_PATH })).packageName
120
+ )
121
+ );
122
+ return trim(
149
123
  import_lodash.default.difference(
150
- plugins1.concat(plugins2).concat(splitNames(APPEND_PRESET_LOCAL_PLUGINS)),
151
- builtInPlugins.concat(await trim(packageJson.deprecated))
124
+ packages.filter((pkg) => !excludes.includes(pkg.packageName)).map((pkg) => pkg.packageName),
125
+ import_lodash.default.uniq(builtInPackageNames.concat(deprecatedPackageNames))
152
126
  )
153
127
  );
154
- return items;
155
128
  }
156
129
  __name(findLocalPlugins, "findLocalPlugins");
157
130
  async function findAllPlugins() {
@@ -163,8 +136,10 @@ __name(findAllPlugins, "findAllPlugins");
163
136
  const packageNameTrim = trim;
164
137
  async function appendToBuiltInPlugins(nameOrPkg) {
165
138
  const APPEND_PRESET_BUILT_IN_PLUGINS = process.env.APPEND_PRESET_BUILT_IN_PLUGINS || "";
166
- const keys = APPEND_PRESET_BUILT_IN_PLUGINS.split(",");
167
- const { name, packageName } = await import__.PluginManager.parseName(nameOrPkg);
139
+ const keys = (0, import_plugin_package.splitPluginNames)(APPEND_PRESET_BUILT_IN_PLUGINS);
140
+ const { name, packageName } = await (0, import_plugin_package.parsePluginName)(nameOrPkg, {
141
+ nodeModulesPath: process.env.NODE_MODULES_PATH
142
+ });
168
143
  if (keys.includes(packageName)) {
169
144
  return;
170
145
  }
@@ -57,6 +57,7 @@ var import_middleware = require("./middleware");
57
57
  var import_collection = __toESM(require("./options/collection"));
58
58
  var import_resource = __toESM(require("./options/resource"));
59
59
  var import_plugin_manager_repository = require("./plugin-manager-repository");
60
+ var import_plugin_package = require("../../../utils/plugin-package");
60
61
  var import_utils2 = require("./utils");
61
62
  const _PluginLoadError = class _PluginLoadError extends Error {
62
63
  constructor(pluginName) {
@@ -180,9 +181,7 @@ const _PluginManager = class _PluginManager {
180
181
  * @internal
181
182
  */
182
183
  static getPluginPkgPrefix() {
183
- return (process.env.PLUGIN_PACKAGE_PREFIX || "@nocobase/plugin-,@nocobase/preset-,@nocobase/plugin-pro-").split(
184
- ","
185
- );
184
+ return (0, import_plugin_package.getPluginPackagePrefixes)();
186
185
  }
187
186
  /**
188
187
  * @internal
@@ -237,32 +236,10 @@ const _PluginManager = class _PluginManager {
237
236
  if (this.parsedNames[nameOrPkg]) {
238
237
  return this.parsedNames[nameOrPkg];
239
238
  }
240
- if (nameOrPkg.startsWith("@nocobase/plugin-")) {
241
- this.parsedNames[nameOrPkg] = {
242
- packageName: nameOrPkg,
243
- name: nameOrPkg.replace("@nocobase/plugin-", "")
244
- };
245
- return this.parsedNames[nameOrPkg];
246
- }
247
- if (nameOrPkg.startsWith("@nocobase/preset-")) {
248
- this.parsedNames[nameOrPkg] = {
249
- packageName: nameOrPkg,
250
- name: nameOrPkg.replace("@nocobase/preset-", "")
251
- };
252
- return this.parsedNames[nameOrPkg];
253
- }
254
- const exists = /* @__PURE__ */ __name(async (name, isPreset = false) => {
255
- return import_fs_extra.default.exists(
256
- (0, import_path.resolve)(process.env.NODE_MODULES_PATH, `@nocobase/${isPreset ? "preset" : "plugin"}-${name}`, "package.json")
257
- );
258
- }, "exists");
259
- if (await exists(nameOrPkg)) {
260
- this.parsedNames[nameOrPkg] = { name: nameOrPkg, packageName: `@nocobase/plugin-${nameOrPkg}` };
261
- } else if (await exists(nameOrPkg, true)) {
262
- this.parsedNames[nameOrPkg] = { name: nameOrPkg, packageName: `@nocobase/preset-${nameOrPkg}` };
263
- } else {
264
- this.parsedNames[nameOrPkg] = { name: nameOrPkg, packageName: nameOrPkg };
265
- }
239
+ this.parsedNames[nameOrPkg] = await (0, import_plugin_package.parsePluginName)(nameOrPkg, {
240
+ nodeModulesPath: process.env.NODE_MODULES_PATH,
241
+ pluginPackagePrefixes: this.getPluginPkgPrefix()
242
+ });
266
243
  return this.parsedNames[nameOrPkg];
267
244
  }
268
245
  addPreset(plugin, options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/server",
3
- "version": "2.1.0-alpha.46",
3
+ "version": "2.1.0-alpha.47",
4
4
  "main": "lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "license": "Apache-2.0",
@@ -10,21 +10,21 @@
10
10
  "@koa/cors": "^5.0.0",
11
11
  "@koa/multer": "^3.1.0",
12
12
  "@koa/router": "^13.1.0",
13
- "@nocobase/acl": "2.1.0-alpha.46",
14
- "@nocobase/actions": "2.1.0-alpha.46",
15
- "@nocobase/ai": "2.1.0-alpha.46",
16
- "@nocobase/auth": "2.1.0-alpha.46",
17
- "@nocobase/cache": "2.1.0-alpha.46",
18
- "@nocobase/data-source-manager": "2.1.0-alpha.46",
19
- "@nocobase/database": "2.1.0-alpha.46",
20
- "@nocobase/evaluators": "2.1.0-alpha.46",
21
- "@nocobase/lock-manager": "2.1.0-alpha.46",
22
- "@nocobase/logger": "2.1.0-alpha.46",
23
- "@nocobase/resourcer": "2.1.0-alpha.46",
24
- "@nocobase/sdk": "2.1.0-alpha.46",
25
- "@nocobase/snowflake-id": "2.1.0-alpha.46",
26
- "@nocobase/telemetry": "2.1.0-alpha.46",
27
- "@nocobase/utils": "2.1.0-alpha.46",
13
+ "@nocobase/acl": "2.1.0-alpha.47",
14
+ "@nocobase/actions": "2.1.0-alpha.47",
15
+ "@nocobase/ai": "2.1.0-alpha.47",
16
+ "@nocobase/auth": "2.1.0-alpha.47",
17
+ "@nocobase/cache": "2.1.0-alpha.47",
18
+ "@nocobase/data-source-manager": "2.1.0-alpha.47",
19
+ "@nocobase/database": "2.1.0-alpha.47",
20
+ "@nocobase/evaluators": "2.1.0-alpha.47",
21
+ "@nocobase/lock-manager": "2.1.0-alpha.47",
22
+ "@nocobase/logger": "2.1.0-alpha.47",
23
+ "@nocobase/resourcer": "2.1.0-alpha.47",
24
+ "@nocobase/sdk": "2.1.0-alpha.47",
25
+ "@nocobase/snowflake-id": "2.1.0-alpha.47",
26
+ "@nocobase/telemetry": "2.1.0-alpha.47",
27
+ "@nocobase/utils": "2.1.0-alpha.47",
28
28
  "@types/decompress": "4.2.7",
29
29
  "@types/ini": "^1.3.31",
30
30
  "@types/koa-send": "^4.1.3",
@@ -61,5 +61,5 @@
61
61
  "@types/serve-handler": "^6.1.1",
62
62
  "@types/ws": "^8.5.5"
63
63
  },
64
- "gitHead": "42b269944cdd1908d7a848c0af4936fe94c03bb7"
64
+ "gitHead": "66196b57f9043ea0ac6ebdafbc732bfb98af1396"
65
65
  }