@composy/store-core 0.0.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 (272) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +172 -0
  3. package/dist/index.js +1852 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.min.js +1082 -0
  6. package/dist/index.min.js.map +1 -0
  7. package/es/core/async-action.d.ts +95 -0
  8. package/es/core/async-action.d.ts.map +1 -0
  9. package/es/core/async-action.js +116 -0
  10. package/es/core/async-action.js.map +1 -0
  11. package/es/core/base-store.d.ts +85 -0
  12. package/es/core/base-store.d.ts.map +1 -0
  13. package/es/core/base-store.js +185 -0
  14. package/es/core/base-store.js.map +1 -0
  15. package/es/core/batch-manager.d.ts +46 -0
  16. package/es/core/batch-manager.d.ts.map +1 -0
  17. package/es/core/batch-manager.js +64 -0
  18. package/es/core/batch-manager.js.map +1 -0
  19. package/es/core/create-store.d.ts +66 -0
  20. package/es/core/create-store.d.ts.map +1 -0
  21. package/es/core/create-store.js +29 -0
  22. package/es/core/create-store.js.map +1 -0
  23. package/es/core/event-bus.d.ts +34 -0
  24. package/es/core/event-bus.d.ts.map +1 -0
  25. package/es/core/event-bus.js +71 -0
  26. package/es/core/event-bus.js.map +1 -0
  27. package/es/core/index.d.ts +14 -0
  28. package/es/core/index.d.ts.map +1 -0
  29. package/es/core/index.js +17 -0
  30. package/es/core/pub-sub.d.ts +41 -0
  31. package/es/core/pub-sub.d.ts.map +1 -0
  32. package/es/core/pub-sub.js +71 -0
  33. package/es/core/pub-sub.js.map +1 -0
  34. package/es/engine/index.d.ts +10 -0
  35. package/es/engine/index.d.ts.map +1 -0
  36. package/es/engine/index.js +12 -0
  37. package/es/engine/plugin.d.ts +20 -0
  38. package/es/engine/plugin.d.ts.map +1 -0
  39. package/es/engine/plugin.js +153 -0
  40. package/es/engine/plugin.js.map +1 -0
  41. package/es/engine/types.d.ts +81 -0
  42. package/es/engine/types.d.ts.map +1 -0
  43. package/es/engine/types.js +10 -0
  44. package/es/errors/index.d.ts +208 -0
  45. package/es/errors/index.d.ts.map +1 -0
  46. package/es/errors/index.js +217 -0
  47. package/es/errors/index.js.map +1 -0
  48. package/es/index.d.ts +27 -0
  49. package/es/index.d.ts.map +1 -0
  50. package/es/index.js +34 -0
  51. package/es/index.js.map +1 -0
  52. package/es/middleware/index.d.ts +13 -0
  53. package/es/middleware/index.d.ts.map +1 -0
  54. package/es/middleware/index.js +16 -0
  55. package/es/middleware/logger.d.ts +67 -0
  56. package/es/middleware/logger.d.ts.map +1 -0
  57. package/es/middleware/logger.js +136 -0
  58. package/es/middleware/logger.js.map +1 -0
  59. package/es/middleware/middleware-manager.d.ts +40 -0
  60. package/es/middleware/middleware-manager.d.ts.map +1 -0
  61. package/es/middleware/middleware-manager.js +79 -0
  62. package/es/middleware/middleware-manager.js.map +1 -0
  63. package/es/middleware/persist.d.ts +34 -0
  64. package/es/middleware/persist.d.ts.map +1 -0
  65. package/es/middleware/persist.js +102 -0
  66. package/es/middleware/persist.js.map +1 -0
  67. package/es/middleware/time-travel.d.ts +30 -0
  68. package/es/middleware/time-travel.d.ts.map +1 -0
  69. package/es/middleware/time-travel.js +151 -0
  70. package/es/middleware/time-travel.js.map +1 -0
  71. package/es/middleware/validation.d.ts +100 -0
  72. package/es/middleware/validation.d.ts.map +1 -0
  73. package/es/middleware/validation.js +74 -0
  74. package/es/middleware/validation.js.map +1 -0
  75. package/es/plugins/define-plugin.d.ts +74 -0
  76. package/es/plugins/define-plugin.d.ts.map +1 -0
  77. package/es/plugins/define-plugin.js +52 -0
  78. package/es/plugins/define-plugin.js.map +1 -0
  79. package/es/plugins/index.d.ts +8 -0
  80. package/es/plugins/index.d.ts.map +1 -0
  81. package/es/plugins/index.js +13 -0
  82. package/es/plugins/plugin-manager.d.ts +35 -0
  83. package/es/plugins/plugin-manager.d.ts.map +1 -0
  84. package/es/plugins/plugin-manager.js +77 -0
  85. package/es/plugins/plugin-manager.js.map +1 -0
  86. package/es/types/index.d.ts +12 -0
  87. package/es/types/index.d.ts.map +1 -0
  88. package/es/types/index.js +10 -0
  89. package/es/types/middleware.d.ts +172 -0
  90. package/es/types/middleware.d.ts.map +1 -0
  91. package/es/types/middleware.js +10 -0
  92. package/es/types/plugin.d.ts +136 -0
  93. package/es/types/plugin.d.ts.map +1 -0
  94. package/es/types/plugin.js +10 -0
  95. package/es/types/store.d.ts +198 -0
  96. package/es/types/store.d.ts.map +1 -0
  97. package/es/types/store.js +10 -0
  98. package/es/types/subscription.d.ts +158 -0
  99. package/es/types/subscription.d.ts.map +1 -0
  100. package/es/types/subscription.js +10 -0
  101. package/es/types/utility.d.ts +312 -0
  102. package/es/types/utility.d.ts.map +1 -0
  103. package/es/types/utility.js +10 -0
  104. package/es/utils/debounce-throttle.d.ts +86 -0
  105. package/es/utils/debounce-throttle.d.ts.map +1 -0
  106. package/es/utils/debounce-throttle.js +86 -0
  107. package/es/utils/debounce-throttle.js.map +1 -0
  108. package/es/utils/deep-clone.d.ts +143 -0
  109. package/es/utils/deep-clone.d.ts.map +1 -0
  110. package/es/utils/deep-clone.js +193 -0
  111. package/es/utils/deep-clone.js.map +1 -0
  112. package/es/utils/index.d.ts +13 -0
  113. package/es/utils/index.d.ts.map +1 -0
  114. package/es/utils/index.js +14 -0
  115. package/es/utils/selector.d.ts +213 -0
  116. package/es/utils/selector.d.ts.map +1 -0
  117. package/es/utils/selector.js +151 -0
  118. package/es/utils/selector.js.map +1 -0
  119. package/esm/core/async-action.d.ts +95 -0
  120. package/esm/core/async-action.js +116 -0
  121. package/esm/core/async-action.js.map +1 -0
  122. package/esm/core/base-store.d.ts +85 -0
  123. package/esm/core/base-store.js +185 -0
  124. package/esm/core/base-store.js.map +1 -0
  125. package/esm/core/batch-manager.d.ts +46 -0
  126. package/esm/core/batch-manager.js +64 -0
  127. package/esm/core/batch-manager.js.map +1 -0
  128. package/esm/core/create-store.d.ts +66 -0
  129. package/esm/core/create-store.js +29 -0
  130. package/esm/core/create-store.js.map +1 -0
  131. package/esm/core/event-bus.d.ts +34 -0
  132. package/esm/core/event-bus.js +71 -0
  133. package/esm/core/event-bus.js.map +1 -0
  134. package/esm/core/index.d.ts +14 -0
  135. package/esm/core/index.js +17 -0
  136. package/esm/core/pub-sub.d.ts +41 -0
  137. package/esm/core/pub-sub.js +71 -0
  138. package/esm/core/pub-sub.js.map +1 -0
  139. package/esm/engine/index.d.ts +10 -0
  140. package/esm/engine/index.js +12 -0
  141. package/esm/engine/plugin.d.ts +20 -0
  142. package/esm/engine/plugin.js +153 -0
  143. package/esm/engine/plugin.js.map +1 -0
  144. package/esm/engine/types.d.ts +81 -0
  145. package/esm/errors/index.d.ts +208 -0
  146. package/esm/errors/index.js +217 -0
  147. package/esm/errors/index.js.map +1 -0
  148. package/esm/index.d.ts +27 -0
  149. package/esm/index.js +36 -0
  150. package/esm/index.js.map +1 -0
  151. package/esm/middleware/index.d.ts +13 -0
  152. package/esm/middleware/logger.d.ts +67 -0
  153. package/esm/middleware/logger.js +119 -0
  154. package/esm/middleware/logger.js.map +1 -0
  155. package/esm/middleware/middleware-manager.d.ts +40 -0
  156. package/esm/middleware/middleware-manager.js +79 -0
  157. package/esm/middleware/middleware-manager.js.map +1 -0
  158. package/esm/middleware/persist.d.ts +34 -0
  159. package/esm/middleware/persist.js +102 -0
  160. package/esm/middleware/persist.js.map +1 -0
  161. package/esm/middleware/time-travel.d.ts +30 -0
  162. package/esm/middleware/time-travel.js +151 -0
  163. package/esm/middleware/time-travel.js.map +1 -0
  164. package/esm/middleware/validation.d.ts +100 -0
  165. package/esm/middleware/validation.js +74 -0
  166. package/esm/middleware/validation.js.map +1 -0
  167. package/esm/plugins/define-plugin.d.ts +74 -0
  168. package/esm/plugins/define-plugin.js +52 -0
  169. package/esm/plugins/define-plugin.js.map +1 -0
  170. package/esm/plugins/index.d.ts +8 -0
  171. package/esm/plugins/plugin-manager.d.ts +35 -0
  172. package/esm/plugins/plugin-manager.js +77 -0
  173. package/esm/plugins/plugin-manager.js.map +1 -0
  174. package/esm/types/index.d.ts +12 -0
  175. package/esm/types/middleware.d.ts +172 -0
  176. package/esm/types/plugin.d.ts +136 -0
  177. package/esm/types/store.d.ts +198 -0
  178. package/esm/types/subscription.d.ts +158 -0
  179. package/esm/types/utility.d.ts +312 -0
  180. package/esm/utils/debounce-throttle.d.ts +86 -0
  181. package/esm/utils/debounce-throttle.js +86 -0
  182. package/esm/utils/debounce-throttle.js.map +1 -0
  183. package/esm/utils/deep-clone.d.ts +143 -0
  184. package/esm/utils/deep-clone.js +193 -0
  185. package/esm/utils/deep-clone.js.map +1 -0
  186. package/esm/utils/index.d.ts +13 -0
  187. package/esm/utils/selector.d.ts +213 -0
  188. package/esm/utils/selector.js +151 -0
  189. package/esm/utils/selector.js.map +1 -0
  190. package/lib/core/async-action.cjs +118 -0
  191. package/lib/core/async-action.cjs.map +1 -0
  192. package/lib/core/async-action.d.ts +95 -0
  193. package/lib/core/base-store.cjs +187 -0
  194. package/lib/core/base-store.cjs.map +1 -0
  195. package/lib/core/base-store.d.ts +85 -0
  196. package/lib/core/batch-manager.cjs +69 -0
  197. package/lib/core/batch-manager.cjs.map +1 -0
  198. package/lib/core/batch-manager.d.ts +46 -0
  199. package/lib/core/create-store.cjs +31 -0
  200. package/lib/core/create-store.cjs.map +1 -0
  201. package/lib/core/create-store.d.ts +66 -0
  202. package/lib/core/event-bus.cjs +74 -0
  203. package/lib/core/event-bus.cjs.map +1 -0
  204. package/lib/core/event-bus.d.ts +34 -0
  205. package/lib/core/index.cjs +29 -0
  206. package/lib/core/index.d.ts +14 -0
  207. package/lib/core/pub-sub.cjs +74 -0
  208. package/lib/core/pub-sub.cjs.map +1 -0
  209. package/lib/core/pub-sub.d.ts +41 -0
  210. package/lib/engine/index.cjs +16 -0
  211. package/lib/engine/index.d.ts +10 -0
  212. package/lib/engine/plugin.cjs +157 -0
  213. package/lib/engine/plugin.cjs.map +1 -0
  214. package/lib/engine/plugin.d.ts +20 -0
  215. package/lib/engine/types.cjs +12 -0
  216. package/lib/engine/types.d.ts +81 -0
  217. package/lib/errors/index.cjs +233 -0
  218. package/lib/errors/index.cjs.map +1 -0
  219. package/lib/errors/index.d.ts +208 -0
  220. package/lib/index.cjs +101 -0
  221. package/lib/index.cjs.map +1 -0
  222. package/lib/index.d.ts +27 -0
  223. package/lib/middleware/index.cjs +28 -0
  224. package/lib/middleware/index.d.ts +13 -0
  225. package/lib/middleware/logger.cjs +140 -0
  226. package/lib/middleware/logger.cjs.map +1 -0
  227. package/lib/middleware/logger.d.ts +67 -0
  228. package/lib/middleware/middleware-manager.cjs +83 -0
  229. package/lib/middleware/middleware-manager.cjs.map +1 -0
  230. package/lib/middleware/middleware-manager.d.ts +40 -0
  231. package/lib/middleware/persist.cjs +105 -0
  232. package/lib/middleware/persist.cjs.map +1 -0
  233. package/lib/middleware/persist.d.ts +34 -0
  234. package/lib/middleware/time-travel.cjs +154 -0
  235. package/lib/middleware/time-travel.cjs.map +1 -0
  236. package/lib/middleware/time-travel.d.ts +30 -0
  237. package/lib/middleware/validation.cjs +76 -0
  238. package/lib/middleware/validation.cjs.map +1 -0
  239. package/lib/middleware/validation.d.ts +100 -0
  240. package/lib/package.json +3 -0
  241. package/lib/plugins/define-plugin.cjs +56 -0
  242. package/lib/plugins/define-plugin.cjs.map +1 -0
  243. package/lib/plugins/define-plugin.d.ts +74 -0
  244. package/lib/plugins/index.cjs +20 -0
  245. package/lib/plugins/index.d.ts +8 -0
  246. package/lib/plugins/plugin-manager.cjs +81 -0
  247. package/lib/plugins/plugin-manager.cjs.map +1 -0
  248. package/lib/plugins/plugin-manager.d.ts +35 -0
  249. package/lib/types/index.cjs +12 -0
  250. package/lib/types/index.d.ts +12 -0
  251. package/lib/types/middleware.cjs +12 -0
  252. package/lib/types/middleware.d.ts +172 -0
  253. package/lib/types/plugin.cjs +12 -0
  254. package/lib/types/plugin.d.ts +136 -0
  255. package/lib/types/store.cjs +12 -0
  256. package/lib/types/store.d.ts +198 -0
  257. package/lib/types/subscription.cjs +12 -0
  258. package/lib/types/subscription.d.ts +158 -0
  259. package/lib/types/utility.cjs +12 -0
  260. package/lib/types/utility.d.ts +312 -0
  261. package/lib/utils/debounce-throttle.cjs +89 -0
  262. package/lib/utils/debounce-throttle.cjs.map +1 -0
  263. package/lib/utils/debounce-throttle.d.ts +86 -0
  264. package/lib/utils/deep-clone.cjs +202 -0
  265. package/lib/utils/deep-clone.cjs.map +1 -0
  266. package/lib/utils/deep-clone.d.ts +143 -0
  267. package/lib/utils/index.cjs +34 -0
  268. package/lib/utils/index.d.ts +13 -0
  269. package/lib/utils/selector.cjs +161 -0
  270. package/lib/utils/selector.cjs.map +1 -0
  271. package/lib/utils/selector.d.ts +213 -0
  272. package/package.json +155 -0
