befly 3.10.18 → 3.10.19

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 (220) 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} +10 -33
  4. package/dist/checks/checkApi.d.ts +1 -0
  5. package/{checks/checkApi.ts → dist/checks/checkApi.js} +11 -28
  6. package/dist/checks/checkHook.d.ts +1 -0
  7. package/{checks/checkHook.ts → dist/checks/checkHook.js} +11 -20
  8. package/dist/checks/checkMenu.d.ts +7 -0
  9. package/{checks/checkMenu.ts → dist/checks/checkMenu.js} +18 -53
  10. package/dist/checks/checkPlugin.d.ts +1 -0
  11. package/{checks/checkPlugin.ts → dist/checks/checkPlugin.js} +11 -20
  12. package/dist/checks/checkTable.d.ts +6 -0
  13. package/{checks/checkTable.ts → dist/checks/checkTable.js} +17 -41
  14. package/dist/configs/presetFields.d.ts +4 -0
  15. package/{configs/presetFields.ts → dist/configs/presetFields.js} +1 -1
  16. package/dist/configs/presetRegexp.d.ts +145 -0
  17. package/{utils/regex.ts → dist/configs/presetRegexp.js} +8 -31
  18. package/dist/hooks/auth.d.ts +5 -0
  19. package/{hooks/auth.ts → dist/hooks/auth.js} +6 -10
  20. package/dist/hooks/cors.d.ts +9 -0
  21. package/{hooks/cors.ts → dist/hooks/cors.js} +3 -13
  22. package/dist/hooks/parser.d.ts +12 -0
  23. package/{hooks/parser.ts → dist/hooks/parser.js} +29 -44
  24. package/dist/hooks/permission.d.ts +12 -0
  25. package/{hooks/permission.ts → dist/hooks/permission.js} +14 -25
  26. package/dist/hooks/validator.d.ts +9 -0
  27. package/{hooks/validator.ts → dist/hooks/validator.js} +7 -14
  28. package/dist/lib/asyncContext.d.ts +21 -0
  29. package/dist/lib/asyncContext.js +27 -0
  30. package/dist/lib/cacheHelper.d.ts +95 -0
  31. package/{lib/cacheHelper.ts → dist/lib/cacheHelper.js} +45 -105
  32. package/dist/lib/cacheKeys.d.ts +23 -0
  33. package/{lib/cacheKeys.ts → dist/lib/cacheKeys.js} +5 -10
  34. package/dist/lib/cipher.d.ts +153 -0
  35. package/{lib/cipher.ts → dist/lib/cipher.js} +23 -44
  36. package/dist/lib/connect.d.ts +91 -0
  37. package/{lib/connect.ts → dist/lib/connect.js} +47 -88
  38. package/dist/lib/dbDialect.d.ts +87 -0
  39. package/{lib/dbDialect.ts → dist/lib/dbDialect.js} +32 -112
  40. package/dist/lib/dbHelper.d.ts +204 -0
  41. package/{lib/dbHelper.ts → dist/lib/dbHelper.js} +83 -240
  42. package/dist/lib/dbUtils.d.ts +68 -0
  43. package/{lib/dbUtils.ts → dist/lib/dbUtils.js} +51 -125
  44. package/dist/lib/jwt.d.ts +13 -0
  45. package/{lib/jwt.ts → dist/lib/jwt.js} +11 -32
  46. package/dist/lib/logger.d.ts +32 -0
  47. package/{lib/logger.ts → dist/lib/logger.js} +202 -279
  48. package/dist/lib/redisHelper.d.ts +185 -0
  49. package/{lib/redisHelper.ts → dist/lib/redisHelper.js} +97 -141
  50. package/dist/lib/sqlBuilder.d.ts +160 -0
  51. package/{lib/sqlBuilder.ts → dist/lib/sqlBuilder.js} +132 -278
  52. package/dist/lib/sqlCheck.d.ts +23 -0
  53. package/{lib/sqlCheck.ts → dist/lib/sqlCheck.js} +24 -41
  54. package/dist/lib/validator.d.ts +45 -0
  55. package/{lib/validator.ts → dist/lib/validator.js} +44 -61
  56. package/dist/loader/loadApis.d.ts +12 -0
  57. package/{loader/loadApis.ts → dist/loader/loadApis.js} +9 -19
  58. package/dist/loader/loadHooks.d.ts +8 -0
  59. package/{loader/loadHooks.ts → dist/loader/loadHooks.js} +7 -21
  60. package/dist/loader/loadPlugins.d.ts +8 -0
  61. package/{loader/loadPlugins.ts → dist/loader/loadPlugins.js} +10 -22
  62. package/dist/main.d.ts +26 -0
  63. package/{main.ts → dist/main.js} +60 -99
  64. package/dist/paths.d.ts +93 -0
  65. package/{paths.ts → dist/paths.js} +6 -19
  66. package/dist/plugins/cache.d.ts +14 -0
  67. package/{plugins/cache.ts → dist/plugins/cache.js} +5 -12
  68. package/dist/plugins/cipher.d.ts +10 -0
  69. package/{plugins/cipher.ts → dist/plugins/cipher.js} +2 -6
  70. package/dist/plugins/config.d.ts +10 -0
  71. package/dist/plugins/config.js +6 -0
  72. package/dist/plugins/db.d.ts +14 -0
  73. package/{plugins/db.ts → dist/plugins/db.js} +9 -17
  74. package/dist/plugins/jwt.d.ts +10 -0
  75. package/dist/plugins/jwt.js +10 -0
  76. package/dist/plugins/logger.d.ts +28 -0
  77. package/{plugins/logger.ts → dist/plugins/logger.js} +3 -8
  78. package/dist/plugins/redis.d.ts +14 -0
  79. package/{plugins/redis.ts → dist/plugins/redis.js} +7 -12
  80. package/dist/plugins/tool.d.ts +79 -0
  81. package/{plugins/tool.ts → dist/plugins/tool.js} +7 -30
  82. package/dist/router/api.d.ts +14 -0
  83. package/dist/router/api.js +107 -0
  84. package/dist/router/static.d.ts +9 -0
  85. package/{router/static.ts → dist/router/static.js} +20 -34
  86. package/dist/scripts/ensureDist.d.ts +1 -0
  87. package/dist/scripts/ensureDist.js +80 -0
  88. package/dist/sync/syncApi.d.ts +3 -0
  89. package/{sync/syncApi.ts → dist/sync/syncApi.js} +34 -54
  90. package/dist/sync/syncCache.d.ts +2 -0
  91. package/{sync/syncCache.ts → dist/sync/syncCache.js} +1 -6
  92. package/dist/sync/syncDev.d.ts +6 -0
  93. package/{sync/syncDev.ts → dist/sync/syncDev.js} +29 -62
  94. package/dist/sync/syncMenu.d.ts +14 -0
  95. package/{sync/syncMenu.ts → dist/sync/syncMenu.js} +65 -125
  96. package/dist/sync/syncTable.d.ts +151 -0
  97. package/{sync/syncTable.ts → dist/sync/syncTable.js} +171 -378
  98. package/{types → dist/types}/api.d.ts +8 -47
  99. package/dist/types/api.js +4 -0
  100. package/{types → dist/types}/befly.d.ts +31 -222
  101. package/dist/types/befly.js +4 -0
  102. package/{types → dist/types}/cache.d.ts +7 -15
  103. package/dist/types/cache.js +4 -0
  104. package/dist/types/cipher.d.ts +27 -0
  105. package/dist/types/cipher.js +7 -0
  106. package/{types → dist/types}/common.d.ts +8 -33
  107. package/dist/types/common.js +5 -0
  108. package/{types → dist/types}/context.d.ts +2 -4
  109. package/dist/types/context.js +4 -0
  110. package/{types → dist/types}/crypto.d.ts +0 -3
  111. package/dist/types/crypto.js +4 -0
  112. package/dist/types/database.d.ts +138 -0
  113. package/dist/types/database.js +4 -0
  114. package/dist/types/hook.d.ts +15 -0
  115. package/dist/types/hook.js +6 -0
  116. package/dist/types/jwt.d.ts +75 -0
  117. package/dist/types/jwt.js +4 -0
  118. package/dist/types/logger.d.ts +47 -0
  119. package/dist/types/logger.js +6 -0
  120. package/dist/types/plugin.d.ts +14 -0
  121. package/dist/types/plugin.js +6 -0
  122. package/dist/types/redis.d.ts +71 -0
  123. package/dist/types/redis.js +4 -0
  124. package/{types/roleApisCache.ts → dist/types/roleApisCache.d.ts} +0 -2
  125. package/dist/types/roleApisCache.js +8 -0
  126. package/dist/types/sync.d.ts +92 -0
  127. package/dist/types/sync.js +4 -0
  128. package/dist/types/table.d.ts +34 -0
  129. package/dist/types/table.js +4 -0
  130. package/dist/types/validate.d.ts +67 -0
  131. package/dist/types/validate.js +4 -0
  132. package/dist/utils/arrayKeysToCamel.d.ts +13 -0
  133. package/{utils/arrayKeysToCamel.ts → dist/utils/arrayKeysToCamel.js} +5 -5
  134. package/dist/utils/calcPerfTime.d.ts +4 -0
  135. package/{utils/calcPerfTime.ts → dist/utils/calcPerfTime.js} +3 -3
  136. package/dist/utils/configTypes.d.ts +1 -0
  137. package/dist/utils/configTypes.js +1 -0
  138. package/dist/utils/convertBigIntFields.d.ts +11 -0
  139. package/{utils/convertBigIntFields.ts → dist/utils/convertBigIntFields.js} +5 -9
  140. package/dist/utils/cors.d.ts +8 -0
  141. package/{utils/cors.ts → dist/utils/cors.js} +1 -3
  142. package/dist/utils/disableMenusGlob.d.ts +13 -0
  143. package/{utils/disableMenusGlob.ts → dist/utils/disableMenusGlob.js} +9 -29
  144. package/dist/utils/fieldClear.d.ts +11 -0
  145. package/{utils/fieldClear.ts → dist/utils/fieldClear.js} +15 -33
  146. package/dist/utils/genShortId.d.ts +10 -0
  147. package/{utils/genShortId.ts → dist/utils/genShortId.js} +1 -1
  148. package/dist/utils/getClientIp.d.ts +6 -0
  149. package/{utils/getClientIp.ts → dist/utils/getClientIp.js} +1 -7
  150. package/dist/utils/importDefault.d.ts +1 -0
  151. package/dist/utils/importDefault.js +29 -0
  152. package/dist/utils/isDirentDirectory.d.ts +2 -0
  153. package/{utils/isDirentDirectory.ts → dist/utils/isDirentDirectory.js} +3 -8
  154. package/dist/utils/keysToCamel.d.ts +10 -0
  155. package/{utils/keysToCamel.ts → dist/utils/keysToCamel.js} +4 -5
  156. package/dist/utils/keysToSnake.d.ts +10 -0
  157. package/{utils/keysToSnake.ts → dist/utils/keysToSnake.js} +4 -5
  158. package/dist/utils/loadMenuConfigs.d.ts +5 -0
  159. package/{utils/loadMenuConfigs.ts → dist/utils/loadMenuConfigs.js} +24 -51
  160. package/dist/utils/pickFields.d.ts +4 -0
  161. package/{utils/pickFields.ts → dist/utils/pickFields.js} +2 -5
  162. package/dist/utils/process.d.ts +24 -0
  163. package/{utils/process.ts → dist/utils/process.js} +2 -18
  164. package/dist/utils/processFields.d.ts +4 -0
  165. package/{utils/processFields.ts → dist/utils/processFields.js} +5 -9
  166. package/dist/utils/regex.d.ts +145 -0
  167. package/{configs/presetRegexp.ts → dist/utils/regex.js} +8 -31
  168. package/dist/utils/response.d.ts +20 -0
  169. package/{utils/response.ts → dist/utils/response.js} +28 -49
  170. package/dist/utils/scanAddons.d.ts +17 -0
  171. package/{utils/scanAddons.ts → dist/utils/scanAddons.js} +6 -40
  172. package/dist/utils/scanConfig.d.ts +26 -0
  173. package/{utils/scanConfig.ts → dist/utils/scanConfig.js} +22 -59
  174. package/dist/utils/scanFiles.d.ts +30 -0
  175. package/{utils/scanFiles.ts → dist/utils/scanFiles.js} +26 -66
  176. package/dist/utils/scanSources.d.ts +10 -0
  177. package/dist/utils/scanSources.js +41 -0
  178. package/dist/utils/sortModules.d.ts +28 -0
  179. package/{utils/sortModules.ts → dist/utils/sortModules.js} +25 -65
  180. package/dist/utils/sqlLog.d.ts +14 -0
  181. package/{utils/sqlLog.ts → dist/utils/sqlLog.js} +2 -14
  182. package/package.json +14 -28
  183. package/.gitignore +0 -0
  184. package/bunfig.toml +0 -3
  185. package/docs/README.md +0 -98
  186. package/docs/api/api.md +0 -1921
  187. package/docs/guide/examples.md +0 -926
  188. package/docs/guide/quickstart.md +0 -354
  189. package/docs/hooks/auth.md +0 -38
  190. package/docs/hooks/cors.md +0 -28
  191. package/docs/hooks/hook.md +0 -838
  192. package/docs/hooks/parser.md +0 -19
  193. package/docs/hooks/rateLimit.md +0 -47
  194. package/docs/infra/redis.md +0 -628
  195. package/docs/plugins/cipher.md +0 -61
  196. package/docs/plugins/database.md +0 -189
  197. package/docs/plugins/plugin.md +0 -986
  198. package/docs/reference/addon.md +0 -510
  199. package/docs/reference/config.md +0 -573
  200. package/docs/reference/logger.md +0 -495
  201. package/docs/reference/sync.md +0 -478
  202. package/docs/reference/table.md +0 -763
  203. package/docs/reference/validator.md +0 -620
  204. package/lib/asyncContext.ts +0 -43
  205. package/plugins/config.ts +0 -13
  206. package/plugins/jwt.ts +0 -15
  207. package/router/api.ts +0 -130
  208. package/tsconfig.json +0 -8
  209. package/types/database.d.ts +0 -541
  210. package/types/hook.d.ts +0 -25
  211. package/types/jwt.d.ts +0 -118
  212. package/types/logger.d.ts +0 -65
  213. package/types/plugin.d.ts +0 -19
  214. package/types/redis.d.ts +0 -83
  215. package/types/sync.d.ts +0 -398
  216. package/types/table.d.ts +0 -216
  217. package/types/validate.d.ts +0 -69
  218. package/utils/configTypes.ts +0 -3
  219. package/utils/importDefault.ts +0 -21
  220. package/utils/scanSources.ts +0 -64
@@ -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
+ }