befly 3.10.18 → 3.11.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.
Files changed (223) hide show
  1. package/README.md +83 -307
  2. package/dist/befly.config.d.ts +7 -0
  3. package/{befly.config.ts → dist/befly.config.js} +11 -36
  4. package/dist/befly.js +15621 -0
  5. package/dist/befly.min.js +21 -0
  6. package/dist/checks/checkApi.d.ts +1 -0
  7. package/{checks/checkApi.ts → dist/checks/checkApi.js} +12 -30
  8. package/dist/checks/checkHook.d.ts +1 -0
  9. package/dist/checks/checkHook.js +86 -0
  10. package/dist/checks/checkMenu.d.ts +7 -0
  11. package/{checks/checkMenu.ts → dist/checks/checkMenu.js} +18 -53
  12. package/dist/checks/checkPlugin.d.ts +1 -0
  13. package/dist/checks/checkPlugin.js +86 -0
  14. package/dist/checks/checkTable.d.ts +6 -0
  15. package/{checks/checkTable.ts → dist/checks/checkTable.js} +17 -41
  16. package/dist/configs/presetFields.d.ts +4 -0
  17. package/{configs/presetFields.ts → dist/configs/presetFields.js} +1 -1
  18. package/dist/configs/presetRegexp.d.ts +145 -0
  19. package/{utils/regex.ts → dist/configs/presetRegexp.js} +8 -31
  20. package/dist/hooks/auth.d.ts +7 -0
  21. package/{hooks/auth.ts → dist/hooks/auth.js} +8 -10
  22. package/dist/hooks/cors.d.ts +11 -0
  23. package/{hooks/cors.ts → dist/hooks/cors.js} +5 -13
  24. package/dist/hooks/parser.d.ts +14 -0
  25. package/{hooks/parser.ts → dist/hooks/parser.js} +31 -45
  26. package/dist/hooks/permission.d.ts +14 -0
  27. package/{hooks/permission.ts → dist/hooks/permission.js} +16 -25
  28. package/dist/hooks/validator.d.ts +11 -0
  29. package/{hooks/validator.ts → dist/hooks/validator.js} +9 -14
  30. package/dist/index.d.ts +26 -0
  31. package/{main.ts → dist/index.js} +61 -100
  32. package/dist/lib/asyncContext.d.ts +21 -0
  33. package/dist/lib/asyncContext.js +27 -0
  34. package/dist/lib/cacheHelper.d.ts +95 -0
  35. package/{lib/cacheHelper.ts → dist/lib/cacheHelper.js} +45 -105
  36. package/dist/lib/cacheKeys.d.ts +23 -0
  37. package/{lib/cacheKeys.ts → dist/lib/cacheKeys.js} +5 -10
  38. package/dist/lib/cipher.d.ts +153 -0
  39. package/{lib/cipher.ts → dist/lib/cipher.js} +23 -44
  40. package/dist/lib/connect.d.ts +91 -0
  41. package/{lib/connect.ts → dist/lib/connect.js} +47 -88
  42. package/dist/lib/dbDialect.d.ts +87 -0
  43. package/{lib/dbDialect.ts → dist/lib/dbDialect.js} +32 -112
  44. package/dist/lib/dbHelper.d.ts +204 -0
  45. package/{lib/dbHelper.ts → dist/lib/dbHelper.js} +82 -241
  46. package/dist/lib/dbUtils.d.ts +68 -0
  47. package/{lib/dbUtils.ts → dist/lib/dbUtils.js} +51 -126
  48. package/dist/lib/jwt.d.ts +13 -0
  49. package/{lib/jwt.ts → dist/lib/jwt.js} +11 -32
  50. package/dist/lib/logger.d.ts +42 -0
  51. package/dist/lib/logger.js +1144 -0
  52. package/dist/lib/redisHelper.d.ts +185 -0
  53. package/{lib/redisHelper.ts → dist/lib/redisHelper.js} +97 -141
  54. package/dist/lib/sqlBuilder.d.ts +160 -0
  55. package/{lib/sqlBuilder.ts → dist/lib/sqlBuilder.js} +132 -278
  56. package/dist/lib/sqlCheck.d.ts +23 -0
  57. package/{lib/sqlCheck.ts → dist/lib/sqlCheck.js} +24 -41
  58. package/dist/lib/validator.d.ts +45 -0
  59. package/{lib/validator.ts → dist/lib/validator.js} +44 -61
  60. package/dist/loader/loadApis.d.ts +12 -0
  61. package/{loader/loadApis.ts → dist/loader/loadApis.js} +10 -20
  62. package/dist/loader/loadHooks.d.ts +7 -0
  63. package/dist/loader/loadHooks.js +35 -0
  64. package/dist/loader/loadPlugins.d.ts +8 -0
  65. package/{loader/loadPlugins.ts → dist/loader/loadPlugins.js} +14 -26
  66. package/dist/paths.d.ts +93 -0
  67. package/{paths.ts → dist/paths.js} +6 -19
  68. package/dist/plugins/cache.d.ts +16 -0
  69. package/{plugins/cache.ts → dist/plugins/cache.js} +7 -12
  70. package/dist/plugins/cipher.d.ts +12 -0
  71. package/{plugins/cipher.ts → dist/plugins/cipher.js} +4 -6
  72. package/dist/plugins/config.d.ts +12 -0
  73. package/dist/plugins/config.js +8 -0
  74. package/dist/plugins/db.d.ts +16 -0
  75. package/{plugins/db.ts → dist/plugins/db.js} +11 -17
  76. package/dist/plugins/jwt.d.ts +12 -0
  77. package/dist/plugins/jwt.js +12 -0
  78. package/dist/plugins/logger.d.ts +32 -0
  79. package/{plugins/logger.ts → dist/plugins/logger.js} +5 -8
  80. package/dist/plugins/redis.d.ts +16 -0
  81. package/{plugins/redis.ts → dist/plugins/redis.js} +9 -12
  82. package/dist/plugins/tool.d.ts +81 -0
  83. package/{plugins/tool.ts → dist/plugins/tool.js} +9 -30
  84. package/dist/router/api.d.ts +14 -0
  85. package/dist/router/api.js +107 -0
  86. package/dist/router/static.d.ts +9 -0
  87. package/{router/static.ts → dist/router/static.js} +20 -34
  88. package/dist/scripts/ensureDist.d.ts +1 -0
  89. package/dist/scripts/ensureDist.js +296 -0
  90. package/dist/sync/syncApi.d.ts +3 -0
  91. package/{sync/syncApi.ts → dist/sync/syncApi.js} +35 -55
  92. package/dist/sync/syncCache.d.ts +2 -0
  93. package/{sync/syncCache.ts → dist/sync/syncCache.js} +1 -6
  94. package/dist/sync/syncDev.d.ts +6 -0
  95. package/{sync/syncDev.ts → dist/sync/syncDev.js} +29 -62
  96. package/dist/sync/syncMenu.d.ts +14 -0
  97. package/{sync/syncMenu.ts → dist/sync/syncMenu.js} +65 -125
  98. package/dist/sync/syncTable.d.ts +151 -0
  99. package/{sync/syncTable.ts → dist/sync/syncTable.js} +172 -379
  100. package/{types → dist/types}/api.d.ts +12 -51
  101. package/dist/types/api.js +4 -0
  102. package/{types → dist/types}/befly.d.ts +32 -227
  103. package/dist/types/befly.js +4 -0
  104. package/{types → dist/types}/cache.d.ts +7 -15
  105. package/dist/types/cache.js +4 -0
  106. package/dist/types/cipher.d.ts +27 -0
  107. package/dist/types/cipher.js +7 -0
  108. package/{types → dist/types}/common.d.ts +8 -33
  109. package/dist/types/common.js +5 -0
  110. package/{types → dist/types}/context.d.ts +3 -5
  111. package/dist/types/context.js +4 -0
  112. package/{types → dist/types}/crypto.d.ts +0 -3
  113. package/dist/types/crypto.js +4 -0
  114. package/dist/types/database.d.ts +138 -0
  115. package/dist/types/database.js +4 -0
  116. package/dist/types/hook.d.ts +17 -0
  117. package/dist/types/hook.js +6 -0
  118. package/dist/types/jwt.d.ts +75 -0
  119. package/dist/types/jwt.js +4 -0
  120. package/dist/types/logger.d.ts +59 -0
  121. package/dist/types/logger.js +6 -0
  122. package/dist/types/plugin.d.ts +16 -0
  123. package/dist/types/plugin.js +6 -0
  124. package/dist/types/redis.d.ts +71 -0
  125. package/dist/types/redis.js +4 -0
  126. package/{types/roleApisCache.ts → dist/types/roleApisCache.d.ts} +0 -2
  127. package/dist/types/roleApisCache.js +8 -0
  128. package/dist/types/sync.d.ts +92 -0
  129. package/dist/types/sync.js +4 -0
  130. package/dist/types/table.d.ts +34 -0
  131. package/dist/types/table.js +4 -0
  132. package/dist/types/validate.d.ts +67 -0
  133. package/dist/types/validate.js +4 -0
  134. package/dist/utils/calcPerfTime.d.ts +4 -0
  135. package/{utils/calcPerfTime.ts → dist/utils/calcPerfTime.js} +3 -3
  136. package/dist/utils/convertBigIntFields.d.ts +11 -0
  137. package/{utils/convertBigIntFields.ts → dist/utils/convertBigIntFields.js} +5 -9
  138. package/dist/utils/cors.d.ts +8 -0
  139. package/{utils/cors.ts → dist/utils/cors.js} +1 -3
  140. package/dist/utils/disableMenusGlob.d.ts +13 -0
  141. package/{utils/disableMenusGlob.ts → dist/utils/disableMenusGlob.js} +9 -29
  142. package/dist/utils/fieldClear.d.ts +11 -0
  143. package/{utils/fieldClear.ts → dist/utils/fieldClear.js} +15 -33
  144. package/dist/utils/getClientIp.d.ts +6 -0
  145. package/{utils/getClientIp.ts → dist/utils/getClientIp.js} +1 -7
  146. package/dist/utils/importDefault.d.ts +1 -0
  147. package/dist/utils/importDefault.js +29 -0
  148. package/dist/utils/isDirentDirectory.d.ts +2 -0
  149. package/{utils/isDirentDirectory.ts → dist/utils/isDirentDirectory.js} +3 -8
  150. package/dist/utils/loadMenuConfigs.d.ts +29 -0
  151. package/{utils/loadMenuConfigs.ts → dist/utils/loadMenuConfigs.js} +66 -52
  152. package/dist/utils/mergeAndConcat.d.ts +7 -0
  153. package/dist/utils/mergeAndConcat.js +72 -0
  154. package/dist/utils/processAtSymbol.d.ts +4 -0
  155. package/{utils/processFields.ts → dist/utils/processAtSymbol.js} +5 -9
  156. package/dist/utils/processInfo.d.ts +24 -0
  157. package/{utils/process.ts → dist/utils/processInfo.js} +2 -18
  158. package/dist/utils/response.d.ts +20 -0
  159. package/{utils/response.ts → dist/utils/response.js} +28 -49
  160. package/dist/utils/scanAddons.d.ts +17 -0
  161. package/{utils/scanAddons.ts → dist/utils/scanAddons.js} +7 -41
  162. package/dist/utils/scanConfig.d.ts +26 -0
  163. package/{utils/scanConfig.ts → dist/utils/scanConfig.js} +28 -66
  164. package/dist/utils/scanCoreBuiltins.d.ts +3 -0
  165. package/dist/utils/scanCoreBuiltins.js +65 -0
  166. package/dist/utils/scanFiles.d.ts +30 -0
  167. package/{utils/scanFiles.ts → dist/utils/scanFiles.js} +44 -71
  168. package/dist/utils/scanSources.d.ts +10 -0
  169. package/dist/utils/scanSources.js +46 -0
  170. package/dist/utils/sortModules.d.ts +28 -0
  171. package/{utils/sortModules.ts → dist/utils/sortModules.js} +26 -66
  172. package/dist/utils/util.d.ts +84 -0
  173. package/dist/utils/util.js +262 -0
  174. package/package.json +26 -34
  175. package/.gitignore +0 -0
  176. package/bunfig.toml +0 -3
  177. package/checks/checkHook.ts +0 -48
  178. package/checks/checkPlugin.ts +0 -48
  179. package/configs/presetRegexp.ts +0 -225
  180. package/docs/README.md +0 -98
  181. package/docs/api/api.md +0 -1921
  182. package/docs/guide/examples.md +0 -926
  183. package/docs/guide/quickstart.md +0 -354
  184. package/docs/hooks/auth.md +0 -38
  185. package/docs/hooks/cors.md +0 -28
  186. package/docs/hooks/hook.md +0 -838
  187. package/docs/hooks/parser.md +0 -19
  188. package/docs/hooks/rateLimit.md +0 -47
  189. package/docs/infra/redis.md +0 -628
  190. package/docs/plugins/cipher.md +0 -61
  191. package/docs/plugins/database.md +0 -189
  192. package/docs/plugins/plugin.md +0 -986
  193. package/docs/reference/addon.md +0 -510
  194. package/docs/reference/config.md +0 -573
  195. package/docs/reference/logger.md +0 -495
  196. package/docs/reference/sync.md +0 -478
  197. package/docs/reference/table.md +0 -763
  198. package/docs/reference/validator.md +0 -620
  199. package/lib/asyncContext.ts +0 -43
  200. package/lib/logger.ts +0 -811
  201. package/loader/loadHooks.ts +0 -51
  202. package/plugins/config.ts +0 -13
  203. package/plugins/jwt.ts +0 -15
  204. package/router/api.ts +0 -130
  205. package/tsconfig.json +0 -8
  206. package/types/database.d.ts +0 -541
  207. package/types/hook.d.ts +0 -25
  208. package/types/jwt.d.ts +0 -118
  209. package/types/logger.d.ts +0 -65
  210. package/types/plugin.d.ts +0 -19
  211. package/types/redis.d.ts +0 -83
  212. package/types/sync.d.ts +0 -398
  213. package/types/table.d.ts +0 -216
  214. package/types/validate.d.ts +0 -69
  215. package/utils/arrayKeysToCamel.ts +0 -18
  216. package/utils/configTypes.ts +0 -3
  217. package/utils/genShortId.ts +0 -12
  218. package/utils/importDefault.ts +0 -21
  219. package/utils/keysToCamel.ts +0 -22
  220. package/utils/keysToSnake.ts +0 -22
  221. package/utils/pickFields.ts +0 -19
  222. package/utils/scanSources.ts +0 -64
  223. package/utils/sqlLog.ts +0 -37
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Redis 助手 - TypeScript 版本
3
+ * 提供 Redis 操作的便捷方法
4
+ */
5
+ /**
6
+ * Redis 助手类
7
+ * 约定:除构造函数外,方法默认不抛异常;失败时返回 null/false/0/[] 并记录日志。
8
+ */
9
+ export declare class RedisHelper {
10
+ private client;
11
+ private prefix;
12
+ private readonly slowThresholdMs;
13
+ /**
14
+ * 构造函数
15
+ * @param prefix - Key 前缀
16
+ */
17
+ constructor(prefix?: string);
18
+ private logSlow;
19
+ /**
20
+ * 设置对象到 Redis
21
+ * @param key - 键名
22
+ * @param obj - 对象
23
+ * @param ttl - 过期时间(秒)
24
+ * @returns 操作结果
25
+ */
26
+ setObject<T = any>(key: string, obj: T, ttl?: number | null): Promise<string | null>;
27
+ /**
28
+ * 从 Redis 获取对象
29
+ * @param key - 键名
30
+ * @returns 对象或 null
31
+ */
32
+ getObject<T = any>(key: string): Promise<T | null>;
33
+ /**
34
+ * 从 Redis 删除对象
35
+ * @param key - 键名
36
+ */
37
+ delObject(key: string): Promise<void>;
38
+ /**
39
+ * 生成基于时间的唯一 ID
40
+ * 格式: 毫秒时间戳(13位) + 3位后缀(100-999) = 16位纯数字
41
+ * 每毫秒起点基于时间戳偏移,后缀分布更均匀
42
+ * @returns 唯一 ID (16位纯数字)
43
+ */
44
+ genTimeID(): Promise<number>;
45
+ /**
46
+ * 设置字符串值
47
+ * @param key - 键名
48
+ * @param value - 值
49
+ * @param ttl - 过期时间(秒)
50
+ */
51
+ setString(key: string, value: string, ttl?: number | null): Promise<string | null>;
52
+ /**
53
+ * 获取字符串值
54
+ * @param key - 键名
55
+ */
56
+ getString(key: string): Promise<string | null>;
57
+ /**
58
+ * 检查键是否存在
59
+ * @param key - 键名
60
+ * @returns 是否存在(true/false)
61
+ */
62
+ exists(key: string): Promise<boolean>;
63
+ /**
64
+ * 原子自增
65
+ * @param key - 键名
66
+ * @returns 自增后的值
67
+ */
68
+ incr(key: string): Promise<number>;
69
+ /**
70
+ * 原子自增并在首次自增时设置过期时间(常用于限流/计数)
71
+ * @param key - 键名
72
+ * @param seconds - 过期秒数
73
+ * @returns 自增后的值
74
+ */
75
+ incrWithExpire(key: string, seconds: number): Promise<number>;
76
+ /**
77
+ * 设置过期时间
78
+ * @param key - 键名
79
+ * @param seconds - 秒数
80
+ */
81
+ expire(key: string, seconds: number): Promise<number>;
82
+ /**
83
+ * 获取剩余过期时间
84
+ * @param key - 键名
85
+ */
86
+ ttl(key: string): Promise<number>;
87
+ /**
88
+ * 批量获取剩余过期时间(利用 Bun Redis 自动管道优化)
89
+ * @param keys - 键名数组
90
+ * @returns TTL 数组(-2 表示键不存在,-1 表示无过期时间)
91
+ */
92
+ ttlBatch(keys: string[]): Promise<number[]>;
93
+ /**
94
+ * 向 Set 中添加一个或多个成员
95
+ * @param key - 键名
96
+ * @param members - 成员数组
97
+ * @returns 成功添加的成员数量
98
+ */
99
+ sadd(key: string, members: string[]): Promise<number>;
100
+ /**
101
+ * 判断成员是否在 Set 中
102
+ * @param key - 键名
103
+ * @param member - 成员
104
+ * @returns 是否存在(true/false)
105
+ */
106
+ sismember(key: string, member: string): Promise<boolean>;
107
+ /**
108
+ * 获取 Set 的成员数量
109
+ * @param key - 键名
110
+ * @returns 成员数量
111
+ */
112
+ scard(key: string): Promise<number>;
113
+ /**
114
+ * 获取 Set 的所有成员
115
+ * @param key - 键名
116
+ * @returns 成员数组
117
+ */
118
+ smembers(key: string): Promise<string[]>;
119
+ /**
120
+ * 批量向多个 Set 添加成员(利用 Bun Redis 自动管道优化)
121
+ * @param items - [{ key, members }] 数组
122
+ * @returns 成功添加的总成员数量
123
+ */
124
+ saddBatch(items: Array<{
125
+ key: string;
126
+ members: string[];
127
+ }>): Promise<number>;
128
+ /**
129
+ * 批量检查成员是否在 Set 中(利用 Bun Redis 自动管道优化)
130
+ * @param items - [{ key, member }] 数组
131
+ * @returns 布尔数组(true 表示存在,false 表示不存在)
132
+ */
133
+ sismemberBatch(items: Array<{
134
+ key: string;
135
+ member: string;
136
+ }>): Promise<boolean[]>;
137
+ /**
138
+ * 删除键
139
+ * @param key - 键名
140
+ * @returns 删除的键数量
141
+ */
142
+ del(key: string): Promise<number>;
143
+ /**
144
+ * 批量删除键(利用 Bun Redis 自动管道优化)
145
+ * @param keys - 键名数组
146
+ * @returns 成功删除的键数量
147
+ */
148
+ delBatch(keys: string[]): Promise<number>;
149
+ /**
150
+ * 批量设置对象(利用 Bun Redis 自动管道优化)
151
+ * @param items - 键值对数组 [{ key, value, ttl? }]
152
+ * @returns 成功设置的数量
153
+ */
154
+ setBatch<T = any>(items: Array<{
155
+ key: string;
156
+ value: T;
157
+ ttl?: number | null;
158
+ }>): Promise<number>;
159
+ /**
160
+ * 批量获取对象(利用 Bun Redis 自动管道优化)
161
+ * @param keys - 键名数组
162
+ * @returns 对象数组(不存在的键返回 null)
163
+ */
164
+ getBatch<T = any>(keys: string[]): Promise<Array<T | null>>;
165
+ /**
166
+ * 批量检查键是否存在(利用 Bun Redis 自动管道优化)
167
+ * @param keys - 键名数组
168
+ * @returns 布尔数组(true 表示存在,false 表示不存在)
169
+ */
170
+ existsBatch(keys: string[]): Promise<boolean[]>;
171
+ /**
172
+ * 批量设置过期时间(利用 Bun Redis 自动管道优化)
173
+ * @param items - 键名和过期时间数组 [{ key, seconds }]
174
+ * @returns 成功设置的数量
175
+ */
176
+ expireBatch(items: Array<{
177
+ key: string;
178
+ seconds: number;
179
+ }>): Promise<number>;
180
+ /**
181
+ * 测试 Redis 连接
182
+ * @returns ping 响应结果
183
+ */
184
+ ping(): Promise<string>;
185
+ }