@pisell/core 0.0.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.
Files changed (296) hide show
  1. package/README.md +1 -0
  2. package/es/app/app.d.ts +101 -0
  3. package/es/app/app.js +177 -0
  4. package/es/app/const.d.ts +4 -0
  5. package/es/app/const.js +6 -0
  6. package/es/app/index.d.ts +14 -0
  7. package/es/app/index.js +52 -0
  8. package/es/applicationManager/application.d.ts +197 -0
  9. package/es/applicationManager/application.js +469 -0
  10. package/es/applicationManager/index.d.ts +19 -0
  11. package/es/applicationManager/index.js +206 -0
  12. package/es/aws/index.d.ts +16 -0
  13. package/es/aws/index.js +76 -0
  14. package/es/cmd/const.d.ts +11 -0
  15. package/es/cmd/const.js +13 -0
  16. package/es/cmd/index.d.ts +13 -0
  17. package/es/cmd/index.js +91 -0
  18. package/es/cmd/type.d.ts +5 -0
  19. package/es/cmd/type.js +1 -0
  20. package/es/communicationManager/index.d.ts +59 -0
  21. package/es/communicationManager/index.js +174 -0
  22. package/es/config.d.ts +3 -0
  23. package/es/config.js +14 -0
  24. package/es/cookie/index.d.ts +13 -0
  25. package/es/cookie/index.js +47 -0
  26. package/es/css/global.less +73 -0
  27. package/es/css/index.less +31 -0
  28. package/es/css/variables.css +84 -0
  29. package/es/data/index.d.ts +8 -0
  30. package/es/data/index.js +16 -0
  31. package/es/history/config.d.ts +24 -0
  32. package/es/history/config.js +43 -0
  33. package/es/history/index.d.ts +26 -0
  34. package/es/history/index.js +80 -0
  35. package/es/history/type.d.ts +2 -0
  36. package/es/history/type.js +1 -0
  37. package/es/hooks/index.d.ts +12 -0
  38. package/es/hooks/index.js +13 -0
  39. package/es/hooks/useDelayedValue/index.d.ts +2 -0
  40. package/es/hooks/useDelayedValue/index.js +26 -0
  41. package/es/hooks/useDispatch/index.d.ts +2 -0
  42. package/es/hooks/useDispatch/index.js +2 -0
  43. package/es/hooks/useLowCode/index.d.ts +13 -0
  44. package/es/hooks/useLowCode/index.js +74 -0
  45. package/es/hooks/useStore/index.d.ts +6 -0
  46. package/es/hooks/useStore/index.js +11 -0
  47. package/es/index.d.ts +8 -0
  48. package/es/index.js +10 -0
  49. package/es/indexDB/index.d.ts +296 -0
  50. package/es/indexDB/index.js +1619 -0
  51. package/es/locales/en.d.ts +3 -0
  52. package/es/locales/en.js +5 -0
  53. package/es/locales/index.d.ts +39 -0
  54. package/es/locales/index.js +199 -0
  55. package/es/locales/original.d.ts +3 -0
  56. package/es/locales/original.js +7 -0
  57. package/es/locales/type.d.ts +19 -0
  58. package/es/locales/type.js +1 -0
  59. package/es/locales/zh-CN.d.ts +3 -0
  60. package/es/locales/zh-CN.js +5 -0
  61. package/es/locales/zh-HK.d.ts +3 -0
  62. package/es/locales/zh-HK.js +5 -0
  63. package/es/logger/feishu.d.ts +11 -0
  64. package/es/logger/feishu.js +50 -0
  65. package/es/logger/index.d.ts +135 -0
  66. package/es/logger/index.js +870 -0
  67. package/es/menuManager/hooks.d.ts +17 -0
  68. package/es/menuManager/hooks.js +136 -0
  69. package/es/menuManager/index.d.ts +28 -0
  70. package/es/menuManager/index.js +165 -0
  71. package/es/models/global.d.ts +32 -0
  72. package/es/models/global.js +66 -0
  73. package/es/models/index.d.ts +45 -0
  74. package/es/models/index.js +65 -0
  75. package/es/models/type.d.ts +2 -0
  76. package/es/models/type.js +1 -0
  77. package/es/plugin/index.d.ts +0 -0
  78. package/es/plugin/index.js +0 -0
  79. package/es/pubsub/example.d.ts +5 -0
  80. package/es/pubsub/example.js +92 -0
  81. package/es/pubsub/index.d.ts +73 -0
  82. package/es/pubsub/index.js +166 -0
  83. package/es/render/index.d.ts +0 -0
  84. package/es/render/index.js +0 -0
  85. package/es/request/cache.d.ts +46 -0
  86. package/es/request/cache.js +372 -0
  87. package/es/request/cancelToken.d.ts +38 -0
  88. package/es/request/cancelToken.js +59 -0
  89. package/es/request/config.d.ts +3 -0
  90. package/es/request/config.js +63 -0
  91. package/es/request/constants.d.ts +2 -0
  92. package/es/request/constants.js +6 -0
  93. package/es/request/index.d.ts +24 -0
  94. package/es/request/index.js +267 -0
  95. package/es/request/pisell2Request.d.ts +6 -0
  96. package/es/request/pisell2Request.js +62 -0
  97. package/es/request/type.d.ts +57 -0
  98. package/es/request/type.js +10 -0
  99. package/es/request/utils.d.ts +46 -0
  100. package/es/request/utils.js +147 -0
  101. package/es/routes/config.d.ts +7 -0
  102. package/es/routes/config.js +17 -0
  103. package/es/routes/index.d.ts +28 -0
  104. package/es/routes/index.js +151 -0
  105. package/es/socket/components/SocketMonitorPage.d.ts +6 -0
  106. package/es/socket/components/SocketMonitorPage.js +485 -0
  107. package/es/socket/components/index.d.ts +2 -0
  108. package/es/socket/components/index.js +2 -0
  109. package/es/socket/constants.d.ts +33 -0
  110. package/es/socket/constants.js +39 -0
  111. package/es/socket/events.d.ts +31 -0
  112. package/es/socket/events.js +19 -0
  113. package/es/socket/heartbeat.d.ts +66 -0
  114. package/es/socket/heartbeat.js +184 -0
  115. package/es/socket/index.d.ts +61 -0
  116. package/es/socket/index.js +246 -0
  117. package/es/socket/monitor.d.ts +169 -0
  118. package/es/socket/monitor.js +448 -0
  119. package/es/socket/reconnect.d.ts +61 -0
  120. package/es/socket/reconnect.js +199 -0
  121. package/es/socket/socket.d.ts +130 -0
  122. package/es/socket/socket.js +613 -0
  123. package/es/socket/types.d.ts +85 -0
  124. package/es/socket/types.js +35 -0
  125. package/es/storage/index.d.ts +17 -0
  126. package/es/storage/index.js +46 -0
  127. package/es/tasks/index.d.ts +127 -0
  128. package/es/tasks/index.js +1119 -0
  129. package/es/tasks/scheduledTasksExample.d.ts +61 -0
  130. package/es/tasks/scheduledTasksExample.js +351 -0
  131. package/es/tasks/type.d.ts +100 -0
  132. package/es/tasks/type.js +1 -0
  133. package/es/tasks/useTasks.d.ts +5 -0
  134. package/es/tasks/useTasks.js +25 -0
  135. package/es/type.d.ts +2 -0
  136. package/es/type.js +1 -0
  137. package/es/utils/adaptiveThrottle/index.d.ts +36 -0
  138. package/es/utils/adaptiveThrottle/index.js +136 -0
  139. package/es/variables/VariablesProvider.d.ts +7 -0
  140. package/es/variables/VariablesProvider.js +12 -0
  141. package/es/variables/config.d.ts +3 -0
  142. package/es/variables/config.js +16 -0
  143. package/es/variables/index.d.ts +6 -0
  144. package/es/variables/index.js +5 -0
  145. package/es/variables/type.d.ts +2 -0
  146. package/es/variables/type.js +1 -0
  147. package/es/website/index.d.ts +6 -0
  148. package/es/website/index.js +65 -0
  149. package/lib/app/app.d.ts +101 -0
  150. package/lib/app/app.js +171 -0
  151. package/lib/app/const.d.ts +4 -0
  152. package/lib/app/const.js +33 -0
  153. package/lib/app/index.d.ts +14 -0
  154. package/lib/app/index.js +76 -0
  155. package/lib/applicationManager/application.d.ts +197 -0
  156. package/lib/applicationManager/application.js +280 -0
  157. package/lib/applicationManager/index.d.ts +19 -0
  158. package/lib/applicationManager/index.js +88 -0
  159. package/lib/aws/index.d.ts +16 -0
  160. package/lib/aws/index.js +67 -0
  161. package/lib/cmd/const.d.ts +11 -0
  162. package/lib/cmd/const.js +39 -0
  163. package/lib/cmd/index.d.ts +13 -0
  164. package/lib/cmd/index.js +96 -0
  165. package/lib/cmd/type.d.ts +5 -0
  166. package/lib/cmd/type.js +17 -0
  167. package/lib/communicationManager/index.d.ts +59 -0
  168. package/lib/communicationManager/index.js +102 -0
  169. package/lib/config.d.ts +3 -0
  170. package/lib/config.js +36 -0
  171. package/lib/cookie/index.d.ts +13 -0
  172. package/lib/cookie/index.js +62 -0
  173. package/lib/css/global.less +73 -0
  174. package/lib/css/index.less +31 -0
  175. package/lib/css/variables.css +84 -0
  176. package/lib/data/index.d.ts +8 -0
  177. package/lib/data/index.js +38 -0
  178. package/lib/history/config.d.ts +24 -0
  179. package/lib/history/config.js +41 -0
  180. package/lib/history/index.d.ts +26 -0
  181. package/lib/history/index.js +99 -0
  182. package/lib/history/type.d.ts +2 -0
  183. package/lib/history/type.js +17 -0
  184. package/lib/hooks/index.d.ts +12 -0
  185. package/lib/hooks/index.js +44 -0
  186. package/lib/hooks/useDelayedValue/index.d.ts +2 -0
  187. package/lib/hooks/useDelayedValue/index.js +36 -0
  188. package/lib/hooks/useDispatch/index.d.ts +2 -0
  189. package/lib/hooks/useDispatch/index.js +26 -0
  190. package/lib/hooks/useLowCode/index.d.ts +13 -0
  191. package/lib/hooks/useLowCode/index.js +75 -0
  192. package/lib/hooks/useStore/index.d.ts +6 -0
  193. package/lib/hooks/useStore/index.js +33 -0
  194. package/lib/index.d.ts +8 -0
  195. package/lib/index.js +58 -0
  196. package/lib/indexDB/index.d.ts +296 -0
  197. package/lib/indexDB/index.js +767 -0
  198. package/lib/locales/en.d.ts +3 -0
  199. package/lib/locales/en.js +29 -0
  200. package/lib/locales/index.d.ts +39 -0
  201. package/lib/locales/index.js +159 -0
  202. package/lib/locales/original.d.ts +3 -0
  203. package/lib/locales/original.js +31 -0
  204. package/lib/locales/type.d.ts +19 -0
  205. package/lib/locales/type.js +17 -0
  206. package/lib/locales/zh-CN.d.ts +3 -0
  207. package/lib/locales/zh-CN.js +29 -0
  208. package/lib/locales/zh-HK.d.ts +3 -0
  209. package/lib/locales/zh-HK.js +29 -0
  210. package/lib/logger/feishu.d.ts +11 -0
  211. package/lib/logger/feishu.js +52 -0
  212. package/lib/logger/index.d.ts +135 -0
  213. package/lib/logger/index.js +476 -0
  214. package/lib/menuManager/hooks.d.ts +17 -0
  215. package/lib/menuManager/hooks.js +135 -0
  216. package/lib/menuManager/index.d.ts +28 -0
  217. package/lib/menuManager/index.js +125 -0
  218. package/lib/models/global.d.ts +32 -0
  219. package/lib/models/global.js +62 -0
  220. package/lib/models/index.d.ts +45 -0
  221. package/lib/models/index.js +69 -0
  222. package/lib/models/type.d.ts +2 -0
  223. package/lib/models/type.js +17 -0
  224. package/lib/plugin/index.d.ts +0 -0
  225. package/lib/plugin/index.js +0 -0
  226. package/lib/pubsub/example.d.ts +5 -0
  227. package/lib/pubsub/example.js +61 -0
  228. package/lib/pubsub/index.d.ts +73 -0
  229. package/lib/pubsub/index.js +141 -0
  230. package/lib/render/index.d.ts +0 -0
  231. package/lib/render/index.js +0 -0
  232. package/lib/request/cache.d.ts +46 -0
  233. package/lib/request/cache.js +195 -0
  234. package/lib/request/cancelToken.d.ts +38 -0
  235. package/lib/request/cancelToken.js +59 -0
  236. package/lib/request/config.d.ts +3 -0
  237. package/lib/request/config.js +69 -0
  238. package/lib/request/constants.d.ts +2 -0
  239. package/lib/request/constants.js +34 -0
  240. package/lib/request/index.d.ts +24 -0
  241. package/lib/request/index.js +210 -0
  242. package/lib/request/pisell2Request.d.ts +6 -0
  243. package/lib/request/pisell2Request.js +75 -0
  244. package/lib/request/type.d.ts +57 -0
  245. package/lib/request/type.js +36 -0
  246. package/lib/request/utils.d.ts +46 -0
  247. package/lib/request/utils.js +113 -0
  248. package/lib/routes/config.d.ts +7 -0
  249. package/lib/routes/config.js +50 -0
  250. package/lib/routes/index.d.ts +28 -0
  251. package/lib/routes/index.js +121 -0
  252. package/lib/socket/components/SocketMonitorPage.d.ts +6 -0
  253. package/lib/socket/components/SocketMonitorPage.js +340 -0
  254. package/lib/socket/components/index.d.ts +2 -0
  255. package/lib/socket/components/index.js +39 -0
  256. package/lib/socket/constants.d.ts +33 -0
  257. package/lib/socket/constants.js +62 -0
  258. package/lib/socket/events.d.ts +31 -0
  259. package/lib/socket/events.js +44 -0
  260. package/lib/socket/heartbeat.d.ts +66 -0
  261. package/lib/socket/heartbeat.js +157 -0
  262. package/lib/socket/index.d.ts +61 -0
  263. package/lib/socket/index.js +198 -0
  264. package/lib/socket/monitor.d.ts +169 -0
  265. package/lib/socket/monitor.js +350 -0
  266. package/lib/socket/reconnect.d.ts +61 -0
  267. package/lib/socket/reconnect.js +157 -0
  268. package/lib/socket/socket.d.ts +130 -0
  269. package/lib/socket/socket.js +426 -0
  270. package/lib/socket/types.d.ts +85 -0
  271. package/lib/socket/types.js +36 -0
  272. package/lib/storage/index.d.ts +17 -0
  273. package/lib/storage/index.js +64 -0
  274. package/lib/tasks/index.d.ts +127 -0
  275. package/lib/tasks/index.js +710 -0
  276. package/lib/tasks/scheduledTasksExample.d.ts +61 -0
  277. package/lib/tasks/scheduledTasksExample.js +267 -0
  278. package/lib/tasks/type.d.ts +100 -0
  279. package/lib/tasks/type.js +17 -0
  280. package/lib/tasks/useTasks.d.ts +5 -0
  281. package/lib/tasks/useTasks.js +37 -0
  282. package/lib/type.d.ts +2 -0
  283. package/lib/type.js +17 -0
  284. package/lib/utils/adaptiveThrottle/index.d.ts +36 -0
  285. package/lib/utils/adaptiveThrottle/index.js +121 -0
  286. package/lib/variables/VariablesProvider.d.ts +7 -0
  287. package/lib/variables/VariablesProvider.js +51 -0
  288. package/lib/variables/config.d.ts +3 -0
  289. package/lib/variables/config.js +38 -0
  290. package/lib/variables/index.d.ts +6 -0
  291. package/lib/variables/index.js +29 -0
  292. package/lib/variables/type.d.ts +2 -0
  293. package/lib/variables/type.js +17 -0
  294. package/lib/website/index.d.ts +6 -0
  295. package/lib/website/index.js +75 -0
  296. package/package.json +49 -0
