befly 3.16.9 → 3.16.11
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 +0 -129
- package/befly.js +12769 -0
- package/befly.min.js +47 -0
- package/package.json +18 -29
- package/dist/befly.config.d.ts +0 -7
- package/dist/befly.config.js +0 -128
- package/dist/befly.js +0 -17276
- package/dist/befly.min.js +0 -23
- package/dist/checks/checkApi.d.ts +0 -1
- package/dist/checks/checkApi.js +0 -124
- package/dist/checks/checkConfig.d.ts +0 -9
- package/dist/checks/checkConfig.js +0 -255
- package/dist/checks/checkHook.d.ts +0 -1
- package/dist/checks/checkHook.js +0 -132
- package/dist/checks/checkMenu.d.ts +0 -3
- package/dist/checks/checkMenu.js +0 -106
- package/dist/checks/checkPlugin.d.ts +0 -1
- package/dist/checks/checkPlugin.js +0 -132
- package/dist/checks/checkTable.d.ts +0 -7
- package/dist/checks/checkTable.js +0 -431
- package/dist/configs/presetRegexp.d.ts +0 -145
- package/dist/configs/presetRegexp.js +0 -218
- package/dist/hooks/auth.d.ts +0 -3
- package/dist/hooks/auth.js +0 -24
- package/dist/hooks/cors.d.ts +0 -7
- package/dist/hooks/cors.js +0 -36
- package/dist/hooks/parser.d.ts +0 -10
- package/dist/hooks/parser.js +0 -76
- package/dist/hooks/permission.d.ts +0 -10
- package/dist/hooks/permission.js +0 -64
- package/dist/hooks/validator.d.ts +0 -7
- package/dist/hooks/validator.js +0 -52
- package/dist/index.d.ts +0 -28
- package/dist/index.js +0 -316
- package/dist/lib/asyncContext.d.ts +0 -21
- package/dist/lib/asyncContext.js +0 -27
- package/dist/lib/cacheHelper.d.ts +0 -128
- package/dist/lib/cacheHelper.js +0 -477
- package/dist/lib/cacheKeys.d.ts +0 -27
- package/dist/lib/cacheKeys.js +0 -37
- package/dist/lib/cipher.d.ts +0 -153
- package/dist/lib/cipher.js +0 -237
- package/dist/lib/connect.d.ts +0 -95
- package/dist/lib/connect.js +0 -313
- package/dist/lib/dbHelper.d.ts +0 -229
- package/dist/lib/dbHelper.js +0 -1069
- package/dist/lib/dbUtils.d.ts +0 -91
- package/dist/lib/dbUtils.js +0 -544
- package/dist/lib/jwt.d.ts +0 -13
- package/dist/lib/jwt.js +0 -77
- package/dist/lib/logger.d.ts +0 -46
- package/dist/lib/logger.js +0 -731
- package/dist/lib/redisHelper.d.ts +0 -193
- package/dist/lib/redisHelper.js +0 -598
- package/dist/lib/sqlBuilder.d.ts +0 -160
- package/dist/lib/sqlBuilder.js +0 -837
- package/dist/lib/sqlCheck.d.ts +0 -23
- package/dist/lib/sqlCheck.js +0 -119
- package/dist/lib/validator.d.ts +0 -45
- package/dist/lib/validator.js +0 -424
- package/dist/loader/loadApis.d.ts +0 -12
- package/dist/loader/loadApis.js +0 -71
- package/dist/loader/loadHooks.d.ts +0 -7
- package/dist/loader/loadHooks.js +0 -50
- package/dist/loader/loadPlugins.d.ts +0 -8
- package/dist/loader/loadPlugins.js +0 -69
- package/dist/paths.d.ts +0 -93
- package/dist/paths.js +0 -100
- package/dist/plugins/cache.d.ts +0 -10
- package/dist/plugins/cache.js +0 -24
- package/dist/plugins/cipher.d.ts +0 -7
- package/dist/plugins/cipher.js +0 -14
- package/dist/plugins/config.d.ts +0 -3
- package/dist/plugins/config.js +0 -9
- package/dist/plugins/db.d.ts +0 -10
- package/dist/plugins/db.js +0 -48
- package/dist/plugins/jwt.d.ts +0 -6
- package/dist/plugins/jwt.js +0 -13
- package/dist/plugins/logger.d.ts +0 -10
- package/dist/plugins/logger.js +0 -21
- package/dist/plugins/redis.d.ts +0 -10
- package/dist/plugins/redis.js +0 -40
- package/dist/plugins/tool.d.ts +0 -75
- package/dist/plugins/tool.js +0 -105
- package/dist/router/api.d.ts +0 -14
- package/dist/router/api.js +0 -109
- package/dist/router/static.d.ts +0 -9
- package/dist/router/static.js +0 -56
- package/dist/scripts/ensureDist.d.ts +0 -1
- package/dist/scripts/ensureDist.js +0 -296
- package/dist/sync/syncApi.d.ts +0 -3
- package/dist/sync/syncApi.js +0 -140
- package/dist/sync/syncCache.d.ts +0 -2
- package/dist/sync/syncCache.js +0 -14
- package/dist/sync/syncDev.d.ts +0 -6
- package/dist/sync/syncDev.js +0 -166
- package/dist/sync/syncMenu.d.ts +0 -14
- package/dist/sync/syncMenu.js +0 -308
- package/dist/sync/syncTable.d.ts +0 -126
- package/dist/sync/syncTable.js +0 -1129
- package/dist/types/api.d.ts +0 -175
- package/dist/types/api.js +0 -4
- package/dist/types/befly.d.ts +0 -231
- package/dist/types/befly.js +0 -4
- package/dist/types/cache.d.ts +0 -96
- package/dist/types/cache.js +0 -4
- package/dist/types/cipher.d.ts +0 -27
- package/dist/types/cipher.js +0 -7
- package/dist/types/common.d.ts +0 -127
- package/dist/types/common.js +0 -5
- package/dist/types/context.d.ts +0 -39
- package/dist/types/context.js +0 -4
- package/dist/types/coreError.d.ts +0 -31
- package/dist/types/coreError.js +0 -38
- package/dist/types/crypto.d.ts +0 -20
- package/dist/types/crypto.js +0 -4
- package/dist/types/database.d.ts +0 -182
- package/dist/types/database.js +0 -4
- package/dist/types/hook.d.ts +0 -30
- package/dist/types/hook.js +0 -19
- package/dist/types/jwt.d.ts +0 -76
- package/dist/types/jwt.js +0 -4
- package/dist/types/logger.d.ts +0 -95
- package/dist/types/logger.js +0 -6
- package/dist/types/plugin.d.ts +0 -27
- package/dist/types/plugin.js +0 -17
- package/dist/types/redis.d.ts +0 -80
- package/dist/types/redis.js +0 -4
- package/dist/types/roleApisCache.d.ts +0 -21
- package/dist/types/roleApisCache.js +0 -8
- package/dist/types/sync.d.ts +0 -93
- package/dist/types/sync.js +0 -4
- package/dist/types/table.d.ts +0 -34
- package/dist/types/table.js +0 -4
- package/dist/types/validate.d.ts +0 -113
- package/dist/types/validate.js +0 -4
- package/dist/utils/calcPerfTime.d.ts +0 -4
- package/dist/utils/calcPerfTime.js +0 -13
- package/dist/utils/cors.d.ts +0 -8
- package/dist/utils/cors.js +0 -17
- package/dist/utils/dbFieldRules.d.ts +0 -31
- package/dist/utils/dbFieldRules.js +0 -94
- package/dist/utils/fieldClear.d.ts +0 -11
- package/dist/utils/fieldClear.js +0 -57
- package/dist/utils/formatYmdHms.d.ts +0 -1
- package/dist/utils/formatYmdHms.js +0 -20
- package/dist/utils/getClientIp.d.ts +0 -6
- package/dist/utils/getClientIp.js +0 -39
- package/dist/utils/importDefault.d.ts +0 -1
- package/dist/utils/importDefault.js +0 -53
- package/dist/utils/isDirentDirectory.d.ts +0 -3
- package/dist/utils/isDirentDirectory.js +0 -18
- package/dist/utils/loadMenuConfigs.d.ts +0 -11
- package/dist/utils/loadMenuConfigs.js +0 -130
- package/dist/utils/loggerUtils.d.ts +0 -18
- package/dist/utils/loggerUtils.js +0 -171
- package/dist/utils/mergeAndConcat.d.ts +0 -7
- package/dist/utils/mergeAndConcat.js +0 -77
- package/dist/utils/normalizeFieldDefinition.d.ts +0 -18
- package/dist/utils/normalizeFieldDefinition.js +0 -27
- package/dist/utils/processInfo.d.ts +0 -26
- package/dist/utils/processInfo.js +0 -41
- package/dist/utils/response.d.ts +0 -20
- package/dist/utils/response.js +0 -96
- package/dist/utils/scanAddons.d.ts +0 -15
- package/dist/utils/scanAddons.js +0 -35
- package/dist/utils/scanCoreBuiltins.d.ts +0 -3
- package/dist/utils/scanCoreBuiltins.js +0 -72
- package/dist/utils/scanFiles.d.ts +0 -32
- package/dist/utils/scanFiles.js +0 -124
- package/dist/utils/scanSources.d.ts +0 -10
- package/dist/utils/scanSources.js +0 -46
- package/dist/utils/sortModules.d.ts +0 -28
- package/dist/utils/sortModules.js +0 -105
- package/dist/utils/sqlUtil.d.ts +0 -33
- package/dist/utils/sqlUtil.js +0 -146
- package/dist/utils/util.d.ts +0 -172
- package/dist/utils/util.js +0 -517
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "befly",
|
|
3
|
-
"version": "3.16.
|
|
4
|
-
"gitHead": "
|
|
3
|
+
"version": "3.16.11",
|
|
4
|
+
"gitHead": "3f389979b8d565fe0476e0859df5a2c94627137c",
|
|
5
5
|
"private": false,
|
|
6
|
-
"description": "Befly - 为 Bun 专属打造的
|
|
6
|
+
"description": "Befly - 为 Bun 专属打造的 JavaScript API 接口框架核心引擎",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"api",
|
|
9
9
|
"backend",
|
|
@@ -13,34 +13,23 @@
|
|
|
13
13
|
"http",
|
|
14
14
|
"javascript",
|
|
15
15
|
"rest",
|
|
16
|
-
"type-safe"
|
|
17
|
-
"typescript"
|
|
16
|
+
"type-safe"
|
|
18
17
|
],
|
|
19
18
|
"homepage": "https://chensuiyi.me",
|
|
20
19
|
"license": "Apache-2.0",
|
|
21
20
|
"author": "chensuiyi <bimostyle@qq.com>",
|
|
21
|
+
"main": "./befly.js",
|
|
22
22
|
"files": [
|
|
23
23
|
"LICENSE",
|
|
24
24
|
"README.md",
|
|
25
|
-
"
|
|
25
|
+
"befly.js",
|
|
26
|
+
"befly.min.js"
|
|
26
27
|
],
|
|
27
28
|
"type": "module",
|
|
28
|
-
"types": "./dist/index.d.ts",
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|
|
31
|
-
"import": "./
|
|
32
|
-
"default": "./
|
|
33
|
-
},
|
|
34
|
-
"./all": {
|
|
35
|
-
"import": "./dist/befly.js",
|
|
36
|
-
"default": "./dist/befly.js"
|
|
37
|
-
},
|
|
38
|
-
"./min": {
|
|
39
|
-
"import": "./dist/befly.min.js",
|
|
40
|
-
"default": "./dist/befly.min.js"
|
|
41
|
-
},
|
|
42
|
-
"./types/*": {
|
|
43
|
-
"types": "./dist/types/*.d.ts"
|
|
31
|
+
"import": "./index.js",
|
|
32
|
+
"default": "./index.js"
|
|
44
33
|
}
|
|
45
34
|
},
|
|
46
35
|
"publishConfig": {
|
|
@@ -48,18 +37,18 @@
|
|
|
48
37
|
"registry": "https://registry.npmjs.org"
|
|
49
38
|
},
|
|
50
39
|
"scripts": {
|
|
51
|
-
"clean": "rimraf dist",
|
|
40
|
+
"clean": "rimraf befly.js befly.min.js dist",
|
|
52
41
|
"test": "bun test",
|
|
53
|
-
"bundle": "bun build ./index.
|
|
54
|
-
"bundle:min": "bun build ./index.
|
|
55
|
-
"build": "rimraf
|
|
56
|
-
"prepack": "bun run build && bun run ./scripts/ensureDist.ts",
|
|
57
|
-
"typecheck": "bunx tsgo -p tsconfig.json --noEmit"
|
|
42
|
+
"bundle": "bun build ./index.js --outfile ./befly.js --target bun --format esm --packages bundle",
|
|
43
|
+
"bundle:min": "bun build ./index.js --outfile ./befly.min.js --target bun --format esm --packages bundle --minify",
|
|
44
|
+
"build": "rimraf befly.js befly.min.js && bun run bundle && bun run bundle:min"
|
|
58
45
|
},
|
|
59
46
|
"dependencies": {
|
|
60
|
-
"fast-
|
|
61
|
-
"
|
|
62
|
-
"pathe": "^2.0.3"
|
|
47
|
+
"fast-xml-parser": "^5.3.6",
|
|
48
|
+
"nodemailer": "^8.0.1",
|
|
49
|
+
"pathe": "^2.0.3",
|
|
50
|
+
"ua-parser-js": "^2.0.9",
|
|
51
|
+
"zod": "^4.0.0"
|
|
63
52
|
},
|
|
64
53
|
"engines": {
|
|
65
54
|
"bun": ">=1.3.0"
|
package/dist/befly.config.d.ts
DELETED
package/dist/befly.config.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { CoreError } from "./types/coreError";
|
|
3
|
-
import { importDefault } from "./utils/importDefault";
|
|
4
|
-
import { mergeAndConcat } from "./utils/mergeAndConcat";
|
|
5
|
-
/** 默认配置 */
|
|
6
|
-
const defaultOptions = {
|
|
7
|
-
// ========== 核心参数 ==========
|
|
8
|
-
nodeEnv: "development",
|
|
9
|
-
appName: "野蜂飞舞",
|
|
10
|
-
appPort: 3000,
|
|
11
|
-
appHost: "127.0.0.1",
|
|
12
|
-
devEmail: "dev@qq.com",
|
|
13
|
-
devPassword: "beflydev123456",
|
|
14
|
-
bodyLimit: 1048576, // 1MB
|
|
15
|
-
tz: "Asia/Shanghai",
|
|
16
|
-
strict: true,
|
|
17
|
-
// ========== 日志配置 ==========
|
|
18
|
-
logger: {
|
|
19
|
-
debug: 1,
|
|
20
|
-
excludeFields: ["password", "token", "secret"],
|
|
21
|
-
dir: "./logs",
|
|
22
|
-
console: 1,
|
|
23
|
-
maxSize: 20, // 20MB
|
|
24
|
-
maxStringLen: 100,
|
|
25
|
-
maxArrayItems: 100
|
|
26
|
-
},
|
|
27
|
-
// ========== 数据库配置 ==========
|
|
28
|
-
db: {
|
|
29
|
-
idMode: "timeId",
|
|
30
|
-
host: "127.0.0.1",
|
|
31
|
-
port: 3306,
|
|
32
|
-
username: "root",
|
|
33
|
-
password: "root",
|
|
34
|
-
database: "befly_demo",
|
|
35
|
-
poolMax: 10
|
|
36
|
-
},
|
|
37
|
-
// ========== Redis 配置 ==========
|
|
38
|
-
redis: {
|
|
39
|
-
host: "127.0.0.1",
|
|
40
|
-
port: 6379,
|
|
41
|
-
username: "",
|
|
42
|
-
password: "",
|
|
43
|
-
db: 0,
|
|
44
|
-
prefix: "befly_demo"
|
|
45
|
-
},
|
|
46
|
-
// ========== 认证配置 ==========
|
|
47
|
-
auth: {
|
|
48
|
-
secret: "befly-secret",
|
|
49
|
-
expiresIn: "7d",
|
|
50
|
-
algorithm: "HS256"
|
|
51
|
-
},
|
|
52
|
-
// ========== CORS 配置 ==========
|
|
53
|
-
cors: {
|
|
54
|
-
origin: "*",
|
|
55
|
-
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
|
|
56
|
-
allowedHeaders: "Content-Type,Authorization",
|
|
57
|
-
exposedHeaders: "",
|
|
58
|
-
maxAge: 86400,
|
|
59
|
-
credentials: "true"
|
|
60
|
-
},
|
|
61
|
-
// ========== Hook:全局限流 ==========
|
|
62
|
-
rateLimit: {
|
|
63
|
-
enable: 1,
|
|
64
|
-
// 默认兜底规则:所有接口按 IP 限流(如需更细粒度请配置 rules)
|
|
65
|
-
defaultLimit: 1000,
|
|
66
|
-
defaultWindow: 60,
|
|
67
|
-
key: "ip",
|
|
68
|
-
skipRoutes: [],
|
|
69
|
-
rules: []
|
|
70
|
-
},
|
|
71
|
-
// ========== 菜单禁用配置 ==========
|
|
72
|
-
disableMenus: ["**/404", "**/403", "**/500", "/addon/admin/login"],
|
|
73
|
-
// ========== Addon 配置 ==========
|
|
74
|
-
addons: {}
|
|
75
|
-
};
|
|
76
|
-
export async function loadBeflyConfig(nodeEnv) {
|
|
77
|
-
if (nodeEnv !== "development" && nodeEnv !== "production") {
|
|
78
|
-
throw new CoreError({
|
|
79
|
-
message: `配置错误:NODE_ENV 只能是 'development' 或 'production',当前值=${String(nodeEnv)}`,
|
|
80
|
-
kind: "validation",
|
|
81
|
-
noLog: true,
|
|
82
|
-
meta: { subsystem: "config", operation: "loadBeflyConfig" }
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
// 使用 importDefault 加载 configs 目录下的配置文件。2222
|
|
86
|
-
// 合并顺序:defaultOptions ← befly.common.json ← befly.development/production.json
|
|
87
|
-
const configsDir = join(process.cwd(), "configs");
|
|
88
|
-
const commonConfig = await importDefault(join(configsDir, "befly.common.json"), {});
|
|
89
|
-
const envConfig = await importDefault(join(configsDir, `befly.${nodeEnv}.json`), {});
|
|
90
|
-
const config = mergeAndConcat(defaultOptions, commonConfig, envConfig);
|
|
91
|
-
// 重要:nodeEnv 的来源只从 Befly.start(env) 的入参 env.NODE_ENV 传入,避免 process.env 在 bundle 阶段被常量折叠。
|
|
92
|
-
// 同时确保运行时行为(例如 Bun.serve development 标记)与实际选择的配置文件一致。
|
|
93
|
-
config.nodeEnv = nodeEnv;
|
|
94
|
-
// 配置校验:redis.prefix 作为 key 前缀,由 RedisHelper 统一拼接 ":"。
|
|
95
|
-
// 因此 prefix 本身不允许包含 ":",否则会导致 key 结构出现空段或多段分隔(例如 "prefix::key"),
|
|
96
|
-
// 在 RedisInsight 等工具里可能显示 [NO NAME] 空分组,且容易造成 key 管理混乱。
|
|
97
|
-
const redisPrefix = config.redis?.prefix;
|
|
98
|
-
if (typeof redisPrefix === "string") {
|
|
99
|
-
const trimmedPrefix = redisPrefix.trim();
|
|
100
|
-
if (trimmedPrefix.includes(":")) {
|
|
101
|
-
throw new CoreError({
|
|
102
|
-
message: `配置错误:redis.prefix 不允许包含 ':'(RedisHelper 会自动拼接分隔符 ':'),请改为不带冒号的前缀,例如 'befly_demo',当前值=${redisPrefix}`,
|
|
103
|
-
kind: "validation",
|
|
104
|
-
noLog: true,
|
|
105
|
-
meta: { subsystem: "config", operation: "loadBeflyConfig" }
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
const idMode = config.db?.idMode;
|
|
110
|
-
if (idMode !== undefined && idMode !== "timeId" && idMode !== "autoId") {
|
|
111
|
-
throw new CoreError({
|
|
112
|
-
message: `配置错误:db.idMode 只能是 'timeId' 或 'autoId',当前值=${String(idMode)}`,
|
|
113
|
-
kind: "validation",
|
|
114
|
-
noLog: true,
|
|
115
|
-
meta: { subsystem: "config", operation: "loadBeflyConfig" }
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
const strict = config.strict;
|
|
119
|
-
if (strict !== undefined && typeof strict !== "boolean") {
|
|
120
|
-
throw new CoreError({
|
|
121
|
-
message: `配置错误:strict 必须为 boolean,当前值=${String(strict)}`,
|
|
122
|
-
kind: "validation",
|
|
123
|
-
noLog: true,
|
|
124
|
-
meta: { subsystem: "config", operation: "loadBeflyConfig" }
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
return config;
|
|
128
|
-
}
|