@qimen-lab/core 0.1.3 → 0.1.5

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 (789) hide show
  1. package/dist/async/package.json +1 -1
  2. package/dist/cache/package.json +3 -3
  3. package/dist/cache/types/cache.esm.js +2 -0
  4. package/dist/cache/types/cache.esm.js.map +1 -0
  5. package/dist/cache/types/index.esm.js +5 -0
  6. package/dist/cache/types/index.esm.js.map +1 -0
  7. package/dist/composable/ComposableBase.d.ts +1 -1
  8. package/dist/composable/ComposableBase.esm.js +1 -1
  9. package/dist/composable/ComposableBase.js +1 -1
  10. package/dist/composable/package.json +3 -3
  11. package/dist/composable/types/composable.esm.js +5 -0
  12. package/dist/composable/types/composable.esm.js.map +1 -0
  13. package/dist/context/base/BaseContext.esm.js +120 -0
  14. package/dist/context/base/BaseContext.esm.js.map +1 -0
  15. package/dist/context/base/ExecutionStep.esm.js +9 -0
  16. package/dist/context/base/ExecutionStep.esm.js.map +1 -0
  17. package/dist/context/base/index.esm.js +7 -0
  18. package/dist/context/base/index.esm.js.map +1 -0
  19. package/dist/context/package.json +2 -2
  20. package/dist/context/types/index.esm.js +5 -0
  21. package/dist/context/types/index.esm.js.map +1 -0
  22. package/dist/context/types/request-context.esm.js +10 -0
  23. package/dist/context/types/request-context.esm.js.map +1 -0
  24. package/dist/crypto/package.json +1 -1
  25. package/dist/data-processor/DataProcessorRegistrar.d.ts +1 -1
  26. package/dist/data-processor/DataProcessorRegistrar.esm.js +1 -1
  27. package/dist/data-processor/DataProcessorRegistrar.js +1 -1
  28. package/dist/data-processor/errors/index.esm.js +57 -0
  29. package/dist/data-processor/errors/index.esm.js.map +1 -0
  30. package/dist/data-processor/executor.d.ts +3 -3
  31. package/dist/data-processor/executor.esm.js +1 -1
  32. package/dist/data-processor/executor.js +1 -1
  33. package/dist/data-processor/package.json +4 -4
  34. package/dist/data-processor-abp/package.json +3 -3
  35. package/dist/data-processor-abp/post.d.ts +1 -1
  36. package/dist/data-processor-abp/post.esm.js +1 -1
  37. package/dist/data-processor-abp/post.js +1 -1
  38. package/dist/data-processor-abp/pre.d.ts +1 -1
  39. package/dist/data-processor-abp/pre.esm.js +1 -1
  40. package/dist/data-processor-abp/pre.js +1 -1
  41. package/dist/data-processor-abp/register.esm.js +1 -1
  42. package/dist/data-processor-abp/register.js +1 -1
  43. package/dist/data-processor-spring/package.json +3 -3
  44. package/dist/data-processor-spring/post.d.ts +1 -1
  45. package/dist/data-processor-spring/post.esm.js +1 -1
  46. package/dist/data-processor-spring/post.js +1 -1
  47. package/dist/data-processor-spring/pre.d.ts +1 -1
  48. package/dist/data-processor-spring/pre.esm.js +1 -1
  49. package/dist/data-processor-spring/pre.js +1 -1
  50. package/dist/data-processor-spring/register.esm.js +1 -1
  51. package/dist/data-processor-spring/register.js +1 -1
  52. package/dist/entity/abilities/SchemaAbility.d.ts +1 -1
  53. package/dist/entity/abilities/SchemaAbility.esm.js +85 -0
  54. package/dist/entity/abilities/SchemaAbility.esm.js.map +1 -0
  55. package/dist/entity/abilities/SchemaAbility.js +1 -1
  56. package/dist/entity/abilities/core/CacheAbility.d.ts +1 -1
  57. package/dist/entity/abilities/core/CacheAbility.esm.js +77 -0
  58. package/dist/entity/abilities/core/CacheAbility.esm.js.map +1 -0
  59. package/dist/entity/abilities/core/CacheAbility.js +1 -1
  60. package/dist/entity/abilities/core/DirtyAbility.d.ts +1 -1
  61. package/dist/entity/abilities/core/DirtyAbility.esm.js +58 -0
  62. package/dist/entity/abilities/core/DirtyAbility.esm.js.map +1 -0
  63. package/dist/entity/abilities/core/SchemaProxyAbility.d.ts +1 -1
  64. package/dist/entity/abilities/core/SchemaProxyAbility.esm.js +99 -0
  65. package/dist/entity/abilities/core/SchemaProxyAbility.esm.js.map +1 -0
  66. package/dist/entity/abilities/core/index.esm.js +4 -0
  67. package/dist/entity/abilities/core/index.esm.js.map +1 -0
  68. package/dist/entity/abilities/index.esm.js +8 -0
  69. package/dist/entity/abilities/index.esm.js.map +1 -0
  70. package/dist/entity/abilities/local/FlatLocalDeleteAbility.d.ts +1 -1
  71. package/dist/entity/abilities/local/FlatLocalDeleteAbility.esm.js +27 -0
  72. package/dist/entity/abilities/local/FlatLocalDeleteAbility.esm.js.map +1 -0
  73. package/dist/entity/abilities/local/FlatLocalMutationAbility.d.ts +1 -1
  74. package/dist/entity/abilities/local/FlatLocalMutationAbility.esm.js +53 -0
  75. package/dist/entity/abilities/local/FlatLocalMutationAbility.esm.js.map +1 -0
  76. package/dist/entity/abilities/local/FlatLocalStateAbility.d.ts +1 -1
  77. package/dist/entity/abilities/local/FlatLocalStateAbility.esm.js +489 -0
  78. package/dist/entity/abilities/local/FlatLocalStateAbility.esm.js.map +1 -0
  79. package/dist/entity/abilities/local/FlatLocalStateAbility.js +1 -1
  80. package/dist/entity/abilities/local/LocalGetAbility.d.ts +1 -1
  81. package/dist/entity/abilities/local/LocalGetAbility.esm.js +23 -0
  82. package/dist/entity/abilities/local/LocalGetAbility.esm.js.map +1 -0
  83. package/dist/entity/abilities/local/LocalListAbility.d.ts +1 -1
  84. package/dist/entity/abilities/local/LocalListAbility.esm.js +29 -0
  85. package/dist/entity/abilities/local/LocalListAbility.esm.js.map +1 -0
  86. package/dist/entity/abilities/local/index.esm.js +6 -0
  87. package/dist/entity/abilities/local/index.esm.js.map +1 -0
  88. package/dist/entity/abilities/mutation/LocalMutationAbility.d.ts +1 -1
  89. package/dist/entity/abilities/mutation/LocalMutationAbility.esm.js +164 -0
  90. package/dist/entity/abilities/mutation/LocalMutationAbility.esm.js.map +1 -0
  91. package/dist/entity/abilities/mutation/index.esm.js +2 -0
  92. package/dist/entity/abilities/mutation/index.esm.js.map +1 -0
  93. package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.d.ts +1 -1
  94. package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.esm.js +20 -0
  95. package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.esm.js.map +1 -0
  96. package/dist/entity/abilities/remote/FlatRemoteListAbility.d.ts +1 -1
  97. package/dist/entity/abilities/remote/FlatRemoteListAbility.esm.js +47 -0
  98. package/dist/entity/abilities/remote/FlatRemoteListAbility.esm.js.map +1 -0
  99. package/dist/entity/abilities/remote/FlatRemoteQueryAbility.d.ts +1 -1
  100. package/dist/entity/abilities/remote/FlatRemoteQueryAbility.esm.js +70 -0
  101. package/dist/entity/abilities/remote/FlatRemoteQueryAbility.esm.js.map +1 -0
  102. package/dist/entity/abilities/remote/FlatRemoteQueryAbility.js +1 -1
  103. package/dist/entity/abilities/remote/FlatRemoteStateAbility.d.ts +1 -1
  104. package/dist/entity/abilities/remote/FlatRemoteStateAbility.esm.js +78 -0
  105. package/dist/entity/abilities/remote/FlatRemoteStateAbility.esm.js.map +1 -0
  106. package/dist/entity/abilities/remote/RemoteCreateAbility.d.ts +1 -1
  107. package/dist/entity/abilities/remote/RemoteCreateAbility.esm.js +33 -0
  108. package/dist/entity/abilities/remote/RemoteCreateAbility.esm.js.map +1 -0
  109. package/dist/entity/abilities/remote/RemoteCreateAbility.js +1 -1
  110. package/dist/entity/abilities/remote/RemoteDeleteAbility.d.ts +1 -1
  111. package/dist/entity/abilities/remote/RemoteDeleteAbility.esm.js +34 -0
  112. package/dist/entity/abilities/remote/RemoteDeleteAbility.esm.js.map +1 -0
  113. package/dist/entity/abilities/remote/RemoteDeleteAbility.js +1 -1
  114. package/dist/entity/abilities/remote/RemoteGetAbility.d.ts +1 -1
  115. package/dist/entity/abilities/remote/RemoteGetAbility.esm.js +23 -0
  116. package/dist/entity/abilities/remote/RemoteGetAbility.esm.js.map +1 -0
  117. package/dist/entity/abilities/remote/RemoteToggleAbility.d.ts +1 -1
  118. package/dist/entity/abilities/remote/RemoteToggleAbility.esm.js +40 -0
  119. package/dist/entity/abilities/remote/RemoteToggleAbility.esm.js.map +1 -0
  120. package/dist/entity/abilities/remote/RemoteUpdateAbility.d.ts +1 -1
  121. package/dist/entity/abilities/remote/RemoteUpdateAbility.esm.js +34 -0
  122. package/dist/entity/abilities/remote/RemoteUpdateAbility.esm.js.map +1 -0
  123. package/dist/entity/abilities/remote/RemoteUpdateAbility.js +1 -1
  124. package/dist/entity/abilities/remote/TreeManagerAbility.d.ts +1 -1
  125. package/dist/entity/abilities/remote/TreeManagerAbility.esm.js +69 -0
  126. package/dist/entity/abilities/remote/TreeManagerAbility.esm.js.map +1 -0
  127. package/dist/entity/abilities/remote/TreeRemoteStateAbility.d.ts +1 -1
  128. package/dist/entity/abilities/remote/TreeRemoteStateAbility.esm.js +33 -0
  129. package/dist/entity/abilities/remote/TreeRemoteStateAbility.esm.js.map +1 -0
  130. package/dist/entity/abilities/remote/index.esm.js +12 -0
  131. package/dist/entity/abilities/remote/index.esm.js.map +1 -0
  132. package/dist/entity/abilities/search/SearchAbility.d.ts +1 -1
  133. package/dist/entity/abilities/search/SearchAbility.esm.js +67 -0
  134. package/dist/entity/abilities/search/SearchAbility.esm.js.map +1 -0
  135. package/dist/entity/abilities/search/index.esm.js +2 -0
  136. package/dist/entity/abilities/search/index.esm.js.map +1 -0
  137. package/dist/entity/abilities/tree/TreeLifecycleAbility.d.ts +1 -1
  138. package/dist/entity/abilities/tree/TreeLifecycleAbility.esm.js +85 -0
  139. package/dist/entity/abilities/tree/TreeLifecycleAbility.esm.js.map +1 -0
  140. package/dist/entity/abilities/tree/TreePathAbility.d.ts +1 -1
  141. package/dist/entity/abilities/tree/TreePathAbility.esm.js +76 -0
  142. package/dist/entity/abilities/tree/TreePathAbility.esm.js.map +1 -0
  143. package/dist/entity/abilities/tree/TreeSearchAbility.d.ts +1 -1
  144. package/dist/entity/abilities/tree/TreeSearchAbility.esm.js +46 -0
  145. package/dist/entity/abilities/tree/TreeSearchAbility.esm.js.map +1 -0
  146. package/dist/entity/abilities/tree/TreeViewAbility.d.ts +1 -1
  147. package/dist/entity/abilities/tree/TreeViewAbility.esm.js +48 -0
  148. package/dist/entity/abilities/tree/TreeViewAbility.esm.js.map +1 -0
  149. package/dist/entity/abilities/tree/index.esm.js +5 -0
  150. package/dist/entity/abilities/tree/index.esm.js.map +1 -0
  151. package/dist/entity/manager/BaseEntityManager.d.ts +4 -4
  152. package/dist/entity/manager/BaseEntityManager.esm.js +138 -0
  153. package/dist/entity/manager/BaseEntityManager.esm.js.map +1 -0
  154. package/dist/entity/manager/CoreEntityManager.d.ts +7 -7
  155. package/dist/entity/manager/CoreEntityManager.esm.js +147 -0
  156. package/dist/entity/manager/CoreEntityManager.esm.js.map +1 -0
  157. package/dist/entity/manager/CoreEntityManager.js +11 -11
  158. package/dist/entity/manager/index.esm.js +4 -0
  159. package/dist/entity/manager/index.esm.js.map +1 -0
  160. package/dist/entity/manager/managers.d.ts +3 -3
  161. package/dist/entity/manager/managers.esm.js +209 -0
  162. package/dist/entity/manager/managers.esm.js.map +1 -0
  163. package/dist/entity/manager/managers.js +23 -23
  164. package/dist/entity/package.json +11 -11
  165. package/dist/entity/types/index.d.ts +11 -11
  166. package/dist/entity/types/index.esm.js +29 -0
  167. package/dist/entity/types/index.esm.js.map +1 -0
  168. package/dist/entity/types/index.js +2 -2
  169. package/dist/error/package.json +1 -1
  170. package/dist/event-dom/adapters/createEventAdapter.esm.js +28 -0
  171. package/dist/event-dom/adapters/createEventAdapter.esm.js.map +1 -0
  172. package/dist/event-dom/adapters/dom/DomEventAdapter.esm.js +241 -0
  173. package/dist/event-dom/adapters/dom/DomEventAdapter.esm.js.map +1 -0
  174. package/dist/event-dom/adapters/dom/DomEventAdapter.js +3 -3
  175. package/dist/event-dom/adapters/dom/index.esm.js +2 -0
  176. package/dist/event-dom/adapters/dom/index.esm.js.map +1 -0
  177. package/dist/event-dom/adapters/index.esm.js +6 -0
  178. package/dist/event-dom/adapters/index.esm.js.map +1 -0
  179. package/dist/event-dom/adapters/processors/ContextMenuProcessor.esm.js +70 -0
  180. package/dist/event-dom/adapters/processors/ContextMenuProcessor.esm.js.map +1 -0
  181. package/dist/event-dom/adapters/processors/DoubleTapProcessor.esm.js +85 -0
  182. package/dist/event-dom/adapters/processors/DoubleTapProcessor.esm.js.map +1 -0
  183. package/dist/event-dom/adapters/processors/DragProcessor.esm.js +127 -0
  184. package/dist/event-dom/adapters/processors/DragProcessor.esm.js.map +1 -0
  185. package/dist/event-dom/adapters/processors/GestureProcessor.d.ts +1 -1
  186. package/dist/event-dom/adapters/processors/GestureProcessor.esm.js +164 -0
  187. package/dist/event-dom/adapters/processors/GestureProcessor.esm.js.map +1 -0
  188. package/dist/event-dom/adapters/processors/GestureProcessor.js +4 -4
  189. package/dist/event-dom/adapters/processors/HoverProcessor.esm.js +39 -0
  190. package/dist/event-dom/adapters/processors/HoverProcessor.esm.js.map +1 -0
  191. package/dist/event-dom/adapters/processors/LongPressProcessor.esm.js +96 -0
  192. package/dist/event-dom/adapters/processors/LongPressProcessor.esm.js.map +1 -0
  193. package/dist/event-dom/adapters/processors/LongPressProcessor.js +1 -1
  194. package/dist/event-dom/adapters/processors/SubmitProcessor.esm.js +35 -0
  195. package/dist/event-dom/adapters/processors/SubmitProcessor.esm.js.map +1 -0
  196. package/dist/event-dom/adapters/processors/SwipeProcessor.esm.js +72 -0
  197. package/dist/event-dom/adapters/processors/SwipeProcessor.esm.js.map +1 -0
  198. package/dist/event-dom/adapters/processors/TapProcessor.esm.js +60 -0
  199. package/dist/event-dom/adapters/processors/TapProcessor.esm.js.map +1 -0
  200. package/dist/event-dom/adapters/processors/factory.esm.js +58 -0
  201. package/dist/event-dom/adapters/processors/factory.esm.js.map +1 -0
  202. package/dist/event-dom/adapters/processors/factory.js +2 -2
  203. package/dist/event-dom/adapters/processors/index.esm.js +22 -0
  204. package/dist/event-dom/adapters/processors/index.esm.js.map +1 -0
  205. package/dist/event-dom/adapters/semantic-map/base.esm.js +73 -0
  206. package/dist/event-dom/adapters/semantic-map/base.esm.js.map +1 -0
  207. package/dist/event-dom/adapters/semantic-map/gesture.esm.js +95 -0
  208. package/dist/event-dom/adapters/semantic-map/gesture.esm.js.map +1 -0
  209. package/dist/event-dom/adapters/semantic-map/index.esm.js +8 -0
  210. package/dist/event-dom/adapters/semantic-map/index.esm.js.map +1 -0
  211. package/dist/event-dom/adapters/semantic-map/keyboard.esm.js +20 -0
  212. package/dist/event-dom/adapters/semantic-map/keyboard.esm.js.map +1 -0
  213. package/dist/event-dom/adapters/semantic-map/mouse.esm.js +35 -0
  214. package/dist/event-dom/adapters/semantic-map/mouse.esm.js.map +1 -0
  215. package/dist/event-dom/adapters/semantic-map/pointer.esm.js +38 -0
  216. package/dist/event-dom/adapters/semantic-map/pointer.esm.js.map +1 -0
  217. package/dist/event-dom/adapters/semantic-map/resolve.esm.js +49 -0
  218. package/dist/event-dom/adapters/semantic-map/resolve.esm.js.map +1 -0
  219. package/dist/event-dom/adapters/semantic-map/resolve.js +1 -1
  220. package/dist/event-dom/adapters/semantic-map/touch.esm.js +26 -0
  221. package/dist/event-dom/adapters/semantic-map/touch.esm.js.map +1 -0
  222. package/dist/event-dom/adapters/utils/index.esm.js +2 -0
  223. package/dist/event-dom/adapters/utils/index.esm.js.map +1 -0
  224. package/dist/event-dom/adapters/utils/validation.esm.js +67 -0
  225. package/dist/event-dom/adapters/utils/validation.esm.js.map +1 -0
  226. package/dist/event-dom/adapters/utils/validation.js +1 -1
  227. package/dist/event-dom/package.json +7 -7
  228. package/dist/event-dom/types/adapters/base.esm.js +2 -0
  229. package/dist/event-dom/types/adapters/base.esm.js.map +1 -0
  230. package/dist/event-dom/types/adapters/index.esm.js +4 -0
  231. package/dist/event-dom/types/adapters/index.esm.js.map +1 -0
  232. package/dist/event-dom/types/adapters/map.esm.js +5 -0
  233. package/dist/event-dom/types/adapters/map.esm.js.map +1 -0
  234. package/dist/event-dom/types/adapters/processors.esm.js +10 -0
  235. package/dist/event-dom/types/adapters/processors.esm.js.map +1 -0
  236. package/dist/event-dom/types/index.esm.js +10 -0
  237. package/dist/event-dom/types/index.esm.js.map +1 -0
  238. package/dist/events/package.json +3 -3
  239. package/dist/events/types/bus.esm.js +2 -0
  240. package/dist/events/types/bus.esm.js.map +1 -0
  241. package/dist/events/types/core.esm.js +2 -0
  242. package/dist/events/types/core.esm.js.map +1 -0
  243. package/dist/events/types/index.esm.js +9 -0
  244. package/dist/events/types/index.esm.js.map +1 -0
  245. package/dist/events/types/scope.esm.js +2 -0
  246. package/dist/events/types/scope.esm.js.map +1 -0
  247. package/dist/http/actions/align/DownloadInterceptor.esm.js +27 -0
  248. package/dist/http/actions/align/DownloadInterceptor.esm.js.map +1 -0
  249. package/dist/http/actions/align/index.esm.js +2 -0
  250. package/dist/http/actions/align/index.esm.js.map +1 -0
  251. package/dist/http/actions/exchange/FetchTransport.esm.js +56 -0
  252. package/dist/http/actions/exchange/FetchTransport.esm.js.map +1 -0
  253. package/dist/http/actions/exchange/XhrTransport.esm.js +82 -0
  254. package/dist/http/actions/exchange/XhrTransport.esm.js.map +1 -0
  255. package/dist/http/actions/exchange/index.esm.js +3 -0
  256. package/dist/http/actions/exchange/index.esm.js.map +1 -0
  257. package/dist/http/actions/prepare/CommonParamsEnricher.esm.js +29 -0
  258. package/dist/http/actions/prepare/CommonParamsEnricher.esm.js.map +1 -0
  259. package/dist/http/actions/prepare/TokenInjector.esm.js +34 -0
  260. package/dist/http/actions/prepare/TokenInjector.esm.js.map +1 -0
  261. package/dist/http/actions/prepare/UrlBuilder.esm.js +38 -0
  262. package/dist/http/actions/prepare/UrlBuilder.esm.js.map +1 -0
  263. package/dist/http/actions/prepare/index.esm.js +4 -0
  264. package/dist/http/actions/prepare/index.esm.js.map +1 -0
  265. package/dist/http/actions/process/DataParser.esm.js +39 -0
  266. package/dist/http/actions/process/DataParser.esm.js.map +1 -0
  267. package/dist/http/actions/process/ResponseAnalyzer.esm.js +40 -0
  268. package/dist/http/actions/process/ResponseAnalyzer.esm.js.map +1 -0
  269. package/dist/http/actions/process/index.esm.js +3 -0
  270. package/dist/http/actions/process/index.esm.js.map +1 -0
  271. package/dist/http/actions/register.esm.js +89 -0
  272. package/dist/http/actions/register.esm.js.map +1 -0
  273. package/dist/http/package.json +5 -5
  274. package/dist/http/types/http-context.esm.js +7 -0
  275. package/dist/http/types/http-context.esm.js.map +1 -0
  276. package/dist/http/types/http.esm.js +2 -0
  277. package/dist/http/types/http.esm.js.map +1 -0
  278. package/dist/http/types/index.esm.js +5 -0
  279. package/dist/http/types/index.esm.js.map +1 -0
  280. package/dist/i18n/package.json +1 -1
  281. package/dist/i18n/types/index.esm.js +5 -0
  282. package/dist/i18n/types/index.esm.js.map +1 -0
  283. package/dist/logger/package.json +1 -1
  284. package/dist/logger/sinks/console.esm.js +37 -0
  285. package/dist/logger/sinks/console.esm.js.map +1 -0
  286. package/dist/mime/package.json +2 -2
  287. package/dist/oauth2/OAuth2Manager.esm.js +1 -1
  288. package/dist/oauth2/OAuth2Manager.js +1 -1
  289. package/dist/oauth2/TokenRefreshHandler.d.ts +1 -1
  290. package/dist/oauth2/TokenRefreshHandler.esm.js +1 -1
  291. package/dist/oauth2/TokenRefreshHandler.js +1 -1
  292. package/dist/oauth2/package.json +5 -5
  293. package/dist/oauth2/register.esm.js +1 -1
  294. package/dist/oauth2/register.js +1 -1
  295. package/dist/pattern/package.json +2 -2
  296. package/dist/pipeline/executor.esm.js +1 -1
  297. package/dist/pipeline/executor.js +1 -1
  298. package/dist/pipeline/package.json +3 -3
  299. package/dist/pipeline/types.d.ts +1 -1
  300. package/dist/registry/package.json +2 -2
  301. package/dist/registry/registrars/DomainRegistrar.esm.js +116 -0
  302. package/dist/registry/registrars/DomainRegistrar.esm.js.map +1 -0
  303. package/dist/registry/registrars/HtmlTemplateRegistrar.esm.js +56 -0
  304. package/dist/registry/registrars/HtmlTemplateRegistrar.esm.js.map +1 -0
  305. package/dist/registry/registrars/RegistrarBase.esm.js +88 -0
  306. package/dist/registry/registrars/RegistrarBase.esm.js.map +1 -0
  307. package/dist/registry/registrars/SystemRegistrar.esm.js +101 -0
  308. package/dist/registry/registrars/SystemRegistrar.esm.js.map +1 -0
  309. package/dist/registry/registrars/errors.esm.js +122 -0
  310. package/dist/registry/registrars/errors.esm.js.map +1 -0
  311. package/dist/registry/registrars/index.esm.js +6 -0
  312. package/dist/registry/registrars/index.esm.js.map +1 -0
  313. package/dist/runtime/package.json +1 -1
  314. package/dist/schema/package.json +2 -2
  315. package/dist/schema/types/index.esm.js +8 -0
  316. package/dist/schema/types/index.esm.js.map +1 -0
  317. package/dist/schema/types/rule.esm.js +32 -0
  318. package/dist/schema/types/rule.esm.js.map +1 -0
  319. package/dist/schema/types/schema.esm.js +2 -0
  320. package/dist/schema/types/schema.esm.js.map +1 -0
  321. package/dist/system-abilities/interfaces/index.d.ts +1 -1
  322. package/dist/system-abilities/interfaces/index.esm.js +7 -0
  323. package/dist/system-abilities/interfaces/index.esm.js.map +1 -0
  324. package/dist/system-abilities/package.json +5 -5
  325. package/dist/system-abilities/system/DomEventsAbility.d.ts +1 -1
  326. package/dist/system-abilities/system/DomEventsAbility.esm.js +17 -0
  327. package/dist/system-abilities/system/DomEventsAbility.esm.js.map +1 -0
  328. package/dist/system-abilities/system/DomEventsAbility.js +1 -1
  329. package/dist/system-abilities/system/DomainAbility.d.ts +1 -1
  330. package/dist/system-abilities/system/DomainAbility.esm.js +30 -0
  331. package/dist/system-abilities/system/DomainAbility.esm.js.map +1 -0
  332. package/dist/system-abilities/system/DomainAbility.js +1 -1
  333. package/dist/system-abilities/system/EventAbility.d.ts +1 -1
  334. package/dist/system-abilities/system/EventAbility.esm.js +42 -0
  335. package/dist/system-abilities/system/EventAbility.esm.js.map +1 -0
  336. package/dist/system-abilities/system/EventAbility.js +1 -1
  337. package/dist/system-abilities/system/SystemAbility.d.ts +1 -1
  338. package/dist/system-abilities/system/SystemAbility.esm.js +22 -0
  339. package/dist/system-abilities/system/SystemAbility.esm.js.map +1 -0
  340. package/dist/system-abilities/system/SystemAbility.js +1 -1
  341. package/dist/system-abilities/system/index.esm.js +5 -0
  342. package/dist/system-abilities/system/index.esm.js.map +1 -0
  343. package/dist/system-abilities/types/abilities.esm.js +8 -0
  344. package/dist/system-abilities/types/abilities.esm.js.map +1 -0
  345. package/dist/system-abilities/types/index.esm.js +2 -0
  346. package/dist/system-abilities/types/index.esm.js.map +1 -0
  347. package/dist/task/errors/WorkerError.esm.js +21 -0
  348. package/dist/task/errors/WorkerError.esm.js.map +1 -0
  349. package/dist/task/errors/WorkerInitializationError.esm.js +33 -0
  350. package/dist/task/errors/WorkerInitializationError.esm.js.map +1 -0
  351. package/dist/task/errors/index.esm.js +8 -0
  352. package/dist/task/errors/index.esm.js.map +1 -0
  353. package/dist/task/hash-task/chunk/BrowserFileChunkProvider.esm.js +56 -0
  354. package/dist/task/hash-task/chunk/BrowserFileChunkProvider.esm.js.map +1 -0
  355. package/dist/task/hash-task/chunk/FileChunkProvider.esm.js +85 -0
  356. package/dist/task/hash-task/chunk/FileChunkProvider.esm.js.map +1 -0
  357. package/dist/task/hash-task/chunk/StreamChunkProvider.esm.js +55 -0
  358. package/dist/task/hash-task/chunk/StreamChunkProvider.esm.js.map +1 -0
  359. package/dist/task/hash-task/chunk/index.esm.js +4 -0
  360. package/dist/task/hash-task/chunk/index.esm.js.map +1 -0
  361. package/dist/task/hash-task/errors/ResourceNotAcquiredError.esm.js +21 -0
  362. package/dist/task/hash-task/errors/ResourceNotAcquiredError.esm.js.map +1 -0
  363. package/dist/task/hash-task/errors/ResourceUnavailableError.esm.js +21 -0
  364. package/dist/task/hash-task/errors/ResourceUnavailableError.esm.js.map +1 -0
  365. package/dist/task/hash-task/errors/TaskStateError.esm.js +22 -0
  366. package/dist/task/hash-task/errors/TaskStateError.esm.js.map +1 -0
  367. package/dist/task/hash-task/errors/index.esm.js +4 -0
  368. package/dist/task/hash-task/errors/index.esm.js.map +1 -0
  369. package/dist/task/hash-task/factory.esm.js +50 -0
  370. package/dist/task/hash-task/factory.esm.js.map +1 -0
  371. package/dist/task/hash-task/factory.js +1 -1
  372. package/dist/task/hash-task/hash/HashTask.d.ts +1 -1
  373. package/dist/task/hash-task/hash/HashTask.esm.js +148 -0
  374. package/dist/task/hash-task/hash/HashTask.esm.js.map +1 -0
  375. package/dist/task/hash-task/hash/HashTaskHealthMonitor.esm.js +129 -0
  376. package/dist/task/hash-task/hash/HashTaskHealthMonitor.esm.js.map +1 -0
  377. package/dist/task/hash-task/hash/HashTaskProgress.esm.js +58 -0
  378. package/dist/task/hash-task/hash/HashTaskProgress.esm.js.map +1 -0
  379. package/dist/task/hash-task/hash/HashTaskResources.esm.js +158 -0
  380. package/dist/task/hash-task/hash/HashTaskResources.esm.js.map +1 -0
  381. package/dist/task/hash-task/hash/HashTaskRunner.esm.js +234 -0
  382. package/dist/task/hash-task/hash/HashTaskRunner.esm.js.map +1 -0
  383. package/dist/task/hash-task/hash/HashTaskState.esm.js +203 -0
  384. package/dist/task/hash-task/hash/HashTaskState.esm.js.map +1 -0
  385. package/dist/task/hash-task/hash/index.esm.js +13 -0
  386. package/dist/task/hash-task/hash/index.esm.js.map +1 -0
  387. package/dist/task/hash-task/index.esm.js +13 -0
  388. package/dist/task/hash-task/index.esm.js.map +1 -0
  389. package/dist/task/hash-task/types/algorithm.esm.js +2 -0
  390. package/dist/task/hash-task/types/algorithm.esm.js.map +1 -0
  391. package/dist/task/hash-task/types/chunk.esm.js +2 -0
  392. package/dist/task/hash-task/types/chunk.esm.js.map +1 -0
  393. package/dist/task/hash-task/types/index.esm.js +5 -0
  394. package/dist/task/hash-task/types/index.esm.js.map +1 -0
  395. package/dist/task/hash-task/types/task.esm.js +2 -0
  396. package/dist/task/hash-task/types/task.esm.js.map +1 -0
  397. package/dist/task/hash-task/types/worker.esm.js +2 -0
  398. package/dist/task/hash-task/types/worker.esm.js.map +1 -0
  399. package/dist/task/hash-task/worker/BrowserWorkerHandle.esm.js +71 -0
  400. package/dist/task/hash-task/worker/BrowserWorkerHandle.esm.js.map +1 -0
  401. package/dist/task/hash-task/worker/BrowserWorkerPool.esm.js +24 -0
  402. package/dist/task/hash-task/worker/BrowserWorkerPool.esm.js.map +1 -0
  403. package/dist/task/hash-task/worker/DefaultWorkerHandle.esm.js +93 -0
  404. package/dist/task/hash-task/worker/DefaultWorkerHandle.esm.js.map +1 -0
  405. package/dist/task/hash-task/worker/DefaultWorkerPool.esm.js +96 -0
  406. package/dist/task/hash-task/worker/DefaultWorkerPool.esm.js.map +1 -0
  407. package/dist/task/hash-task/worker/HashWorker.esm.js +99 -0
  408. package/dist/task/hash-task/worker/HashWorker.esm.js.map +1 -0
  409. package/dist/task/hash-task/worker/HashWorkerProtocol.esm.js +2 -0
  410. package/dist/task/hash-task/worker/HashWorkerProtocol.esm.js.map +1 -0
  411. package/dist/task/hash-task/worker/WorkerHandle.esm.js +2 -0
  412. package/dist/task/hash-task/worker/WorkerHandle.esm.js.map +1 -0
  413. package/dist/task/hash-task/worker/WorkerPool.esm.js +2 -0
  414. package/dist/task/hash-task/worker/WorkerPool.esm.js.map +1 -0
  415. package/dist/task/hash-task/worker/WorkerScriptBuilder.esm.js +70 -0
  416. package/dist/task/hash-task/worker/WorkerScriptBuilder.esm.js.map +1 -0
  417. package/dist/task/hash-task/worker/index.esm.js +23 -0
  418. package/dist/task/hash-task/worker/index.esm.js.map +1 -0
  419. package/dist/task/package.json +5 -5
  420. package/dist/task/task/TaskQueue.esm.js +176 -0
  421. package/dist/task/task/TaskQueue.esm.js.map +1 -0
  422. package/dist/task/task/index.esm.js +8 -0
  423. package/dist/task/task/index.esm.js.map +1 -0
  424. package/dist/task/task/types.esm.js +2 -0
  425. package/dist/task/task/types.esm.js.map +1 -0
  426. package/dist/task/worker/SimpleWorkerManager.esm.js +57 -0
  427. package/dist/task/worker/SimpleWorkerManager.esm.js.map +1 -0
  428. package/dist/task/worker/WorkerManagerBase.esm.js +87 -0
  429. package/dist/task/worker/WorkerManagerBase.esm.js.map +1 -0
  430. package/dist/task/worker/index.esm.js +9 -0
  431. package/dist/task/worker/index.esm.js.map +1 -0
  432. package/dist/task/worker/types.esm.js +2 -0
  433. package/dist/task/worker/types.esm.js.map +1 -0
  434. package/dist/types/package.json +1 -1
  435. package/dist/utils/array/base/duplicates.esm.js +36 -0
  436. package/dist/utils/array/base/duplicates.esm.js.map +1 -0
  437. package/dist/utils/array/base/index.esm.js +3 -0
  438. package/dist/utils/array/base/index.esm.js.map +1 -0
  439. package/dist/utils/array/base/transform.esm.js +40 -0
  440. package/dist/utils/array/base/transform.esm.js.map +1 -0
  441. package/dist/utils/array/collection/chunk.esm.js +19 -0
  442. package/dist/utils/array/collection/chunk.esm.js.map +1 -0
  443. package/dist/utils/array/collection/flatten.esm.js +31 -0
  444. package/dist/utils/array/collection/flatten.esm.js.map +1 -0
  445. package/dist/utils/array/collection/groupBy.esm.js +34 -0
  446. package/dist/utils/array/collection/groupBy.esm.js.map +1 -0
  447. package/dist/utils/array/collection/index.esm.js +4 -0
  448. package/dist/utils/array/collection/index.esm.js.map +1 -0
  449. package/dist/utils/array/index.esm.js +7 -0
  450. package/dist/utils/array/index.esm.js.map +1 -0
  451. package/dist/utils/array/random/index.esm.js +3 -0
  452. package/dist/utils/array/random/index.esm.js.map +1 -0
  453. package/dist/utils/array/random/sample.esm.js +29 -0
  454. package/dist/utils/array/random/sample.esm.js.map +1 -0
  455. package/dist/utils/array/random/shuffle.esm.js +19 -0
  456. package/dist/utils/array/random/shuffle.esm.js.map +1 -0
  457. package/dist/utils/array/search/find.esm.js +26 -0
  458. package/dist/utils/array/search/find.esm.js.map +1 -0
  459. package/dist/utils/array/search/includes.esm.js +21 -0
  460. package/dist/utils/array/search/includes.esm.js.map +1 -0
  461. package/dist/utils/array/search/index.esm.js +3 -0
  462. package/dist/utils/array/search/index.esm.js.map +1 -0
  463. package/dist/utils/array/set/difference.esm.js +106 -0
  464. package/dist/utils/array/set/difference.esm.js.map +1 -0
  465. package/dist/utils/array/set/index.esm.js +4 -0
  466. package/dist/utils/array/set/index.esm.js.map +1 -0
  467. package/dist/utils/array/set/intersection.esm.js +31 -0
  468. package/dist/utils/array/set/intersection.esm.js.map +1 -0
  469. package/dist/utils/array/set/union.esm.js +35 -0
  470. package/dist/utils/array/set/union.esm.js.map +1 -0
  471. package/dist/utils/array/sort/index.esm.js +3 -0
  472. package/dist/utils/array/sort/index.esm.js.map +1 -0
  473. package/dist/utils/array/sort/sort.esm.js +84 -0
  474. package/dist/utils/array/sort/sort.esm.js.map +1 -0
  475. package/dist/utils/array/sort/tree.esm.js +67 -0
  476. package/dist/utils/array/sort/tree.esm.js.map +1 -0
  477. package/dist/utils/color/generateColorShades.esm.js +23 -0
  478. package/dist/utils/color/generateColorShades.esm.js.map +1 -0
  479. package/dist/utils/color/hexToHsl.esm.js +43 -0
  480. package/dist/utils/color/hexToHsl.esm.js.map +1 -0
  481. package/dist/utils/color/hexToRgb.esm.js +22 -0
  482. package/dist/utils/color/hexToRgb.esm.js.map +1 -0
  483. package/dist/utils/color/hslToHex.esm.js +23 -0
  484. package/dist/utils/color/hslToHex.esm.js.map +1 -0
  485. package/dist/utils/color/hslToRgb.esm.js +39 -0
  486. package/dist/utils/color/hslToRgb.esm.js.map +1 -0
  487. package/dist/utils/color/index.esm.js +8 -0
  488. package/dist/utils/color/index.esm.js.map +1 -0
  489. package/dist/utils/color/rgbToHex.esm.js +15 -0
  490. package/dist/utils/color/rgbToHex.esm.js.map +1 -0
  491. package/dist/utils/color/rgbToHsl.esm.js +62 -0
  492. package/dist/utils/color/rgbToHsl.esm.js.map +1 -0
  493. package/dist/utils/cookie/get.esm.js +11 -0
  494. package/dist/utils/cookie/get.esm.js.map +1 -0
  495. package/dist/utils/cookie/getAll.esm.js +19 -0
  496. package/dist/utils/cookie/getAll.esm.js.map +1 -0
  497. package/dist/utils/cookie/getBoolean.esm.js +17 -0
  498. package/dist/utils/cookie/getBoolean.esm.js.map +1 -0
  499. package/dist/utils/cookie/getNumber.esm.js +17 -0
  500. package/dist/utils/cookie/getNumber.esm.js.map +1 -0
  501. package/dist/utils/cookie/has.esm.js +13 -0
  502. package/dist/utils/cookie/has.esm.js.map +1 -0
  503. package/dist/utils/cookie/index.esm.js +9 -0
  504. package/dist/utils/cookie/index.esm.js.map +1 -0
  505. package/dist/utils/cookie/remove.esm.js +22 -0
  506. package/dist/utils/cookie/remove.esm.js.map +1 -0
  507. package/dist/utils/cookie/set.esm.js +54 -0
  508. package/dist/utils/cookie/set.esm.js.map +1 -0
  509. package/dist/utils/cookie/setJson.esm.js +17 -0
  510. package/dist/utils/cookie/setJson.esm.js.map +1 -0
  511. package/dist/utils/date/calculation/days.esm.js +70 -0
  512. package/dist/utils/date/calculation/days.esm.js.map +1 -0
  513. package/dist/utils/date/calculation/index.esm.js +9 -0
  514. package/dist/utils/date/calculation/index.esm.js.map +1 -0
  515. package/dist/utils/date/calculation/months.esm.js +42 -0
  516. package/dist/utils/date/calculation/months.esm.js.map +1 -0
  517. package/dist/utils/date/calculation/quarters.esm.js +10 -0
  518. package/dist/utils/date/calculation/quarters.esm.js.map +1 -0
  519. package/dist/utils/date/calculation/years.esm.js +52 -0
  520. package/dist/utils/date/calculation/years.esm.js.map +1 -0
  521. package/dist/utils/date/calendar.esm.js +95 -0
  522. package/dist/utils/date/calendar.esm.js.map +1 -0
  523. package/dist/utils/date/format.esm.js +171 -0
  524. package/dist/utils/date/format.esm.js.map +1 -0
  525. package/dist/utils/date/index.esm.js +9 -0
  526. package/dist/utils/date/index.esm.js.map +1 -0
  527. package/dist/utils/date/utils.esm.js +113 -0
  528. package/dist/utils/date/utils.esm.js.map +1 -0
  529. package/dist/utils/geometry/align.esm.js +95 -0
  530. package/dist/utils/geometry/align.esm.js.map +1 -0
  531. package/dist/utils/geometry/clamp.esm.js +26 -0
  532. package/dist/utils/geometry/clamp.esm.js.map +1 -0
  533. package/dist/utils/geometry/index.esm.js +9 -0
  534. package/dist/utils/geometry/index.esm.js.map +1 -0
  535. package/dist/utils/geometry/point.esm.js +50 -0
  536. package/dist/utils/geometry/point.esm.js.map +1 -0
  537. package/dist/utils/geometry/rect.esm.js +21 -0
  538. package/dist/utils/geometry/rect.esm.js.map +1 -0
  539. package/dist/utils/geometry/snap.esm.js +28 -0
  540. package/dist/utils/geometry/snap.esm.js.map +1 -0
  541. package/dist/utils/geometry/transform/apply.esm.js +36 -0
  542. package/dist/utils/geometry/transform/apply.esm.js.map +1 -0
  543. package/dist/utils/geometry/transform/index.esm.js +6 -0
  544. package/dist/utils/geometry/transform/index.esm.js.map +1 -0
  545. package/dist/utils/geometry/transform/matrix.esm.js +24 -0
  546. package/dist/utils/geometry/transform/matrix.esm.js.map +1 -0
  547. package/dist/utils/geometry/transform/rotate.esm.js +8 -0
  548. package/dist/utils/geometry/transform/rotate.esm.js.map +1 -0
  549. package/dist/utils/geometry/transform/scale.esm.js +6 -0
  550. package/dist/utils/geometry/transform/scale.esm.js.map +1 -0
  551. package/dist/utils/geometry/transform/translate.esm.js +4 -0
  552. package/dist/utils/geometry/transform/translate.esm.js.map +1 -0
  553. package/dist/utils/geometry/types.esm.js +2 -0
  554. package/dist/utils/geometry/types.esm.js.map +1 -0
  555. package/dist/utils/geometry/vector.esm.js +28 -0
  556. package/dist/utils/geometry/vector.esm.js.map +1 -0
  557. package/dist/utils/number/base.esm.js +25 -0
  558. package/dist/utils/number/base.esm.js.map +1 -0
  559. package/dist/utils/number/format.esm.js +87 -0
  560. package/dist/utils/number/format.esm.js.map +1 -0
  561. package/dist/utils/number/index.esm.js +3 -0
  562. package/dist/utils/number/index.esm.js.map +1 -0
  563. package/dist/utils/object/base.esm.js +18 -0
  564. package/dist/utils/object/base.esm.js.map +1 -0
  565. package/dist/utils/object/clone.esm.js +81 -0
  566. package/dist/utils/object/clone.esm.js.map +1 -0
  567. package/dist/utils/object/index.esm.js +5 -0
  568. package/dist/utils/object/index.esm.js.map +1 -0
  569. package/dist/utils/object/iterate.esm.js +31 -0
  570. package/dist/utils/object/iterate.esm.js.map +1 -0
  571. package/dist/utils/object/properties.esm.js +133 -0
  572. package/dist/utils/object/properties.esm.js.map +1 -0
  573. package/dist/utils/package.json +1 -1
  574. package/dist/utils/string/base.esm.js +61 -0
  575. package/dist/utils/string/base.esm.js.map +1 -0
  576. package/dist/utils/string/css.esm.js +35 -0
  577. package/dist/utils/string/css.esm.js.map +1 -0
  578. package/dist/utils/string/format.esm.js +94 -0
  579. package/dist/utils/string/format.esm.js.map +1 -0
  580. package/dist/utils/string/id.esm.js +40 -0
  581. package/dist/utils/string/id.esm.js.map +1 -0
  582. package/dist/utils/string/index.esm.js +12 -0
  583. package/dist/utils/string/index.esm.js.map +1 -0
  584. package/dist/utils/string/plural.esm.js +68 -0
  585. package/dist/utils/string/plural.esm.js.map +1 -0
  586. package/dist/utils/time/after.esm.js +35 -0
  587. package/dist/utils/time/after.esm.js.map +1 -0
  588. package/dist/utils/time/delay.esm.js +12 -0
  589. package/dist/utils/time/delay.esm.js.map +1 -0
  590. package/dist/utils/time/index.esm.js +9 -0
  591. package/dist/utils/time/index.esm.js.map +1 -0
  592. package/dist/utils/time/repeat.esm.js +34 -0
  593. package/dist/utils/time/repeat.esm.js.map +1 -0
  594. package/dist/utils/time/types.esm.js +2 -0
  595. package/dist/utils/time/types.esm.js.map +1 -0
  596. package/dist/utils/units/angle.esm.js +17 -0
  597. package/dist/utils/units/angle.esm.js.map +1 -0
  598. package/dist/utils/units/format.esm.js +41 -0
  599. package/dist/utils/units/format.esm.js.map +1 -0
  600. package/dist/utils/units/index.esm.js +9 -0
  601. package/dist/utils/units/index.esm.js.map +1 -0
  602. package/dist/utils/units/length.esm.js +54 -0
  603. package/dist/utils/units/length.esm.js.map +1 -0
  604. package/dist/utils/units/parse.esm.js +16 -0
  605. package/dist/utils/units/parse.esm.js.map +1 -0
  606. package/dist/utils/units/percent.esm.js +19 -0
  607. package/dist/utils/units/percent.esm.js.map +1 -0
  608. package/dist/utils/units/resolve.esm.js +49 -0
  609. package/dist/utils/units/resolve.esm.js.map +1 -0
  610. package/dist/utils/units/time.esm.js +17 -0
  611. package/dist/utils/units/time.esm.js.map +1 -0
  612. package/dist/utils/units/types.esm.js +2 -0
  613. package/dist/utils/units/types.esm.js.map +1 -0
  614. package/dist/validation/core/ValidatorRegistrar.esm.js +78 -0
  615. package/dist/validation/core/ValidatorRegistrar.esm.js.map +1 -0
  616. package/dist/validation/core/executor.d.ts +2 -2
  617. package/dist/validation/core/executor.esm.js +87 -0
  618. package/dist/validation/core/executor.esm.js.map +1 -0
  619. package/dist/validation/core/executor.js +1 -1
  620. package/dist/validation/core/index.esm.js +4 -0
  621. package/dist/validation/core/index.esm.js.map +1 -0
  622. package/dist/validation/core/validate.esm.js +61 -0
  623. package/dist/validation/core/validate.esm.js.map +1 -0
  624. package/dist/validation/engine/index.esm.js +2 -0
  625. package/dist/validation/engine/index.esm.js.map +1 -0
  626. package/dist/validation/engine/validate.esm.js +48 -0
  627. package/dist/validation/engine/validate.esm.js.map +1 -0
  628. package/dist/validation/errors/DuplicateValidatorError.d.ts +1 -1
  629. package/dist/validation/errors/DuplicateValidatorError.esm.js +30 -0
  630. package/dist/validation/errors/DuplicateValidatorError.esm.js.map +1 -0
  631. package/dist/validation/errors/DuplicateValidatorError.js +1 -1
  632. package/dist/validation/errors/ValidationError.d.ts +1 -1
  633. package/dist/validation/errors/ValidationError.esm.js +64 -0
  634. package/dist/validation/errors/ValidationError.esm.js.map +1 -0
  635. package/dist/validation/errors/ValidationError.js +1 -1
  636. package/dist/validation/errors/ValidationTypeNotDefinedError.d.ts +1 -1
  637. package/dist/validation/errors/ValidationTypeNotDefinedError.esm.js +26 -0
  638. package/dist/validation/errors/ValidationTypeNotDefinedError.esm.js.map +1 -0
  639. package/dist/validation/errors/ValidationTypeNotDefinedError.js +1 -1
  640. package/dist/validation/errors/ValidatorNotFoundError.d.ts +1 -1
  641. package/dist/validation/errors/ValidatorNotFoundError.esm.js +31 -0
  642. package/dist/validation/errors/ValidatorNotFoundError.esm.js.map +1 -0
  643. package/dist/validation/errors/ValidatorNotFoundError.js +1 -1
  644. package/dist/validation/errors/builder.esm.js +306 -0
  645. package/dist/validation/errors/builder.esm.js.map +1 -0
  646. package/dist/validation/errors/codes.esm.js +28 -0
  647. package/dist/validation/errors/codes.esm.js.map +1 -0
  648. package/dist/validation/errors/index.esm.js +7 -0
  649. package/dist/validation/errors/index.esm.js.map +1 -0
  650. package/dist/validation/package.json +4 -4
  651. package/dist/validation/processors/array/children.esm.js +36 -0
  652. package/dist/validation/processors/array/children.esm.js.map +1 -0
  653. package/dist/validation/processors/array/entries.esm.js +58 -0
  654. package/dist/validation/processors/array/entries.esm.js.map +1 -0
  655. package/dist/validation/processors/array/excludes.esm.js +36 -0
  656. package/dist/validation/processors/array/excludes.esm.js.map +1 -0
  657. package/dist/validation/processors/array/includes.esm.js +36 -0
  658. package/dist/validation/processors/array/includes.esm.js.map +1 -0
  659. package/dist/validation/processors/array/index.esm.js +2 -0
  660. package/dist/validation/processors/array/index.esm.js.map +1 -0
  661. package/dist/validation/processors/array/length.esm.js +23 -0
  662. package/dist/validation/processors/array/length.esm.js.map +1 -0
  663. package/dist/validation/processors/array/type.esm.js +11 -0
  664. package/dist/validation/processors/array/type.esm.js.map +1 -0
  665. package/dist/validation/processors/array/unique.esm.js +22 -0
  666. package/dist/validation/processors/array/unique.esm.js.map +1 -0
  667. package/dist/validation/processors/array/uniqueBy.esm.js +42 -0
  668. package/dist/validation/processors/array/uniqueBy.esm.js.map +1 -0
  669. package/dist/validation/processors/boolean/entries.esm.js +10 -0
  670. package/dist/validation/processors/boolean/entries.esm.js.map +1 -0
  671. package/dist/validation/processors/boolean/index.esm.js +2 -0
  672. package/dist/validation/processors/boolean/index.esm.js.map +1 -0
  673. package/dist/validation/processors/boolean/type.esm.js +12 -0
  674. package/dist/validation/processors/boolean/type.esm.js.map +1 -0
  675. package/dist/validation/processors/common/context.esm.js +22 -0
  676. package/dist/validation/processors/common/context.esm.js.map +1 -0
  677. package/dist/validation/processors/common/entries.esm.js +42 -0
  678. package/dist/validation/processors/common/entries.esm.js.map +1 -0
  679. package/dist/validation/processors/common/index.esm.js +2 -0
  680. package/dist/validation/processors/common/index.esm.js.map +1 -0
  681. package/dist/validation/processors/common/presence.esm.js +26 -0
  682. package/dist/validation/processors/common/presence.esm.js.map +1 -0
  683. package/dist/validation/processors/common/rule-align.esm.js +28 -0
  684. package/dist/validation/processors/common/rule-align.esm.js.map +1 -0
  685. package/dist/validation/processors/common/transform.esm.js +20 -0
  686. package/dist/validation/processors/common/transform.esm.js.map +1 -0
  687. package/dist/validation/processors/common/trim.esm.js +19 -0
  688. package/dist/validation/processors/common/trim.esm.js.map +1 -0
  689. package/dist/validation/processors/compare/compare.esm.js +34 -0
  690. package/dist/validation/processors/compare/compare.esm.js.map +1 -0
  691. package/dist/validation/processors/compare/entries.esm.js +10 -0
  692. package/dist/validation/processors/compare/entries.esm.js.map +1 -0
  693. package/dist/validation/processors/compare/index.esm.js +2 -0
  694. package/dist/validation/processors/compare/index.esm.js.map +1 -0
  695. package/dist/validation/processors/date/entries.esm.js +42 -0
  696. package/dist/validation/processors/date/entries.esm.js.map +1 -0
  697. package/dist/validation/processors/date/excludes.esm.js +20 -0
  698. package/dist/validation/processors/date/excludes.esm.js.map +1 -0
  699. package/dist/validation/processors/date/includes.esm.js +20 -0
  700. package/dist/validation/processors/date/includes.esm.js.map +1 -0
  701. package/dist/validation/processors/date/index.esm.js +2 -0
  702. package/dist/validation/processors/date/index.esm.js.map +1 -0
  703. package/dist/validation/processors/date/is.esm.js +63 -0
  704. package/dist/validation/processors/date/is.esm.js.map +1 -0
  705. package/dist/validation/processors/date/type.esm.js +14 -0
  706. package/dist/validation/processors/date/type.esm.js.map +1 -0
  707. package/dist/validation/processors/date/weekend.esm.js +22 -0
  708. package/dist/validation/processors/date/weekend.esm.js.map +1 -0
  709. package/dist/validation/processors/file/entries.esm.js +10 -0
  710. package/dist/validation/processors/file/entries.esm.js.map +1 -0
  711. package/dist/validation/processors/file/file.esm.js +69 -0
  712. package/dist/validation/processors/file/file.esm.js.map +1 -0
  713. package/dist/validation/processors/file/index.esm.js +2 -0
  714. package/dist/validation/processors/file/index.esm.js.map +1 -0
  715. package/dist/validation/processors/format/entries.esm.js +11 -0
  716. package/dist/validation/processors/format/entries.esm.js.map +1 -0
  717. package/dist/validation/processors/format/format.esm.js +30 -0
  718. package/dist/validation/processors/format/format.esm.js.map +1 -0
  719. package/dist/validation/processors/format/index.esm.js +2 -0
  720. package/dist/validation/processors/format/index.esm.js.map +1 -0
  721. package/dist/validation/processors/index.esm.js +12 -0
  722. package/dist/validation/processors/index.esm.js.map +1 -0
  723. package/dist/validation/processors/number/entries.esm.js +47 -0
  724. package/dist/validation/processors/number/entries.esm.js.map +1 -0
  725. package/dist/validation/processors/number/excludes.esm.js +18 -0
  726. package/dist/validation/processors/number/excludes.esm.js.map +1 -0
  727. package/dist/validation/processors/number/includes.esm.js +18 -0
  728. package/dist/validation/processors/number/includes.esm.js.map +1 -0
  729. package/dist/validation/processors/number/index.esm.js +2 -0
  730. package/dist/validation/processors/number/index.esm.js.map +1 -0
  731. package/dist/validation/processors/number/is.esm.js +29 -0
  732. package/dist/validation/processors/number/is.esm.js.map +1 -0
  733. package/dist/validation/processors/number/range.esm.js +14 -0
  734. package/dist/validation/processors/number/range.esm.js.map +1 -0
  735. package/dist/validation/processors/number/type.esm.js +21 -0
  736. package/dist/validation/processors/number/type.esm.js.map +1 -0
  737. package/dist/validation/processors/object/entries.esm.js +29 -0
  738. package/dist/validation/processors/object/entries.esm.js.map +1 -0
  739. package/dist/validation/processors/object/index.esm.js +2 -0
  740. package/dist/validation/processors/object/index.esm.js.map +1 -0
  741. package/dist/validation/processors/object/properties.esm.js +40 -0
  742. package/dist/validation/processors/object/properties.esm.js.map +1 -0
  743. package/dist/validation/processors/object/required-fields.esm.js +27 -0
  744. package/dist/validation/processors/object/required-fields.esm.js.map +1 -0
  745. package/dist/validation/processors/object/type.esm.js +15 -0
  746. package/dist/validation/processors/object/type.esm.js.map +1 -0
  747. package/dist/validation/processors/password/entries.d.ts +2 -2
  748. package/dist/validation/processors/password/entries.esm.js +10 -0
  749. package/dist/validation/processors/password/entries.esm.js.map +1 -0
  750. package/dist/validation/processors/password/entries.js +1 -1
  751. package/dist/validation/processors/password/index.esm.js +2 -0
  752. package/dist/validation/processors/password/index.esm.js.map +1 -0
  753. package/dist/validation/processors/password/password.esm.js +21 -0
  754. package/dist/validation/processors/password/password.esm.js.map +1 -0
  755. package/dist/validation/processors/split/entries.esm.js +11 -0
  756. package/dist/validation/processors/split/entries.esm.js.map +1 -0
  757. package/dist/validation/processors/split/index.esm.js +2 -0
  758. package/dist/validation/processors/split/index.esm.js.map +1 -0
  759. package/dist/validation/processors/split/split.esm.js +40 -0
  760. package/dist/validation/processors/split/split.esm.js.map +1 -0
  761. package/dist/validation/processors/string/entries.esm.js +38 -0
  762. package/dist/validation/processors/string/entries.esm.js.map +1 -0
  763. package/dist/validation/processors/string/excludes.esm.js +18 -0
  764. package/dist/validation/processors/string/excludes.esm.js.map +1 -0
  765. package/dist/validation/processors/string/includes.esm.js +18 -0
  766. package/dist/validation/processors/string/includes.esm.js.map +1 -0
  767. package/dist/validation/processors/string/index.esm.js +2 -0
  768. package/dist/validation/processors/string/index.esm.js.map +1 -0
  769. package/dist/validation/processors/string/length.esm.js +18 -0
  770. package/dist/validation/processors/string/length.esm.js.map +1 -0
  771. package/dist/validation/processors/string/type.esm.js +12 -0
  772. package/dist/validation/processors/string/type.esm.js.map +1 -0
  773. package/dist/validation/types/base.esm.js +29 -0
  774. package/dist/validation/types/base.esm.js.map +1 -0
  775. package/dist/validation/types/context.esm.js +2 -0
  776. package/dist/validation/types/context.esm.js.map +1 -0
  777. package/dist/validation/types/index.esm.js +13 -0
  778. package/dist/validation/types/index.esm.js.map +1 -0
  779. package/dist/validation/types/processor.esm.js +23 -0
  780. package/dist/validation/types/processor.esm.js.map +1 -0
  781. package/dist/validation/types/validate.esm.js +2 -0
  782. package/dist/validation/types/validate.esm.js.map +1 -0
  783. package/dist/validation/utils/compare.esm.js +144 -0
  784. package/dist/validation/utils/compare.esm.js.map +1 -0
  785. package/dist/validation/utils/index.esm.js +3 -0
  786. package/dist/validation/utils/index.esm.js.map +1 -0
  787. package/dist/validation/utils/pattern.esm.js +15 -0
  788. package/dist/validation/utils/pattern.esm.js.map +1 -0
  789. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashTask.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * HashTaskHealthMonitor类