@@ -0,0 +1,213 @@
1
+ /**
2
+ * 状态选择器工具
3
+ *
4
+ * 提供高性能的状态选择器和路径操作工具
5
+ * @module utils/selector
6
+ */
7
+ import type { Selector, StateTree } from '../types';
8
+ /**
9
+ * 选择器相等性比较函数类型
10
+ */
11
+ export type SelectorEqualityFn<R> = (a: R, b: R) => boolean;
12
+ /**
13
+ * 记忆化选择器配置选项
14
+ */
15
+ export interface MemoizedSelectorOptions<R> {
16
+ /** 相等性比较函数 */
17
+ equalityFn?: SelectorEqualityFn<R>;
18
+ /** 最大缓存大小(默认 1) */
19
+ maxSize?: number;
20
+ /** 是否在开发模式下记录缓存命中率 */
21
+ trackHitRate?: boolean;
22
+ }
23
+ /**
24
+ * 创建记忆化选择器
25
+ *
26
+ * 基本的记忆化选择器,只缓存最后一次结果
27
+ *
28
+ * @template S - 状态类型
29
+ * @template R - 返回值类型
30
+ * @param selector - 选择器函数
31
+ * @param equalityFn - 相等性比较函数(默认使用 Object.is)
32
+ * @returns 记忆化的选择器
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const selectTodos = createSelector(
37
+ * (state: AppState) => state.todos,
38
+ * )
39
+ *
40
+ * const selectCompletedTodos = createSelector(
41
+ * (state: AppState) => state.todos.filter(t => t.completed),
42
+ * (a, b) => a.length === b.length && a.every((v, i) => v === b[i])
43
+ * )
44
+ * ```
45
+ */
46
+ export declare function createSelector<S extends StateTree, R>(selector: Selector<S, R>, equalityFn?: SelectorEqualityFn<R>): Selector<S, R>;
47
+ /**
48
+ * 创建带依赖的选择器
49
+ *
50
+ * 类似 reselect 的实现,支持多个输入选择器
51
+ *
52
+ * @template S - 状态类型
53
+ * @template Deps - 依赖结果类型
54
+ * @template R - 返回值类型
55
+ * @param dependencies - 依赖选择器数组
56
+ * @param combiner - 组合函数
57
+ * @param options - 配置选项
58
+ * @returns 记忆化的选择器
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const selectVisibleTodos = createSelectorWithDeps(
63
+ * [
64
+ * (state) => state.todos,
65
+ * (state) => state.visibilityFilter,
66
+ * ],
67
+ * (todos, filter) => {
68
+ * switch (filter) {
69
+ * case 'SHOW_COMPLETED': return todos.filter(t => t.completed)
70
+ * case 'SHOW_ACTIVE': return todos.filter(t => !t.completed)
71
+ * default: return todos
72
+ * }
73
+ * }
74
+ * )
75
+ * ```
76
+ */
77
+ export declare function createSelectorWithDeps<S extends StateTree, Deps extends unknown[], R>(dependencies: {
78
+ [K in keyof Deps]: Selector<S, Deps[K]>;
79
+ }, combiner: (...args: Deps) => R, options?: MemoizedSelectorOptions<R>): Selector<S, R>;
80
+ /**
81
+ * 组合多个选择器
82
+ *
83
+ * 简单的选择器组合,不带记忆化
84
+ *
85
+ * @template S - 状态类型
86
+ * @template R - 结果类型数组
87
+ * @template C - 组合结果类型
88
+ * @param selectors - 选择器数组
89
+ * @param combiner - 组合函数
90
+ * @returns 组合后的选择器
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const selectUserAndTodos = combineSelectors(
95
+ * [
96
+ * (state) => state.user,
97
+ * (state) => state.todos,
98
+ * ],
99
+ * (user, todos) => ({ user, todos })
100
+ * )
101
+ * ```
102
+ */
103
+ export declare function combineSelectors<S extends StateTree, R extends unknown[], C>(selectors: {
104
+ [K in keyof R]: Selector<S, R[K]>;
105
+ }, combiner: (...results: R) => C): Selector<S, C>;
106
+ /**
107
+ * 创建带高级缓存的选择器
108
+ *
109
+ * 支持多个缓存条目,使用 LRU 策略
110
+ *
111
+ * @template S - 状态类型
112
+ * @template R - 返回值类型
113
+ * @param selector - 选择器函数
114
+ * @param options - 配置选项
115
+ * @returns 带缓存的选择器
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const selectFilteredItems = createCachedSelector(
120
+ * (state, filter) => state.items.filter(item => item.type === filter),
121
+ * { maxSize: 5 }
122
+ * )
123
+ * ```
124
+ */
125
+ export declare function createCachedSelector<S extends StateTree, R>(selector: Selector<S, R>, options?: MemoizedSelectorOptions<R>): Selector<S, R> & {
126
+ clearCache: () => void;
127
+ getCacheSize: () => number;
128
+ };
129
+ /**
130
+ * 创建记忆化选择器(别名,同 createSelector)
131
+ *
132
+ * @template S - 状态类型
133
+ * @template R - 返回值类型
134
+ * @param selector - 选择器函数
135
+ * @param options - 配置选项
136
+ * @returns 记忆化的选择器
137
+ */
138
+ export declare function createMemoizedSelector<S extends StateTree, R>(selector: Selector<S, R>, options?: MemoizedSelectorOptions<R>): Selector<S, R>;
139
+ /**
140
+ * 获取嵌套对象的值
141
+ *
142
+ * 支持点表示法和数组索引
143
+ *
144
+ * @template T - 返回值类型
145
+ * @param obj - 对象
146
+ * @param path - 路径(支持 'a.b.c' 或 'a[0].b')
147
+ * @param defaultValue - 默认值(当路径不存在时返回)
148
+ * @returns 值
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const value = getByPath({ a: { b: { c: 1 } } }, 'a.b.c')
153
+ * // value: 1
154
+ *
155
+ * const arr = getByPath({ items: [{ name: 'test' }] }, 'items[0].name')
156
+ * // arr: 'test'
157
+ *
158
+ * const missing = getByPath({ a: 1 }, 'b.c', 'default')
159
+ * // missing: 'default'
160
+ * ```
161
+ */
162
+ export declare function getByPath<T = unknown>(obj: unknown, path: string, defaultValue?: T): T | undefined;
163
+ /**
164
+ * 设置嵌套对象的值
165
+ *
166
+ * 支持自动创建中间路径
167
+ *
168
+ * @param obj - 对象
169
+ * @param path - 路径
170
+ * @param value - 值
171
+ * @returns 是否成功
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * const obj = {}
176
+ * setByPath(obj, 'a.b.c', 1)
177
+ * // obj: { a: { b: { c: 1 } } }
178
+ *
179
+ * setByPath(obj, 'items[0].name', 'test')
180
+ * // obj: { a: { b: { c: 1 } }, items: [{ name: 'test' }] }
181
+ * ```
182
+ */
183
+ export declare function setByPath(obj: Record<string, unknown>, path: string, value: unknown): boolean;
184
+ /**
185
+ * 删除嵌套对象的值
186
+ *
187
+ * @param obj - 对象
188
+ * @param path - 路径
189
+ * @returns 是否成功删除
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const obj = { a: { b: { c: 1 } } }
194
+ * deleteByPath(obj, 'a.b.c')
195
+ * // obj: { a: { b: {} } }
196
+ * ```
197
+ */
198
+ export declare function deleteByPath(obj: Record<string, unknown>, path: string): boolean;
199
+ /**
200
+ * 检查嵌套对象中是否存在指定路径
201
+ *
202
+ * @param obj - 对象
203
+ * @param path - 路径
204
+ * @returns 是否存在
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * hasPath({ a: { b: 1 } }, 'a.b') // true
209
+ * hasPath({ a: { b: 1 } }, 'a.c') // false
210
+ * ```
211
+ */
212
+ export declare function hasPath(obj: unknown, path: string): boolean;
213
+ //# sourceMappingURL=selector.d.ts.map
package/package.json ADDED
@@ -0,0 +1,155 @@
1
+ {
2
+ "name": "@composy/store-core",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "description": "框架无关的状态管理核心库 - 提供状态管理抽象层、插件系统、中间件机制",
6
+ "author": "ldesign",
7
+ "license": "MIT",
8
+ "keywords": [
9
+ "state-management",
10
+ "store",
11
+ "typescript",
12
+ "framework-agnostic",
13
+ "reactive",
14
+ "plugin",
15
+ "middleware"
16
+ ],
17
+ "sideEffects": false,
18
+ "exports": {
19
+ ".": {
20
+ "types": "./es/index.d.ts",
21
+ "import": "./es/index.js",
22
+ "require": "./lib/index.cjs",
23
+ "default": "./es/index.js"
24
+ },
25
+ "./core": {
26
+ "types": "./es/core/index.d.ts",
27
+ "import": "./es/core/index.js",
28
+ "require": "./lib/core/index.cjs",
29
+ "default": "./es/core/index.js"
30
+ },
31
+ "./core/*": {
32
+ "types": "./es/core/*.d.ts",
33
+ "import": "./es/core/*.js",
34
+ "require": "./lib/core/*.cjs",
35
+ "default": "./es/core/*.js"
36
+ },
37
+ "./engine": {
38
+ "types": "./es/engine/index.d.ts",
39
+ "import": "./es/engine/index.js",
40
+ "require": "./lib/engine/index.cjs",
41
+ "default": "./es/engine/index.js"
42
+ },
43
+ "./engine/*": {
44
+ "types": "./es/engine/*.d.ts",
45
+ "import": "./es/engine/*.js",
46
+ "require": "./lib/engine/*.cjs",
47
+ "default": "./es/engine/*.js"
48
+ },
49
+ "./errors": {
50
+ "types": "./es/errors/index.d.ts",
51
+ "import": "./es/errors/index.js",
52
+ "require": "./lib/errors/index.cjs",
53
+ "default": "./es/errors/index.js"
54
+ },
55
+ "./errors/*": {
56
+ "types": "./es/errors/*.d.ts",
57
+ "import": "./es/errors/*.js",
58
+ "require": "./lib/errors/*.cjs",
59
+ "default": "./es/errors/*.js"
60
+ },
61
+ "./middleware": {
62
+ "types": "./es/middleware/index.d.ts",
63
+ "import": "./es/middleware/index.js",
64
+ "require": "./lib/middleware/index.cjs",
65
+ "default": "./es/middleware/index.js"
66
+ },
67
+ "./middleware/*": {
68
+ "types": "./es/middleware/*.d.ts",
69
+ "import": "./es/middleware/*.js",
70
+ "require": "./lib/middleware/*.cjs",
71
+ "default": "./es/middleware/*.js"
72
+ },
73
+ "./plugins": {
74
+ "types": "./es/plugins/index.d.ts",
75
+ "import": "./es/plugins/index.js",
76
+ "require": "./lib/plugins/index.cjs",
77
+ "default": "./es/plugins/index.js"
78
+ },
79
+ "./plugins/*": {
80
+ "types": "./es/plugins/*.d.ts",
81
+ "import": "./es/plugins/*.js",
82
+ "require": "./lib/plugins/*.cjs",
83
+ "default": "./es/plugins/*.js"
84
+ },
85
+ "./types": {
86
+ "types": "./es/types/index.d.ts",
87
+ "import": "./es/types/index.js",
88
+ "require": "./lib/types/index.cjs",
89
+ "default": "./es/types/index.js"
90
+ },
91
+ "./types/*": {
92
+ "types": "./es/types/*.d.ts",
93
+ "import": "./es/types/*.js",
94
+ "require": "./lib/types/*.cjs",
95
+ "default": "./es/types/*.js"
96
+ },
97
+ "./utils": {
98
+ "types": "./es/utils/index.d.ts",
99
+ "import": "./es/utils/index.js",
100
+ "require": "./lib/utils/index.cjs",
101
+ "default": "./es/utils/index.js"
102
+ },
103
+ "./utils/*": {
104
+ "types": "./es/utils/*.d.ts",
105
+ "import": "./es/utils/*.js",
106
+ "require": "./lib/utils/*.cjs",
107
+ "default": "./es/utils/*.js"
108
+ },
109
+ "./package.json": "./package.json"
110
+ },
111
+ "main": "./lib/index.cjs",
112
+ "module": "./es/index.js",
113
+ "unpkg": "./dist/index.min.js",
114
+ "jsdelivr": "./dist/index.min.js",
115
+ "types": "./es/index.d.ts",
116
+ "files": [
117
+ "CHANGELOG.md",
118
+ "LICENSE",
119
+ "README.md",
120
+ "dist",
121
+ "es",
122
+ "esm",
123
+ "lib"
124
+ ],
125
+ "scripts": {
126
+ "build": "ldesign-builder build",
127
+ "build:watch": "ldesign-builder build --watch",
128
+ "clean": "rimraf es esm lib dist",
129
+ "dev": "ldesign-builder build --watch",
130
+ "lint": "eslint . --fix",
131
+ "lint:check": "eslint .",
132
+ "lint:fix": "eslint . --fix",
133
+ "test": "ltesting run:unit",
134
+ "test:coverage": "ltesting run:unit --coverage",
135
+ "test:run": "ltesting run:unit",
136
+ "type-check": "tsc --noEmit",
137
+ "test:watch": "ltesting run:unit --watch",
138
+ "test:changed": "ltesting run:unit --changed",
139
+ "test:failed": "ltesting run:unit --failed",
140
+ "test:ui": "ltesting dashboard"
141
+ },
142
+ "dependencies": {
143
+ "tslib": "^2.8.1"
144
+ },
145
+ "devDependencies": {
146
+ "@antfu/eslint-config": "9.1.0",
147
+ "@composy/builder": "^0.0.1",
148
+ "@composy/testing": "^0.0.1",
149
+ "@types/node": "26.1.1",
150
+ "eslint": "10.7.0",
151
+ "typescript": "5.9.3"
152
+ },
153
+ "typings": "./es/index.d.ts",
154
+ "browser": "./dist/index.js"
155
+ }