@@ -0,0 +1,296 @@
1
+ import App from "../app";
2
+ export declare const mockPromise: (data: any, timeout?: number) => Promise<unknown>;
3
+ /**
4
+ * IndexDB 管理器模块
5
+ *
6
+ * 这个模块使用 Dexie.js 提供了对浏览器 IndexedDB 的简单封装,并在不支持 IndexedDB 的环境中
7
+ * 自动降级使用内存存储作为备选存储方案。
8
+ */
9
+ /**
10
+ * 数据库配置选项接口
11
+ * @interface DBOptions
12
+ * @property {string} dbName - 数据库名称
13
+ * @property {number} version - 数据库版本号
14
+ * @property {Array} stores - 存储对象配置数组
15
+ * @property {string} stores[].name - 存储对象名称
16
+ * @property {string} stores[].keyPath - 主键路径
17
+ * @property {Array} [stores[].indexes] - 索引配置数组(可选)
18
+ * @property {string} stores[].indexes[].name - 索引名称
19
+ * @property {string} stores[].indexes[].keyPath - 索引键路径
20
+ * @property {IDBIndexParameters} [stores[].indexes[].options] - 索引选项(可选)
21
+ */
22
+ export interface DBOptions {
23
+ dbName: string;
24
+ version: number;
25
+ stores: {
26
+ name: string;
27
+ keyPath: string;
28
+ indexes?: {
29
+ name: string;
30
+ keyPath: string;
31
+ options?: IDBIndexParameters;
32
+ }[];
33
+ }[];
34
+ timeout?: number;
35
+ }
36
+ /**
37
+ * IndexDB 管理器类
38
+ * 使用 Dexie.js 提供对 IndexedDB 的封装,支持自动降级到内存存储
39
+ * @class IndexDBManager
40
+ */
41
+ declare class IndexDBManager {
42
+ /**
43
+ * 检查环境是否支持 IndexedDB
44
+ * @returns {boolean} 是否支持 IndexedDB
45
+ * @private
46
+ */
47
+ private static isSupported;
48
+ private db;
49
+ private dbName;
50
+ private version;
51
+ private stores;
52
+ private useIndexDB;
53
+ private app;
54
+ private memoryStorage;
55
+ private timeout;
56
+ private debouncedBuffers;
57
+ private debouncedTimers;
58
+ private debouncedFlushing;
59
+ private debouncedDelay;
60
+ private debouncedBatchSize;
61
+ private debouncedUpdateBuffers;
62
+ private debouncedUpdateTimers;
63
+ private debouncedUpdateFlushing;
64
+ private debouncedUpdateDelay;
65
+ private debouncedUpdateBatchSize;
66
+ /**
67
+ * 创建 IndexDBManager 实例
68
+ * @param {DBOptions} options - 数据库配置选项
69
+ */
70
+ constructor(app: App, options: DBOptions);
71
+ /**
72
+ * 超时包装器 - 为 Promise 添加超时控制
73
+ * @param {Promise<T>} promise - 需要包装的 Promise
74
+ * @param {string} operation - 操作名称(用于错误提示)
75
+ * @returns {Promise<T>} 带超时控制的 Promise
76
+ * @private
77
+ */
78
+ private withTimeout;
79
+ /**
80
+ * 初始化数据库连接
81
+ * 如果环境不支持 IndexedDB,将自动使用内存存储
82
+ * @returns {Promise<boolean>} 连接是否成功
83
+ */
84
+ connect(): Promise<boolean>;
85
+ /**
86
+ * 获取内存存储中指定 store 的 Map
87
+ * @param {string} storeName - 存储对象名称
88
+ * @returns {Map<string | number, any>} 存储 Map
89
+ * @private
90
+ */
91
+ private getMemoryStore;
92
+ /**
93
+ * 防抖合并 add(用于高频写入场景)
94
+ * @param storeName 存储对象名称
95
+ * @param data 数据
96
+ */
97
+ debouncedAdd<T>(storeName: string, data: T): void;
98
+ /**
99
+ * 立即 flush 指定 store 的防抖 add
100
+ */
101
+ flushDebouncedAdd(storeName: string): Promise<void>;
102
+ /**
103
+ * 防抖合并 update(同 key 自动合并)
104
+ */
105
+ debouncedUpdate<T extends Record<string, any>>(storeName: string, data: T): void;
106
+ /**
107
+ * flush 防抖 update
108
+ */
109
+ flushDebouncedUpdate(storeName: string): Promise<void>;
110
+ /**
111
+ * 添加数据到指定的存储对象
112
+ * @param {string} storeName - 存储对象名称
113
+ * @param {T} data - 要添加的数据
114
+ * * @param {boolean} [log=true] - 是否记录日志
115
+ * @returns {Promise<T>} 添加的数据
116
+ * @template T
117
+ */
118
+ add<T>(storeName: string, data: T, log?: boolean): Promise<T>;
119
+ /**
120
+ * 快速检查指定存储对象中的数据是否存在
121
+ * @param {string} storeName - 存储对象名称
122
+ * @param {string|number} key - 数据主键
123
+ * @returns {Promise<boolean>} 数据是否存在
124
+ */
125
+ exists(storeName: string, key: string | number): Promise<boolean>;
126
+ /**
127
+ * 获取指定存储对象中的数据
128
+ * @param {string} storeName - 存储对象名称
129
+ * @param {string|number} key - 数据主键
130
+ * * @param {boolean} [log=true] - 是否记录日志
131
+ * @returns {Promise<T|null>} 获取的数据,不存在则返回 null
132
+ * @template T
133
+ */
134
+ get<T>(storeName: string, key: string | number, log?: boolean): Promise<T | null>;
135
+ /**
136
+ * 更新指定存储对象中的数据
137
+ * @param {string} storeName - 存储对象名称
138
+ * @param {T} data - 要更新的数据
139
+ * * @param {boolean} [log=true] - 是否记录日志
140
+ * @returns {Promise<T>} 更新后的数据
141
+ * @template T
142
+ */
143
+ update<T>(storeName: string, data: T, log?: boolean): Promise<T>;
144
+ /**
145
+ * 删除指定存储对象中的数据
146
+ * @param {string} storeName - 存储对象名称
147
+ * @param {string|number} key - 数据主键
148
+ * @returns {Promise<boolean>} 删除是否成功
149
+ */
150
+ delete(storeName: string, key: string | number): Promise<boolean>;
151
+ /**
152
+ * 通过索引获取数据
153
+ * @param {string} storeName - 存储对象名称
154
+ * @param {string} indexName - 索引名称
155
+ * @param {string|number} indexValue - 索引值
156
+ * @returns {Promise<T|null>} 获取的数据,不存在则返回 null
157
+ * @template T
158
+ */
159
+ getByIndex<T>(storeName: string, indexName: string, indexValue: string | number): Promise<T | null>;
160
+ /**
161
+ * 通过索引检查数据是否存在
162
+ * @param {string} storeName - 存储对象名称
163
+ * @param {string} indexName - 索引名称
164
+ * @param {string|number} indexValue - 索引值
165
+ * @returns {Promise<boolean>} 数据是否存在
166
+ */
167
+ existsByIndex(storeName: string, indexName: string, indexValue: string | number): Promise<boolean>;
168
+ /**
169
+ * 通过索引获取多条数据
170
+ * @param {string} storeName - 存储对象名称
171
+ * @param {string} indexName - 索引名称
172
+ * @param {string|number} indexValue - 索引值
173
+ * @returns {Promise<T[]>} 数据数组
174
+ * @template T
175
+ */
176
+ getAllByIndex<T>(storeName: string, indexName: string, indexValue: string | number): Promise<T[]>;
177
+ /**
178
+ * 统计指定存储对象中的数据数量
179
+ * @param {string} storeName - 存储对象名称
180
+ * @returns {Promise<number>} 数据数量
181
+ */
182
+ count(storeName: string): Promise<number>;
183
+ /**
184
+ * 通过索引统计数据数量
185
+ * @param {string} storeName - 存储对象名称
186
+ * @param {string} indexName - 索引名称
187
+ * @param {string|number} indexValue - 索引值
188
+ * @returns {Promise<number>} 数据数量
189
+ */
190
+ countByIndex(storeName: string, indexName: string, indexValue: string | number): Promise<number>;
191
+ /**
192
+ * 获取指定存储对象中的所有数据
193
+ * @param {string} storeName - 存储对象名称
194
+ * @returns {Promise<T[]>} 数据数组
195
+ * @template T
196
+ */
197
+ getAll<T>(storeName: string): Promise<T[]>;
198
+ /**
199
+ * 清空指定存储对象中的所有数据
200
+ * @param {string} storeName - 存储对象名称
201
+ * @returns {Promise<boolean>} 清空是否成功
202
+ */
203
+ clear(storeName: string): Promise<boolean>;
204
+ /**
205
+ * 关闭数据库连接
206
+ * 在不再需要使用数据库时调用,释放资源
207
+ */
208
+ close(): void;
209
+ /**
210
+ * 获取当前使用的存储方式
211
+ * @returns {'indexDB'|'memory'} 当前使用的存储方式
212
+ */
213
+ getCurrentStorage(): 'indexDB' | 'memory';
214
+ }
215
+ /**
216
+ * 使用示例:
217
+ *
218
+ * // 1. 创建数据库配置
219
+ * const dbOptions: DBOptions = {
220
+ * dbName: 'myApp',
221
+ * version: 1,
222
+ * stores: [
223
+ * {
224
+ * name: 'users',
225
+ * keyPath: 'id',
226
+ * indexes: [
227
+ * { name: 'email', keyPath: 'email', options: { unique: true } },
228
+ * { name: 'department', keyPath: 'department', options: { unique: false } }
229
+ * ]
230
+ * },
231
+ * {
232
+ * name: 'products',
233
+ * keyPath: 'id'
234
+ * }
235
+ * ]
236
+ * };
237
+ *
238
+ * // 2. 创建并连接数据库
239
+ * const db = new IndexDBManager(app, dbOptions);
240
+ * await db.connect();
241
+ *
242
+ * // 3. 添加数据
243
+ * const user = { id: '1', name: '张三', email: 'zhangsan@example.com', department: 'IT' };
244
+ * await db.add('users', user);
245
+ *
246
+ * // 4. 获取数据
247
+ * const retrievedUser = await db.get('users', '1');
248
+ *
249
+ * // 5. 快速检查数据是否存在(推荐用法)
250
+ * const userExists = await db.exists('users', '1'); // 返回 true/false,比 get 更高效
251
+ *
252
+ * // 6. 通过索引获取数据
253
+ * const userByEmail = await db.getByIndex('users', 'email', 'zhangsan@example.com');
254
+ *
255
+ * // 7. 通过索引检查数据是否存在
256
+ * const emailExists = await db.existsByIndex('users', 'email', 'zhangsan@example.com');
257
+ *
258
+ * // 8. 通过索引获取多条数据
259
+ * const itUsers = await db.getAllByIndex('users', 'department', 'IT');
260
+ *
261
+ * // 9. 统计数据数量
262
+ * const totalUsers = await db.count('users');
263
+ * const itUserCount = await db.countByIndex('users', 'department', 'IT');
264
+ *
265
+ * // 10. 更新数据
266
+ * user.name = '张三 (已更新)';
267
+ * await db.update('users', user);
268
+ *
269
+ * // 11. 获取所有数据
270
+ * const allUsers = await db.getAll('users');
271
+ *
272
+ * // 12. 删除数据
273
+ * await db.delete('users', '1');
274
+ *
275
+ * // 13. 清空存储对象
276
+ * await db.clear('users');
277
+ *
278
+ * // 14. 关闭数据库连接
279
+ * db.close();
280
+ *
281
+ * // 15. 检查当前使用的存储方式
282
+ * const storageType = db.getCurrentStorage(); // 'indexDB' 或 'memory'
283
+ *
284
+ * // 性能优化建议:
285
+ * // - 使用 exists() 而不是 get() 来检查数据是否存在
286
+ * // - 为常用查询字段创建索引
287
+ * // - 使用索引查询方法来提高查询效率
288
+ * // - 批量操作时使用事务(可以考虑后续扩展)
289
+ *
290
+ * // 降级方案说明:
291
+ * // - 当浏览器不支持 IndexedDB 时,会自动使用内存存储 (Map) 作为降级方案
292
+ * // - 内存存储的数据在页面刷新后会丢失,仅适合临时数据存储
293
+ * // - 内存存储支持所有 IndexedDB API,包括索引查询
294
+ * // - 对于需要持久化的数据,请确保浏览器支持 IndexedDB
295
+ */
296
+ export default IndexDBManager;