3
+ *
4
+ * 该类只负责监控与判断:
5
+ * - 是否长时间无进展
6
+ * - Worker 是否假活着
7
+ * - 内存是否未释放
8
+ * - 是否触发 fail-fast
9
+ *
10
+ * 明确不负责:
11
+ * - 不直接取消任务
12
+ * - 不直接重试
13
+ * - 不处理UI
14
+ * - 不做日志聚合
15
+ *
16
+ * 它只发出"健康事件"。
17
+ *
18
+ * 设计原则:
19
+ * - 只负责监控和判断
20
+ * - 不直接干预任务执行
21
+ * - 通过事件机制通知外部
22
+ */
23
+ export class HashTaskHealthMonitor {
24
+ /**
25
+ * 构造函数
26
+ *
27
+ * @param state 任务状态管理器
28
+ * @param progress 任务进度管理器
29
+ * @param resources 任务资源管理器
30
+ * @param options 健康监控选项
31
+ */
32
+ constructor(state, progress, resources, options = {}) {
33
+ var _a, _b;
34
+ this.state = state;
35
+ this.progress = progress;
36
+ this.resources = resources;
37
+ this.listeners = new Set();
38
+ this.lastProgressBytes = 0;
39
+ this.lastProgressTime = Date.now();
40
+ this.stallThresholdMs = (_a = options.stallThresholdMs) !== null && _a !== void 0 ? _a : 10000;
41
+ this.intervalMs = (_b = options.intervalMs) !== null && _b !== void 0 ? _b : 1000;
42
+ }
43
+ /**
44
+ * 开始健康监控
45
+ *
46
+ * 启动定时器,定期检查任务健康状态
47
+ *
48
+ * 检查包括:
49
+ * - 任务进度是否卡死
50
+ * - Worker是否无响应
51
+ * - 资源是否泄漏
52
+ */
53
+ start() {
54
+ if (this.timer)
55
+ return;
56
+ this.timer = setInterval(() => this.check(), this.intervalMs);
57
+ }
58
+ /**
59
+ * 停止健康监控
60
+ *
61
+ * 清除定时器,停止健康检查
62
+ */
63
+ stop() {
64
+ if (this.timer) {
65
+ clearInterval(this.timer);
66
+ this.timer = undefined;
67
+ }
68
+ }
69
+ /**
70
+ * 添加健康事件监听器
71
+ *
72
+ * @param listener 健康事件监听器
73
+ * @returns 用于移除监听器的函数
74
+ */
75
+ onEvent(listener) {
76
+ this.listeners.add(listener);
77
+ return () => this.listeners.delete(listener);
78
+ }
79
+ /**
80
+ * 触发健康事件
81
+ *
82
+ * @param event 健康事件
83
+ * @private
84
+ */
85
+ emit(event) {
86
+ this.listeners.forEach(fn => fn(event));
87
+ }
88
+ /**
89
+ * 执行健康检查
90
+ *
91
+ * 检查任务进度是否卡死、资源是否泄漏等情况
92
+ *
93
+ * 检查内容包括:
94
+ * 1. 进度卡死检测:检查任务是否在stallThresholdMs时间内无进展
95
+ * 2. 资源泄漏检测:检查任务结束后资源是否被正确释放
96
+ *
97
+ * @private
98
+ */
99
+ check() {
100
+ const now = Date.now();
101
+ const stateValue = this.state.value;
102
+ const progressSnap = this.progress.snapshot();
103
+ const resourceSnap = this.resources.snapshot();
104
+ // ===== 1. 检测进度卡死 =====
105
+ if (stateValue === 'running') {
106
+ if (progressSnap.processedBytes !== this.lastProgressBytes) {
107
+ this.lastProgressBytes = progressSnap.processedBytes;
108
+ this.lastProgressTime = now;
109
+ }
110
+ else {
111
+ const stalledFor = now - this.lastProgressTime;
112
+ if (stalledFor > this.stallThresholdMs) {
113
+ this.emit({ type: 'stalled', durationMs: stalledFor });
114
+ if (resourceSnap.hasWorker) {
115
+ this.emit({ type: 'worker_unresponsive' });
116
+ }
117
+ // 防止重复刷事件
118
+ this.lastProgressTime = now;
119
+ }
120
+ }
121
+ }
122
+ // ===== 2. 检测资源泄漏 =====
123
+ if ((stateValue === 'completed' || stateValue === 'failed' || stateValue === 'cancelled') &&
124
+ resourceSnap.hasWorker) {
125
+ this.emit({ type: 'resource_leak' });
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=HashTaskHealthMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashTaskHealthMonitor.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskHealthMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * 哈希任务进度管理类
3
+ *
4
+ * 负责跟踪和管理哈希任务的执行进度
5
+ *
6
+ * 设计原则:
7
+ * - 仅负责进度跟踪和快照生成
8
+ * - 不关心数据块的来源
9
+ * - 不关心哈希算法的实现
10
+ * - 不管理Worker或任务状态
11
+ */
12
+ export class HashTaskProgress {
13
+ constructor() {
14
+ this.processedBytes = 0;
15
+ this.processedChunks = 0;
16
+ }
17
+ /**
18
+ * 初始化进度(可选总量)
19
+ *
20
+ * @param totalBytes 总字节数,可选参数
21
+ */
22
+ init(totalBytes) {
23
+ this.totalBytes = totalBytes;
24
+ this.processedBytes = 0;
25
+ this.processedChunks = 0;
26
+ }
27
+ /**
28
+ * 处理数据块,更新进度
29
+ *
30
+ * 该方法会更新已处理的块数和字节数
31
+ *
32
+ * @param chunk 要处理的数据块,包含字节数信息
33
+ */
34
+ onChunk(chunk) {
35
+ this.processedChunks += 1;
36
+ this.processedBytes += chunk.data.byteLength;
37
+ }
38
+ /**
39
+ * 生成只读快照
40
+ *
41
+ * 计算当前进度百分比并返回进度快照
42
+ *
43
+ * @returns 任务进度快照
44
+ */
45
+ snapshot() {
46
+ // ✅ 符合原则:在生成快照时计算百分比(0~1)
47
+ const progress = this.totalBytes !== undefined && this.totalBytes > 0
48
+ ? Math.min(this.processedBytes / this.totalBytes, 1)
49
+ : undefined;
50
+ return {
51
+ progress,
52
+ processedBytes: this.processedBytes,
53
+ totalBytes: this.totalBytes,
54
+ processedChunks: this.processedChunks,
55
+ };
56
+ }
57
+ }
58
+ //# sourceMappingURL=HashTaskProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashTaskProgress.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskProgress.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACY,mBAAc,GAAG,CAAC,CAAC;QACnB,oBAAe,GAAG,CAAC,CAAC;IA+ChC,CAAC;IA5CG;;;;OAIG;IACH,IAAI,CAAC,UAAmB;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,KAAuC;QAC3C,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACJ,0BAA0B;QAC1B,MAAM,QAAQ,GACV,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,SAAS,CAAC;QAEpB,OAAO;YACH,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,158 @@
1
+ import { ResourceUnavailableError } from '../errors';
2
+ import { ResourceNotAcquiredError } from '../errors/ResourceNotAcquiredError';
3
+ /**
4
+ * 哈希任务资源管理类
5
+ *
6
+ * 负责管理哈希任务所需的资源,包括内存和Worker。
7
+ * 这是一个资源管理器,用于在执行哈希任务时获取和释放必要的计算资源。
8
+ * 设计原则是单一职责,只负责资源的申请和释放,不涉及具体的哈希计算逻辑。
9
+ *
10
+ * 设计原则:
11
+ * - 仅负责资源的申请与释放
12
+ * - 不涉及具体哈希计算逻辑
13
+ * - 保证资源操作的原子性
14
+ * - 提供资源状态快照
15
+ */
16
+ export class HashTaskResources {
17
+ /**
18
+ * 构造函数
19
+ *
20
+ * @param memoryManager 内存管理器,用于申请和释放内存资源
21
+ * @param workerPool Worker池,用于获取和归还Worker线程
22
+ */
23
+ constructor(memoryManager, workerPool) {
24
+ this.memoryManager = memoryManager;
25
+ this.workerPool = workerPool;
26
+ this.acquired = false; // 标记资源是否已成功获取
27
+ }
28
+ /**
29
+ * 核心:申请计算所需的资源(内存 + 线程)
30
+ *
31
+ * 此方法用于为哈希任务申请必要的计算资源。如果资源已经获取,则直接返回。
32
+ * 方法具有原子性,要么成功获取所有资源,要么在失败时释放已获取的资源。
33
+ *
34
+ * @param scriptSource 经过 Builder 转换后的算法源码字符串,将被注入到Worker中
35
+ * @param memoryBytes 需要锁定的内存预算,以字节为单位
36
+ * @returns 当资源成功获取后解析的Promise
37
+ * @throws 当资源申请失败时,会抛出相应的错误,并确保已申请的资源被释放
38
+ */
39
+ async acquire(scriptSource, memoryBytes) {
40
+ if (this.acquired)
41
+ return; // 防止重复获取资源
42
+ try {
43
+ // 按顺序获取内存和Worker资源
44
+ await this.acquireMemory(memoryBytes);
45
+ await this.acquireWorker(scriptSource);
46
+ this.acquired = true; // 标记资源已获取
47
+ }
48
+ catch (err) {
49
+ // 如果获取过程中出现错误,释放已获取的资源
50
+ await this.release();
51
+ throw err; // 重新抛出原始错误
52
+ }
53
+ }
54
+ /**
55
+ * 专用方法:获取内存资源
56
+ *
57
+ * 尝试从内存管理器获取指定数量的字节,如果失败则抛出内存资源不可用错误
58
+ *
59
+ * @param memoryBytes 需要获取的内存字节数
60
+ * @throws ResourceUnavailableError 如果内存不足或获取失败
61
+ */
62
+ async acquireMemory(memoryBytes) {
63
+ try {
64
+ this.memoryTicket = await this.memoryManager.acquire(memoryBytes);
65
+ }
66
+ catch (err) {
67
+ throw new ResourceUnavailableError('memory', {
68
+ requestedBytes: memoryBytes,
69
+ originalError: err instanceof Error ? err.message : err,
70
+ });
71
+ }
72
+ }
73
+ /**
74
+ * 专用方法:获取Worker资源
75
+ *
76
+ * 尝试从Worker池获取一个Worker实例,如果失败则抛出Worker资源不可用错误
77
+ *
78
+ * @param scriptSource 要注入到Worker中的脚本源码
79
+ * @throws ResourceUnavailableError 如果Worker池已满或获取失败
80
+ */
81
+ async acquireWorker(scriptSource) {
82
+ try {
83
+ this.worker = await this.workerPool.acquire(scriptSource);
84
+ }
85
+ catch (err) {
86
+ throw new ResourceUnavailableError('worker', {
87
+ originalError: err instanceof Error ? err.message : err,
88
+ });
89
+ }
90
+ }
91
+ /**
92
+ * 释放所有资源(幂等)
93
+ *
94
+ * 释放之前通过acquire方法获取的所有资源。此方法是幂等的,
95
+ * 即可以安全地多次调用而不会产生副作用。
96
+ * 无论资源是否已经被释放,或者从未被获取,调用此方法都是安全的。
97
+ *
98
+ * @returns 当资源成功释放后解析的Promise
99
+ */
100
+ async release() {
101
+ // 释放Worker资源(如果已获取)
102
+ if (this.worker) {
103
+ try {
104
+ this.workerPool.release(this.worker);
105
+ }
106
+ catch (error) {
107
+ // 即使释放worker失败,也要继续释放其他资源
108
+ console.error('Failed to release worker:', error);
109
+ }
110
+ this.worker = undefined;
111
+ }
112
+ // 释放内存资源(如果已获取)
113
+ if (this.memoryTicket) {
114
+ try {
115
+ this.memoryTicket.release();
116
+ }
117
+ catch (error) {
118
+ // 即使释放内存失败,也要继续执行
119
+ console.error('Failed to release memory ticket:', error);
120
+ }
121
+ this.memoryTicket = undefined;
122
+ }
123
+ // 重置获取状态
124
+ this.acquired = false;
125
+ }
126
+ /**
127
+ * 访问 worker(只允许 Runner 用)
128
+ *
129
+ * 获取当前持有的Worker句柄,供Runner使用来执行实际的哈希计算。
130
+ * 如果尚未获取Worker或Worker已被释放,则抛出错误。
131
+ *
132
+ * @returns Worker句柄,可用于向Worker发送消息和接收结果
133
+ * @throws 如果Worker尚未获取则抛出错误,确保使用者意识到资源未就绪
134
+ */
135
+ getWorker() {
136
+ if (!this.worker) {
137
+ throw new ResourceNotAcquiredError();
138
+ }
139
+ return this.worker;
140
+ }
141
+ /**
142
+ * 当前资源快照(给 health / debug)
143
+ *
144
+ * 获取当前资源使用情况的快照,主要用于健康检查和调试目的。
145
+ * 返回一个不可变的对象,包含当前内存使用量和Worker状态。
146
+ *
147
+ * @returns 资源快照对象,包含内存字节数(如果有)和Worker存在状态
148
+ */
149
+ snapshot() {
150
+ var _a;
151
+ return {
152
+ // ✅ 修正:如果有内存票据,返回具体的字节数
153
+ memoryBytes: (_a = this.memoryTicket) === null || _a === void 0 ? void 0 : _a.bytes,
154
+ hasWorker: !!this.worker, // 确保返回布尔值
155
+ };
156
+ }
157
+ }
158
+ //# sourceMappingURL=HashTaskResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashTaskResources.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskResources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ import { Logger } from '../../../logger/index.esm.js';
2
+ import { WorkerScriptBuilder } from '../worker';
3
+ import { HashTaskHealthMonitor } from './HashTaskHealthMonitor';
4
+ /**
5
+ * HashTaskRunner类
6
+ *
7
+ * 该类只负责流程控制:
8
+ * - 驱动任务生命周期
9
+ * - 串联 State / Progress / Resources
10
+ * - 把「计算」委托给 worker
11
+ * - 处理中断(pause / cancel)
12
+ *
13
+ * 明确不负责:
14
+ * - 不分块(ChunkProvider 的事)
15
+ * - 不实现 hash 算法
16
+ * - 不处理内存细节
17
+ * - 不做健康监控
18
+ * - 不做任务调度
19
+ */
20
+ export class HashTaskRunner {
21
+ /**
22
+ * 构造函数
23
+ *
24
+ * @param state 任务状态管理器
25
+ * @param progress 任务进度管理器
26
+ * @param resources 任务资源管理器
27
+ * @param options 哈希任务选项
28
+ */
29
+ constructor(state, progress, resources, options) {
30
+ this.state = state;
31
+ this.progress = progress;
32
+ this.resources = resources;
33
+ this.options = options;
34
+ this.builder = new WorkerScriptBuilder();
35
+ this.logger = Logger.for('HashTaskRunner');
36
+ }
37
+ /**
38
+ * 获取ChunkProvider的辅助属性,让代码更易读
39
+ */
40
+ get chunkProvider() {
41
+ return this.options.chunkProvider;
42
+ }
43
+ /**
44
+ * 执行哈希任务
45
+ *
46
+ * 该方法负责:
47
+ * 1. 构建Worker脚本
48
+ * 2. 计算所需内存
49
+ * 3. 获取资源(内存和Worker)
50
+ * 4. 启动健康监控
51
+ * 5. 执行哈希计算
52
+ * 6. 最终释放资源
53
+ *
54
+ * @returns Promise<ArrayBuffer> 包含哈希结果的Promise
55
+ */
56
+ async run() {
57
+ this.logger.debug(`Starting hash task with algorithm: ${this.options.algorithm}`);
58
+ const scriptSource = this.builder.build(this.options.algorithm);
59
+ // 使用新定义的辅助属性计算内存
60
+ const memoryRequired = this.calculateRequiredMemory();
61
+ this.logger.debug(`Acquiring resources: memory=${(memoryRequired / 1024 / 1024).toFixed(2)}MB`);
62
+ await this.resources.acquire(scriptSource, memoryRequired);
63
+ const monitor = new HashTaskHealthMonitor(this.state, this.progress, this.resources);
64
+ monitor.start();
65
+ try {
66
+ // 注意:此时 State 的迁移需要符合你上传的 HashTaskState.ts 逻辑
67
+ if (this.state.canStart()) {
68
+ this.state.start();
69
+ }
70
+ return await this.executeHashing();
71
+ }
72
+ catch (err) {
73
+ // 如果 state 有 fail 方法,在这里调用
74
+ // this.state.fail(err);
75
+ this.logger.error('Task failed:', err);
76
+ throw err;
77
+ }
78
+ finally {
79
+ this.logger.debug('Releasing resources and stopping monitor.');
80
+ monitor.stop();
81
+ await this.resources.release();
82
+ }
83
+ }
84
+ /**
85
+ * 暂停任务:通过状态机实现
86
+ *
87
+ * 检查当前状态是否允许暂停,如果允许则更新状态为暂停
88
+ */
89
+ pause() {
90
+ if (this.state.canPause()) {
91
+ this.state.pause();
92
+ }
93
+ }
94
+ /**
95
+ * 恢复任务:通过状态机实现
96
+ *
97
+ * 检查当前状态是否允许恢复,如果允许则更新状态为运行中
98
+ */
99
+ resume() {
100
+ if (this.state.canResume()) {
101
+ this.state.resume();
102
+ }
103
+ }
104
+ /**
105
+ * 取消任务:直接调用状态机的 cancel
106
+ * 状态变更为 'cancelled' 后,executeHashing 循环中的 isCancelled() 会检测到并抛出异常
107
+ *
108
+ * 检查当前状态是否允许取消,如果允许则更新状态为已取消
109
+ */
110
+ cancel() {
111
+ if (this.state.canCancel()) {
112
+ this.state.cancel();
113
+ }
114
+ }
115
+ /**
116
+ * 等待任务恢复(如果处于暂停状态)
117
+ *
118
+ * 当任务处于暂停状态时,持续等待直到恢复运行或被取消
119
+ *
120
+ * @private
121
+ */
122
+ async waitIfPaused() {
123
+ // ✅ 统一使用 state 判定,不再需要私有变量
124
+ while (this.state.value === 'paused' && !this.state.isCancelled()) {
125
+ await new Promise(resolve => setTimeout(resolve, 200));
126
+ }
127
+ }
128
+ /**
129
+ * 运行单个数据块的哈希计算
130
+ *
131
+ * 该方法向Worker发送数据块进行哈希计算,并等待处理结果
132
+ *
133
+ * @param worker Worker句柄
134
+ * @param chunk 要处理的数据块
135
+ * @returns Promise<void> 表示处理完成的Promise
136
+ * @private
137
+ */
138
+ async runChunk(worker, chunk) {
139
+ return new Promise((resolve, reject) => {
140
+ let unsubscribe;
141
+ // 1. 定义处理器
142
+ const handler = (msg) => {
143
+ // 只响应当前 chunk 的确认消息
144
+ if (msg.type === 'ack' && msg.chunkId === chunk.id) {
145
+ if (unsubscribe)
146
+ unsubscribe(); // ✨ 执行清理!
147
+ resolve();
148
+ }
149
+ else if (msg.type === 'error') {
150
+ if (unsubscribe)
151
+ unsubscribe(); // ✨ 出错也要清理!
152
+ reject(new Error(msg.message));
153
+ }
154
+ };
155
+ // 2. 订阅消息
156
+ unsubscribe = worker.onMessage(handler);
157
+ // 3. 发送数据
158
+ worker.post({ type: 'update', chunkId: chunk.id, data: chunk.data }, [chunk.data] // 零拷贝转移
159
+ );
160
+ });
161
+ }
162
+ /**
163
+ * 完成哈希计算并获取最终结果
164
+ *
165
+ * 该方法向Worker发送完成信号并等待最终的哈希结果
166
+ *
167
+ * @param worker Worker句柄
168
+ * @returns Promise<ArrayBuffer> 包含最终哈希结果的Promise
169
+ * @private
170
+ */
171
+ async finalize(worker) {
172
+ return new Promise((resolve, reject) => {
173
+ let unsubscribe;
174
+ const onMessage = (msg) => {
175
+ if (msg.type === 'digest') {
176
+ if (unsubscribe)
177
+ unsubscribe(); // ✨ 清理
178
+ resolve(msg.result);
179
+ }
180
+ };
181
+ unsubscribe = worker.onMessage(onMessage);
182
+ worker.post({ type: 'final' });
183
+ });
184
+ }
185
+ /**
186
+ * 计算所需内存大小
187
+ *
188
+ * 根据数据块大小计算所需的内存,预留额外空间用于处理
189
+ *
190
+ * @returns 所需的内存大小(以字节为单位)
191
+ * @private
192
+ */
193
+ calculateRequiredMemory() {
194
+ // 所有的 Provider 现在都有这个方法了
195
+ const chunkSize = this.chunkProvider.getChunkSize();
196
+ // 预留 2 个分片 + 1MB 冗余
197
+ return chunkSize * 2 + 1024 * 1024;
198
+ }
199
+ /**
200
+ * 执行哈希计算的主要逻辑
201
+ *
202
+ * 主循环:获取数据块 -> 检查暂停/取消 -> 执行哈希 -> 更新进度 -> 继续下一块
203
+ *
204
+ * @returns Promise<ArrayBuffer> 包含最终哈希结果的Promise
205
+ * @private
206
+ */
207
+ async executeHashing() {
208
+ const worker = this.resources.getWorker();
209
+ const provider = this.chunkProvider;
210
+ while (provider.hasNext()) {
211
+ // 1. 检查暂停
212
+ await this.waitIfPaused();
213
+ // 2. 检查取消
214
+ if (this.state.isCancelled()) {
215
+ throw new Error('Task cancelled');
216
+ }
217
+ const chunk = await provider.next();
218
+ if (!chunk)
219
+ break;
220
+ // 3. 执行哈希
221
+ await this.runChunk(worker, chunk);
222
+ // 4. 更新进度
223
+ this.progress.onChunk(chunk);
224
+ }
225
+ const result = await this.finalize(worker);
226
+ // ✨ 完成后同步状态机
227
+ if (this.state.canPause()) {
228
+ // 此时状态通常是 running
229
+ this.state.complete();
230
+ }
231
+ return result;
232
+ }
233
+ }
234
+ //# sourceMappingURL=HashTaskRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashTaskRunner.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskRunner.ts"],"names":[],"mappings":"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"}