@pangza/express 0.0.0-stage → 1.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 (470) hide show
  1. package/Application/callbackArgs.d.ts +5 -0
  2. package/Application/callbackArgs.d.ts.map +1 -0
  3. package/Application/callbackArgs.js +98 -0
  4. package/Application/callbackArgs.js.map +1 -0
  5. package/Application/decorators.d.ts +29 -0
  6. package/Application/decorators.d.ts.map +1 -0
  7. package/Application/decorators.js +181 -0
  8. package/Application/decorators.js.map +1 -0
  9. package/Application/index.d.ts +58 -0
  10. package/Application/index.d.ts.map +1 -0
  11. package/Application/index.js +573 -0
  12. package/Application/index.js.map +1 -0
  13. package/Application/interceptors.d.ts +27 -0
  14. package/Application/interceptors.d.ts.map +1 -0
  15. package/Application/interceptors.js +58 -0
  16. package/Application/interceptors.js.map +1 -0
  17. package/Application/lifecycle.d.ts +8 -0
  18. package/Application/lifecycle.d.ts.map +1 -0
  19. package/Application/lifecycle.js +96 -0
  20. package/Application/lifecycle.js.map +1 -0
  21. package/Application/metadata.d.ts +32 -0
  22. package/Application/metadata.d.ts.map +1 -0
  23. package/Application/metadata.js +230 -0
  24. package/Application/metadata.js.map +1 -0
  25. package/Application/processGuards.d.ts +2 -0
  26. package/Application/processGuards.d.ts.map +1 -0
  27. package/Application/processGuards.js +18 -0
  28. package/Application/processGuards.js.map +1 -0
  29. package/Application/types.d.ts +42 -0
  30. package/Application/types.d.ts.map +1 -0
  31. package/Application/types.js +13 -0
  32. package/Application/types.js.map +1 -0
  33. package/Application/warmup.d.ts +2 -0
  34. package/Application/warmup.d.ts.map +1 -0
  35. package/Application/warmup.js +78 -0
  36. package/Application/warmup.js.map +1 -0
  37. package/Auth/AuthUtil.d.ts +36 -0
  38. package/Auth/AuthUtil.d.ts.map +1 -0
  39. package/Auth/AuthUtil.js +305 -0
  40. package/Auth/AuthUtil.js.map +1 -0
  41. package/Auth/context.d.ts +5 -0
  42. package/Auth/context.d.ts.map +1 -0
  43. package/Auth/context.js +10 -0
  44. package/Auth/context.js.map +1 -0
  45. package/Auth/errors.d.ts +15 -0
  46. package/Auth/errors.d.ts.map +1 -0
  47. package/Auth/errors.js +34 -0
  48. package/Auth/errors.js.map +1 -0
  49. package/Auth/flag.d.ts +2 -0
  50. package/Auth/flag.d.ts.map +1 -0
  51. package/Auth/flag.js +5 -0
  52. package/Auth/flag.js.map +1 -0
  53. package/Auth/index.d.ts +11 -0
  54. package/Auth/index.d.ts.map +1 -0
  55. package/Auth/index.js +128 -0
  56. package/Auth/index.js.map +1 -0
  57. package/Auth/store.d.ts +47 -0
  58. package/Auth/store.d.ts.map +1 -0
  59. package/Auth/store.js +151 -0
  60. package/Auth/store.js.map +1 -0
  61. package/Auth/token.d.ts +10 -0
  62. package/Auth/token.d.ts.map +1 -0
  63. package/Auth/token.js +74 -0
  64. package/Auth/token.js.map +1 -0
  65. package/Auth/types.d.ts +76 -0
  66. package/Auth/types.d.ts.map +1 -0
  67. package/Auth/types.js +3 -0
  68. package/Auth/types.js.map +1 -0
  69. package/Exception/decorators.d.ts +4 -0
  70. package/Exception/decorators.d.ts.map +1 -0
  71. package/Exception/decorators.js +40 -0
  72. package/Exception/decorators.js.map +1 -0
  73. package/Exception/handler.d.ts +3 -0
  74. package/Exception/handler.d.ts.map +1 -0
  75. package/Exception/handler.js +96 -0
  76. package/Exception/handler.js.map +1 -0
  77. package/Exception/index.d.ts +9 -0
  78. package/Exception/index.d.ts.map +1 -0
  79. package/Exception/index.js +34 -0
  80. package/Exception/index.js.map +1 -0
  81. package/Exception/registry.d.ts +6 -0
  82. package/Exception/registry.d.ts.map +1 -0
  83. package/Exception/registry.js +60 -0
  84. package/Exception/registry.js.map +1 -0
  85. package/Exception/types.d.ts +27 -0
  86. package/Exception/types.d.ts.map +1 -0
  87. package/Exception/types.js +15 -0
  88. package/Exception/types.js.map +1 -0
  89. package/Json/ObjectMapper.d.ts +13 -0
  90. package/Json/ObjectMapper.d.ts.map +1 -0
  91. package/Json/ObjectMapper.js +184 -0
  92. package/Json/ObjectMapper.js.map +1 -0
  93. package/Json/beanKeys.d.ts +3 -0
  94. package/Json/beanKeys.d.ts.map +1 -0
  95. package/Json/beanKeys.js +29 -0
  96. package/Json/beanKeys.js.map +1 -0
  97. package/Json/convert.d.ts +11 -0
  98. package/Json/convert.d.ts.map +1 -0
  99. package/Json/convert.js +89 -0
  100. package/Json/convert.js.map +1 -0
  101. package/Json/decorators.d.ts +15 -0
  102. package/Json/decorators.d.ts.map +1 -0
  103. package/Json/decorators.js +80 -0
  104. package/Json/decorators.js.map +1 -0
  105. package/Json/index.d.ts +13 -0
  106. package/Json/index.d.ts.map +1 -0
  107. package/Json/index.js +39 -0
  108. package/Json/index.js.map +1 -0
  109. package/Json/types.d.ts +27 -0
  110. package/Json/types.d.ts.map +1 -0
  111. package/Json/types.js +11 -0
  112. package/Json/types.js.map +1 -0
  113. package/Log/decorators.d.ts +3 -0
  114. package/Log/decorators.d.ts.map +1 -0
  115. package/Log/decorators.js +10 -0
  116. package/Log/decorators.js.map +1 -0
  117. package/Log/flag.d.ts +2 -0
  118. package/Log/flag.d.ts.map +1 -0
  119. package/Log/flag.js +5 -0
  120. package/Log/flag.js.map +1 -0
  121. package/Log/index.d.ts +9 -0
  122. package/Log/index.d.ts.map +1 -0
  123. package/Log/index.js +33 -0
  124. package/Log/index.js.map +1 -0
  125. package/Log/ip.d.ts +14 -0
  126. package/Log/ip.d.ts.map +1 -0
  127. package/Log/ip.js +125 -0
  128. package/Log/ip.js.map +1 -0
  129. package/Log/recorder.d.ts +18 -0
  130. package/Log/recorder.d.ts.map +1 -0
  131. package/Log/recorder.js +144 -0
  132. package/Log/recorder.js.map +1 -0
  133. package/Log/types.d.ts +53 -0
  134. package/Log/types.d.ts.map +1 -0
  135. package/Log/types.js +21 -0
  136. package/Log/types.js.map +1 -0
  137. package/Logger/index.d.ts +18 -0
  138. package/Logger/index.d.ts.map +1 -0
  139. package/Logger/index.js +150 -0
  140. package/Logger/index.js.map +1 -0
  141. package/Logger/types.d.ts +13 -0
  142. package/Logger/types.d.ts.map +1 -0
  143. package/Logger/types.js +3 -0
  144. package/Logger/types.js.map +1 -0
  145. package/ORM/BaseMapper.d.ts +54 -0
  146. package/ORM/BaseMapper.d.ts.map +1 -0
  147. package/ORM/BaseMapper.js +593 -0
  148. package/ORM/BaseMapper.js.map +1 -0
  149. package/ORM/DataSource.d.ts +47 -0
  150. package/ORM/DataSource.d.ts.map +1 -0
  151. package/ORM/DataSource.js +336 -0
  152. package/ORM/DataSource.js.map +1 -0
  153. package/ORM/Db.d.ts +43 -0
  154. package/ORM/Db.d.ts.map +1 -0
  155. package/ORM/Db.js +198 -0
  156. package/ORM/Db.js.map +1 -0
  157. package/ORM/IdType.d.ts +10 -0
  158. package/ORM/IdType.d.ts.map +1 -0
  159. package/ORM/IdType.js +22 -0
  160. package/ORM/IdType.js.map +1 -0
  161. package/ORM/QueryWrapper.d.ts +58 -0
  162. package/ORM/QueryWrapper.d.ts.map +1 -0
  163. package/ORM/QueryWrapper.js +289 -0
  164. package/ORM/QueryWrapper.js.map +1 -0
  165. package/ORM/config.d.ts +6 -0
  166. package/ORM/config.d.ts.map +1 -0
  167. package/ORM/config.js +70 -0
  168. package/ORM/config.js.map +1 -0
  169. package/ORM/dialect.d.ts +24 -0
  170. package/ORM/dialect.d.ts.map +1 -0
  171. package/ORM/dialect.js +169 -0
  172. package/ORM/dialect.js.map +1 -0
  173. package/ORM/enable.d.ts +4 -0
  174. package/ORM/enable.d.ts.map +1 -0
  175. package/ORM/enable.js +23 -0
  176. package/ORM/enable.js.map +1 -0
  177. package/ORM/entityDecorators.d.ts +39 -0
  178. package/ORM/entityDecorators.d.ts.map +1 -0
  179. package/ORM/entityDecorators.js +131 -0
  180. package/ORM/entityDecorators.js.map +1 -0
  181. package/ORM/errors.d.ts +9 -0
  182. package/ORM/errors.d.ts.map +1 -0
  183. package/ORM/errors.js +20 -0
  184. package/ORM/errors.js.map +1 -0
  185. package/ORM/fieldSelect.d.ts +25 -0
  186. package/ORM/fieldSelect.d.ts.map +1 -0
  187. package/ORM/fieldSelect.js +49 -0
  188. package/ORM/fieldSelect.js.map +1 -0
  189. package/ORM/fill.d.ts +6 -0
  190. package/ORM/fill.d.ts.map +1 -0
  191. package/ORM/fill.js +45 -0
  192. package/ORM/fill.js.map +1 -0
  193. package/ORM/flag.d.ts +4 -0
  194. package/ORM/flag.d.ts.map +1 -0
  195. package/ORM/flag.js +14 -0
  196. package/ORM/flag.js.map +1 -0
  197. package/ORM/hydrate.d.ts +12 -0
  198. package/ORM/hydrate.d.ts.map +1 -0
  199. package/ORM/hydrate.js +304 -0
  200. package/ORM/hydrate.js.map +1 -0
  201. package/ORM/identifier.d.ts +8 -0
  202. package/ORM/identifier.d.ts.map +1 -0
  203. package/ORM/identifier.js +47 -0
  204. package/ORM/identifier.js.map +1 -0
  205. package/ORM/index.d.ts +41 -0
  206. package/ORM/index.d.ts.map +1 -0
  207. package/ORM/index.js +119 -0
  208. package/ORM/index.js.map +1 -0
  209. package/ORM/relation.d.ts +53 -0
  210. package/ORM/relation.d.ts.map +1 -0
  211. package/ORM/relation.js +143 -0
  212. package/ORM/relation.js.map +1 -0
  213. package/ORM/resultMap.d.ts +3 -0
  214. package/ORM/resultMap.d.ts.map +1 -0
  215. package/ORM/resultMap.js +21 -0
  216. package/ORM/resultMap.js.map +1 -0
  217. package/ORM/security.d.ts +5 -0
  218. package/ORM/security.d.ts.map +1 -0
  219. package/ORM/security.js +39 -0
  220. package/ORM/security.js.map +1 -0
  221. package/ORM/sqlDecorators.d.ts +15 -0
  222. package/ORM/sqlDecorators.d.ts.map +1 -0
  223. package/ORM/sqlDecorators.js +106 -0
  224. package/ORM/sqlDecorators.js.map +1 -0
  225. package/ORM/sqlLog.d.ts +20 -0
  226. package/ORM/sqlLog.d.ts.map +1 -0
  227. package/ORM/sqlLog.js +172 -0
  228. package/ORM/sqlLog.js.map +1 -0
  229. package/ORM/sqlTemplate.d.ts +13 -0
  230. package/ORM/sqlTemplate.d.ts.map +1 -0
  231. package/ORM/sqlTemplate.js +89 -0
  232. package/ORM/sqlTemplate.js.map +1 -0
  233. package/ORM/table.d.ts +8 -0
  234. package/ORM/table.d.ts.map +1 -0
  235. package/ORM/table.js +45 -0
  236. package/ORM/table.js.map +1 -0
  237. package/ORM/tableSearch.d.ts +43 -0
  238. package/ORM/tableSearch.d.ts.map +1 -0
  239. package/ORM/tableSearch.js +205 -0
  240. package/ORM/tableSearch.js.map +1 -0
  241. package/ORM/transactional.d.ts +7 -0
  242. package/ORM/transactional.d.ts.map +1 -0
  243. package/ORM/transactional.js +43 -0
  244. package/ORM/transactional.js.map +1 -0
  245. package/ORM/types.d.ts +92 -0
  246. package/ORM/types.d.ts.map +1 -0
  247. package/ORM/types.js +3 -0
  248. package/ORM/types.js.map +1 -0
  249. package/ORM/xml/MapperXml.d.ts +10 -0
  250. package/ORM/xml/MapperXml.d.ts.map +1 -0
  251. package/ORM/xml/MapperXml.js +79 -0
  252. package/ORM/xml/MapperXml.js.map +1 -0
  253. package/ORM/xml/execute.d.ts +10 -0
  254. package/ORM/xml/execute.d.ts.map +1 -0
  255. package/ORM/xml/execute.js +53 -0
  256. package/ORM/xml/execute.js.map +1 -0
  257. package/ORM/xml/index.d.ts +11 -0
  258. package/ORM/xml/index.d.ts.map +1 -0
  259. package/ORM/xml/index.js +29 -0
  260. package/ORM/xml/index.js.map +1 -0
  261. package/ORM/xml/loadMappers.d.ts +10 -0
  262. package/ORM/xml/loadMappers.d.ts.map +1 -0
  263. package/ORM/xml/loadMappers.js +162 -0
  264. package/ORM/xml/loadMappers.js.map +1 -0
  265. package/ORM/xml/parseMapperXml.d.ts +3 -0
  266. package/ORM/xml/parseMapperXml.d.ts.map +1 -0
  267. package/ORM/xml/parseMapperXml.js +217 -0
  268. package/ORM/xml/parseMapperXml.js.map +1 -0
  269. package/ORM/xml/registry.d.ts +15 -0
  270. package/ORM/xml/registry.d.ts.map +1 -0
  271. package/ORM/xml/registry.js +57 -0
  272. package/ORM/xml/registry.js.map +1 -0
  273. package/ORM/xml/renderSql.d.ts +4 -0
  274. package/ORM/xml/renderSql.d.ts.map +1 -0
  275. package/ORM/xml/renderSql.js +178 -0
  276. package/ORM/xml/renderSql.js.map +1 -0
  277. package/ORM/xml/types.d.ts +50 -0
  278. package/ORM/xml/types.d.ts.map +1 -0
  279. package/ORM/xml/types.js +3 -0
  280. package/ORM/xml/types.js.map +1 -0
  281. package/ORM/xml/xmlMapper.d.ts +10 -0
  282. package/ORM/xml/xmlMapper.d.ts.map +1 -0
  283. package/ORM/xml/xmlMapper.js +44 -0
  284. package/ORM/xml/xmlMapper.js.map +1 -0
  285. package/README.md +41 -2
  286. package/Redis/Redis.d.ts +65 -0
  287. package/Redis/Redis.d.ts.map +1 -0
  288. package/Redis/Redis.js +622 -0
  289. package/Redis/Redis.js.map +1 -0
  290. package/Redis/cache.d.ts +4 -0
  291. package/Redis/cache.d.ts.map +1 -0
  292. package/Redis/cache.js +70 -0
  293. package/Redis/cache.js.map +1 -0
  294. package/Redis/decorators.d.ts +5 -0
  295. package/Redis/decorators.d.ts.map +1 -0
  296. package/Redis/decorators.js +20 -0
  297. package/Redis/decorators.js.map +1 -0
  298. package/Redis/enable.d.ts +4 -0
  299. package/Redis/enable.d.ts.map +1 -0
  300. package/Redis/enable.js +22 -0
  301. package/Redis/enable.js.map +1 -0
  302. package/Redis/errors.d.ts +9 -0
  303. package/Redis/errors.d.ts.map +1 -0
  304. package/Redis/errors.js +20 -0
  305. package/Redis/errors.js.map +1 -0
  306. package/Redis/flag.d.ts +4 -0
  307. package/Redis/flag.d.ts.map +1 -0
  308. package/Redis/flag.js +14 -0
  309. package/Redis/flag.js.map +1 -0
  310. package/Redis/index.d.ts +11 -0
  311. package/Redis/index.d.ts.map +1 -0
  312. package/Redis/index.js +42 -0
  313. package/Redis/index.js.map +1 -0
  314. package/Redis/rateLimit.d.ts +8 -0
  315. package/Redis/rateLimit.d.ts.map +1 -0
  316. package/Redis/rateLimit.js +82 -0
  317. package/Redis/rateLimit.js.map +1 -0
  318. package/Redis/redisson/RCountDownLatch.d.ts +12 -0
  319. package/Redis/redisson/RCountDownLatch.d.ts.map +1 -0
  320. package/Redis/redisson/RCountDownLatch.js +48 -0
  321. package/Redis/redisson/RCountDownLatch.js.map +1 -0
  322. package/Redis/redisson/RFairLock.d.ts +4 -0
  323. package/Redis/redisson/RFairLock.d.ts.map +1 -0
  324. package/Redis/redisson/RFairLock.js +29 -0
  325. package/Redis/redisson/RFairLock.js.map +1 -0
  326. package/Redis/redisson/RLock.d.ts +34 -0
  327. package/Redis/redisson/RLock.d.ts.map +1 -0
  328. package/Redis/redisson/RLock.js +146 -0
  329. package/Redis/redisson/RLock.js.map +1 -0
  330. package/Redis/redisson/RMultiLock.d.ts +15 -0
  331. package/Redis/redisson/RMultiLock.d.ts.map +1 -0
  332. package/Redis/redisson/RMultiLock.js +90 -0
  333. package/Redis/redisson/RMultiLock.js.map +1 -0
  334. package/Redis/redisson/RReadWriteLock.d.ts +9 -0
  335. package/Redis/redisson/RReadWriteLock.d.ts.map +1 -0
  336. package/Redis/redisson/RReadWriteLock.js +51 -0
  337. package/Redis/redisson/RReadWriteLock.js.map +1 -0
  338. package/Redis/redisson/RSemaphore.d.ts +13 -0
  339. package/Redis/redisson/RSemaphore.d.ts.map +1 -0
  340. package/Redis/redisson/RSemaphore.js +54 -0
  341. package/Redis/redisson/RSemaphore.js.map +1 -0
  342. package/Redis/redisson/Redisson.d.ts +30 -0
  343. package/Redis/redisson/Redisson.d.ts.map +1 -0
  344. package/Redis/redisson/Redisson.js +93 -0
  345. package/Redis/redisson/Redisson.js.map +1 -0
  346. package/Redis/redisson/index.d.ts +12 -0
  347. package/Redis/redisson/index.d.ts.map +1 -0
  348. package/Redis/redisson/index.js +32 -0
  349. package/Redis/redisson/index.js.map +1 -0
  350. package/Redis/redisson/objects.d.ts +116 -0
  351. package/Redis/redisson/objects.d.ts.map +1 -0
  352. package/Redis/redisson/objects.js +384 -0
  353. package/Redis/redisson/objects.js.map +1 -0
  354. package/Redis/redisson/scripts.d.ts +13 -0
  355. package/Redis/redisson/scripts.d.ts.map +1 -0
  356. package/Redis/redisson/scripts.js +187 -0
  357. package/Redis/redisson/scripts.js.map +1 -0
  358. package/Redis/redisson/types.d.ts +129 -0
  359. package/Redis/redisson/types.d.ts.map +1 -0
  360. package/Redis/redisson/types.js +8 -0
  361. package/Redis/redisson/types.js.map +1 -0
  362. package/Redis/redisson/utils.d.ts +9 -0
  363. package/Redis/redisson/utils.d.ts.map +1 -0
  364. package/Redis/redisson/utils.js +78 -0
  365. package/Redis/redisson/utils.js.map +1 -0
  366. package/Redis/types.d.ts +82 -0
  367. package/Redis/types.d.ts.map +1 -0
  368. package/Redis/types.js +23 -0
  369. package/Redis/types.js.map +1 -0
  370. package/Service/BaseService.d.ts +18 -0
  371. package/Service/BaseService.d.ts.map +1 -0
  372. package/Service/BaseService.js +46 -0
  373. package/Service/BaseService.js.map +1 -0
  374. package/Service/MapperType.d.ts +18 -0
  375. package/Service/MapperType.d.ts.map +1 -0
  376. package/Service/MapperType.js +46 -0
  377. package/Service/MapperType.js.map +1 -0
  378. package/Service/bean.d.ts +16 -0
  379. package/Service/bean.d.ts.map +1 -0
  380. package/Service/bean.js +72 -0
  381. package/Service/bean.js.map +1 -0
  382. package/Service/container.d.ts +18 -0
  383. package/Service/container.d.ts.map +1 -0
  384. package/Service/container.js +66 -0
  385. package/Service/container.js.map +1 -0
  386. package/Service/decorators.d.ts +12 -0
  387. package/Service/decorators.d.ts.map +1 -0
  388. package/Service/decorators.js +148 -0
  389. package/Service/decorators.js.map +1 -0
  390. package/Service/index.d.ts +11 -0
  391. package/Service/index.d.ts.map +1 -0
  392. package/Service/index.js +32 -0
  393. package/Service/index.js.map +1 -0
  394. package/Service/types.d.ts +19 -0
  395. package/Service/types.d.ts.map +1 -0
  396. package/Service/types.js +18 -0
  397. package/Service/types.js.map +1 -0
  398. package/Validate/decorators.d.ts +18 -0
  399. package/Validate/decorators.d.ts.map +1 -0
  400. package/Validate/decorators.js +77 -0
  401. package/Validate/decorators.js.map +1 -0
  402. package/Validate/engine.d.ts +5 -0
  403. package/Validate/engine.d.ts.map +1 -0
  404. package/Validate/engine.js +78 -0
  405. package/Validate/engine.js.map +1 -0
  406. package/Validate/index.d.ts +6 -0
  407. package/Validate/index.d.ts.map +1 -0
  408. package/Validate/index.js +28 -0
  409. package/Validate/index.js.map +1 -0
  410. package/Validate/rules.d.ts +11 -0
  411. package/Validate/rules.d.ts.map +1 -0
  412. package/Validate/rules.js +120 -0
  413. package/Validate/rules.js.map +1 -0
  414. package/Validate/types.d.ts +22 -0
  415. package/Validate/types.d.ts.map +1 -0
  416. package/Validate/types.js +17 -0
  417. package/Validate/types.js.map +1 -0
  418. package/config/index.d.ts +104 -0
  419. package/config/index.d.ts.map +1 -0
  420. package/config/index.js +330 -0
  421. package/config/index.js.map +1 -0
  422. package/encrypt/AESUtil.d.ts +5 -0
  423. package/encrypt/AESUtil.d.ts.map +1 -0
  424. package/encrypt/AESUtil.js +36 -0
  425. package/encrypt/AESUtil.js.map +1 -0
  426. package/encrypt/DynamicAesKeyManager.d.ts +9 -0
  427. package/encrypt/DynamicAesKeyManager.d.ts.map +1 -0
  428. package/encrypt/DynamicAesKeyManager.js +46 -0
  429. package/encrypt/DynamicAesKeyManager.js.map +1 -0
  430. package/encrypt/index.d.ts +3 -0
  431. package/encrypt/index.d.ts.map +1 -0
  432. package/encrypt/index.js +8 -0
  433. package/encrypt/index.js.map +1 -0
  434. package/index.d.ts +31 -0
  435. package/index.d.ts.map +1 -0
  436. package/index.js +260 -0
  437. package/index.js.map +1 -0
  438. package/langchain/decorators.d.ts +2 -0
  439. package/langchain/decorators.d.ts.map +1 -0
  440. package/langchain/decorators.js +6 -0
  441. package/langchain/decorators.js.map +1 -0
  442. package/langchain/index.d.ts +1 -0
  443. package/langchain/index.d.ts.map +1 -0
  444. package/langchain/index.js +2 -0
  445. package/langchain/index.js.map +1 -0
  446. package/package.json +110 -4
  447. package/schedule/ScheduleManager.d.ts +25 -0
  448. package/schedule/ScheduleManager.d.ts.map +1 -0
  449. package/schedule/ScheduleManager.js +125 -0
  450. package/schedule/ScheduleManager.js.map +1 -0
  451. package/types/enums.d.ts +11 -0
  452. package/types/enums.d.ts.map +1 -0
  453. package/types/enums.js +15 -0
  454. package/types/enums.js.map +1 -0
  455. package/utils/case.d.ts +6 -0
  456. package/utils/case.d.ts.map +1 -0
  457. package/utils/case.js +32 -0
  458. package/utils/case.js.map +1 -0
  459. package/utils/entity/PageResult/index.d.ts +20 -0
  460. package/utils/entity/PageResult/index.d.ts.map +1 -0
  461. package/utils/entity/PageResult/index.js +15 -0
  462. package/utils/entity/PageResult/index.js.map +1 -0
  463. package/utils/entity/ResponseData/index.d.ts +11 -0
  464. package/utils/entity/ResponseData/index.d.ts.map +1 -0
  465. package/utils/entity/ResponseData/index.js +25 -0
  466. package/utils/entity/ResponseData/index.js.map +1 -0
  467. package/utils/id.d.ts +2 -0
  468. package/utils/id.d.ts.map +1 -0
  469. package/utils/id.js +9 -0
  470. package/utils/id.js.map +1 -0
package/Redis/Redis.js ADDED
@@ -0,0 +1,622 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const crypto_1 = require("crypto");
8
+ const redis_1 = require("redis");
9
+ const config_1 = require("../config");
10
+ const types_1 = require("./types");
11
+ const errors_1 = require("./errors");
12
+ function readOptionalFile(path) {
13
+ const p = path?.trim();
14
+ if (!p)
15
+ return undefined;
16
+ try {
17
+ return fs_1.default.readFileSync(p, "utf8");
18
+ }
19
+ catch (err) {
20
+ console.warn(`[Redis] 无法读取 TLS 文件 ${p}:`, err instanceof Error ? err.message : err);
21
+ return undefined;
22
+ }
23
+ }
24
+ function buildReconnectStrategy(cfg) {
25
+ const reconnect = cfg.reconnect !== false;
26
+ const maxDelay = cfg.maxReconnectDelay ?? types_1.defaultRedisConfig.maxReconnectDelay;
27
+ if (!reconnect)
28
+ return false;
29
+ return (retries) => {
30
+ if (retries > 20) {
31
+ console.error("[Redis] 重连次数过多,停止重连");
32
+ return new Error("Redis reconnect gave up");
33
+ }
34
+ return Math.min(maxDelay, 100 * Math.pow(2, retries));
35
+ };
36
+ }
37
+ function buildSocketBase(cfg, host, port) {
38
+ const socket = {
39
+ host,
40
+ port,
41
+ connectTimeout: cfg.connectTimeout ?? types_1.defaultRedisConfig.connectTimeout,
42
+ reconnectStrategy: buildReconnectStrategy(cfg),
43
+ };
44
+ if (cfg.tls?.enabled) {
45
+ socket.tls = true;
46
+ socket.rejectUnauthorized = cfg.tls.rejectUnauthorized !== false;
47
+ const ca = readOptionalFile(cfg.tls.ca);
48
+ const cert = readOptionalFile(cfg.tls.cert);
49
+ const key = readOptionalFile(cfg.tls.key);
50
+ if (ca)
51
+ socket.ca = ca;
52
+ if (cert)
53
+ socket.cert = cert;
54
+ if (key)
55
+ socket.key = key;
56
+ }
57
+ return socket;
58
+ }
59
+ function authFields(cfg) {
60
+ const username = cfg.username?.trim();
61
+ const password = cfg.password?.trim();
62
+ return {
63
+ username: username || undefined,
64
+ password: password || undefined,
65
+ };
66
+ }
67
+ function createRedisClient(cfg) {
68
+ const mode = cfg.mode ?? "standalone";
69
+ const auth = authFields(cfg);
70
+ const RESP = 2;
71
+ if (mode === "cluster") {
72
+ const nodes = cfg.cluster?.nodes?.filter((n) => n?.host?.trim()) ?? [];
73
+ if (nodes.length === 0) {
74
+ throw new Error("Redis mode=cluster 时请配置 redis.cluster.nodes(至少一个种子节点)");
75
+ }
76
+ return (0, redis_1.createCluster)({
77
+ RESP,
78
+ rootNodes: nodes.map((n) => ({
79
+ socket: buildSocketBase(cfg, n.host, n.port ?? 6379),
80
+ })),
81
+ defaults: {
82
+ ...auth,
83
+ socket: buildSocketBase(cfg, nodes[0].host, nodes[0].port ?? 6379),
84
+ },
85
+ useReplicas: cfg.cluster?.useReplicas === true,
86
+ });
87
+ }
88
+ if (mode === "sentinel") {
89
+ const name = cfg.sentinel?.name?.trim();
90
+ const nodes = cfg.sentinel?.nodes?.filter((n) => n?.host?.trim()) ?? [];
91
+ if (!name || nodes.length === 0) {
92
+ throw new Error("Redis mode=sentinel 时请配置 redis.sentinel.name 与 redis.sentinel.nodes");
93
+ }
94
+ return (0, redis_1.createSentinel)({
95
+ RESP,
96
+ name,
97
+ sentinelRootNodes: nodes.map((n) => ({
98
+ host: n.host,
99
+ port: n.port ?? 26379,
100
+ })),
101
+ nodeClientOptions: {
102
+ ...auth,
103
+ socket: buildSocketBase(cfg, cfg.host ?? types_1.defaultRedisConfig.host, cfg.port ?? types_1.defaultRedisConfig.port),
104
+ },
105
+ sentinelClientOptions: {
106
+ ...auth,
107
+ },
108
+ });
109
+ }
110
+ const host = cfg.host ?? types_1.defaultRedisConfig.host;
111
+ const port = cfg.port ?? types_1.defaultRedisConfig.port;
112
+ return (0, redis_1.createClient)({
113
+ RESP,
114
+ socket: buildSocketBase(cfg, host, port),
115
+ ...auth,
116
+ database: cfg.db ?? types_1.defaultRedisConfig.db,
117
+ });
118
+ }
119
+ const RATE_LIMIT_LUA = `
120
+ local key=KEYS[1]
121
+ local time=tonumber(ARGV[1])
122
+ local count=tonumber(ARGV[2])
123
+ local current=redis.call('get', key)
124
+
125
+ if current and tonumber(current)>count then
126
+ return tonumber(current)
127
+ end
128
+
129
+ current = redis.call('incr', key)
130
+ local ttl = redis.call('pttl', key)
131
+ if ttl < 0 then
132
+ redis.call('expire', key, time)
133
+ end
134
+
135
+ return tonumber(current)
136
+ `.trim();
137
+ const SLIDING_RATE_LIMIT_LUA = `
138
+ local key = KEYS[1]
139
+ local now = tonumber(ARGV[1])
140
+ local window = tonumber(ARGV[2])
141
+ local limit = tonumber(ARGV[3])
142
+ redis.call('ZREMRANGEBYSCORE', key, 0, now - window)
143
+ local n = redis.call('ZCARD', key)
144
+ if n >= limit then
145
+ return n + 1
146
+ end
147
+ redis.call('ZADD', key, now, now .. '-' .. ARGV[4])
148
+ redis.call('PEXPIRE', key, window)
149
+ return n + 1
150
+ `.trim();
151
+ const UNLOCK_IF_MATCH_LUA = `
152
+ if redis.call('get', KEYS[1]) == ARGV[1] then
153
+ return redis.call('del', KEYS[1])
154
+ end
155
+ return 0
156
+ `.trim();
157
+ const RENEW_IF_MATCH_LUA = `
158
+ if redis.call('get', KEYS[1]) == ARGV[1] then
159
+ return redis.call('pexpire', KEYS[1], tonumber(ARGV[2]))
160
+ end
161
+ return 0
162
+ `.trim();
163
+ function randomToken() {
164
+ return (0, crypto_1.randomBytes)(16).toString("hex");
165
+ }
166
+ class Redis {
167
+ static async ensureReady() {
168
+ if (!this.client?.isReady) {
169
+ await this.connect();
170
+ }
171
+ if (!this.client?.isReady) {
172
+ throw new Error("Redis 连接不可用,请检查 YAML 中的 redis 配置");
173
+ }
174
+ return this.client;
175
+ }
176
+ static configure(config = {}) {
177
+ this.config = {
178
+ ...types_1.defaultRedisConfig,
179
+ ...this.config,
180
+ ...config,
181
+ tls: {
182
+ ...this.config.tls,
183
+ ...config.tls,
184
+ },
185
+ cluster: {
186
+ ...this.config.cluster,
187
+ ...config.cluster,
188
+ },
189
+ sentinel: {
190
+ ...this.config.sentinel,
191
+ ...config.sentinel,
192
+ },
193
+ };
194
+ }
195
+ static isReady() {
196
+ return !!this.client?.isReady;
197
+ }
198
+ static async ping() {
199
+ const client = await this.ensureReady();
200
+ const res = await client.ping();
201
+ return res === "PONG" || res === true || res === "OK";
202
+ }
203
+ static async connect(config) {
204
+ if (config)
205
+ this.configure(config);
206
+ if (this.client?.isReady)
207
+ return;
208
+ if (this.connecting)
209
+ return this.connecting;
210
+ this.connecting = (async () => {
211
+ const cfg = {
212
+ ...types_1.defaultRedisConfig,
213
+ ...this.config,
214
+ };
215
+ const pwd = String(cfg.password ?? "").trim();
216
+ if (!pwd) {
217
+ const production = config_1.configProfile === "production";
218
+ const msg = "[Redis] 未配置 password:仅建议本机开发使用;生产请设置 redis.password,并限制网络访问";
219
+ if (production) {
220
+ console.error(msg);
221
+ }
222
+ else {
223
+ console.warn(msg);
224
+ }
225
+ }
226
+ if (this.client) {
227
+ try {
228
+ await this.client.quit();
229
+ }
230
+ catch {
231
+ try {
232
+ this.client.destroy();
233
+ }
234
+ catch {
235
+ }
236
+ }
237
+ this.client = null;
238
+ }
239
+ if (this.subClient) {
240
+ try {
241
+ await this.subClient.quit();
242
+ }
243
+ catch {
244
+ try {
245
+ this.subClient.destroy();
246
+ }
247
+ catch {
248
+ }
249
+ }
250
+ this.subClient = null;
251
+ }
252
+ const client = createRedisClient(cfg);
253
+ client.on("error", (err) => {
254
+ console.error("[Redis] error:", err.message);
255
+ });
256
+ client.on("reconnecting", () => {
257
+ console.warn("[Redis] reconnecting...");
258
+ });
259
+ await client.connect();
260
+ this.client = client;
261
+ const mode = cfg.mode ?? "standalone";
262
+ const tlsTag = cfg.tls?.enabled ? " tls" : "";
263
+ if (mode === "cluster") {
264
+ console.log(`[Redis] 已连接 cluster${tlsTag}`);
265
+ }
266
+ else if (mode === "sentinel") {
267
+ console.log(`[Redis] 已连接 sentinel name=${cfg.sentinel?.name ?? ""}${tlsTag}`);
268
+ }
269
+ else {
270
+ console.log(`[Redis] 已连接 ${cfg.host}:${cfg.port} db=${cfg.db ?? 0}${tlsTag}`);
271
+ }
272
+ })();
273
+ try {
274
+ await this.connecting;
275
+ }
276
+ finally {
277
+ this.connecting = null;
278
+ }
279
+ }
280
+ static async disconnect() {
281
+ const close = async (c) => {
282
+ if (!c)
283
+ return;
284
+ try {
285
+ await c.quit();
286
+ }
287
+ catch {
288
+ try {
289
+ c.destroy();
290
+ }
291
+ catch {
292
+ }
293
+ }
294
+ };
295
+ const main = this.client;
296
+ const sub = this.subClient;
297
+ this.client = null;
298
+ this.subClient = null;
299
+ await close(main);
300
+ await close(sub);
301
+ }
302
+ static async getClient() {
303
+ return this.ensureReady();
304
+ }
305
+ static key(raw) {
306
+ const prefix = this.config.keyPrefix ?? types_1.defaultRedisConfig.keyPrefix;
307
+ return raw.startsWith(prefix) ? raw : `${prefix}${raw}`;
308
+ }
309
+ static async set(key, value, ttlSeconds) {
310
+ const client = await this.ensureReady();
311
+ const k = this.key(key);
312
+ if (ttlSeconds && ttlSeconds > 0) {
313
+ await client.set(k, value, { EX: ttlSeconds });
314
+ }
315
+ else {
316
+ await client.set(k, value);
317
+ }
318
+ }
319
+ static async setJSON(key, value, ttlSeconds) {
320
+ await this.set(key, JSON.stringify(value), ttlSeconds);
321
+ }
322
+ static async get(key) {
323
+ const client = await this.ensureReady();
324
+ return client.get(this.key(key));
325
+ }
326
+ static async getJSON(key) {
327
+ const raw = await this.get(key);
328
+ if (raw == null)
329
+ return null;
330
+ try {
331
+ return JSON.parse(raw);
332
+ }
333
+ catch {
334
+ return null;
335
+ }
336
+ }
337
+ static async del(...keys) {
338
+ if (keys.length === 0)
339
+ return 0;
340
+ const client = await this.ensureReady();
341
+ return client.del(keys.map((k) => this.key(k)));
342
+ }
343
+ static async exists(key) {
344
+ const client = await this.ensureReady();
345
+ const n = await client.exists(this.key(key));
346
+ return n > 0;
347
+ }
348
+ static async expire(key, ttlSeconds) {
349
+ const client = await this.ensureReady();
350
+ const result = await client.expire(this.key(key), ttlSeconds);
351
+ return Number(result) === 1;
352
+ }
353
+ static async ttl(key) {
354
+ const client = await this.ensureReady();
355
+ return client.ttl(this.key(key));
356
+ }
357
+ static async setNX(key, value, ttlSeconds) {
358
+ const client = await this.ensureReady();
359
+ const k = this.key(key);
360
+ const result = await client.set(k, value, {
361
+ NX: true,
362
+ ...(ttlSeconds && ttlSeconds > 0 ? { EX: ttlSeconds } : {}),
363
+ });
364
+ return result === "OK";
365
+ }
366
+ static async setNxPx(key, value, ttlMs) {
367
+ const client = await this.ensureReady();
368
+ const result = await client.set(this.key(key), value, {
369
+ NX: true,
370
+ PX: Math.max(1, ttlMs),
371
+ });
372
+ return result === "OK";
373
+ }
374
+ static async unlockIfMatch(key, expectValue) {
375
+ const client = await this.ensureReady();
376
+ const result = (await client.eval(UNLOCK_IF_MATCH_LUA, {
377
+ keys: [this.key(key)],
378
+ arguments: [expectValue],
379
+ }));
380
+ return Number(result) === 1;
381
+ }
382
+ static async renewIfMatch(key, expectValue, ttlMs) {
383
+ const client = await this.ensureReady();
384
+ const result = (await client.eval(RENEW_IF_MATCH_LUA, {
385
+ keys: [this.key(key)],
386
+ arguments: [expectValue, String(Math.max(1, ttlMs))],
387
+ }));
388
+ return Number(result) === 1;
389
+ }
390
+ static async tryLock(key, option = {}) {
391
+ const ttlMs = option.ttlMs ?? 30000;
392
+ const token = option.token ?? randomToken();
393
+ const lockKey = key.startsWith(types_1.LOCK_KEY) ? key : `${types_1.LOCK_KEY}${key}`;
394
+ const ok = await this.setNxPx(lockKey, token, ttlMs);
395
+ if (!ok)
396
+ return null;
397
+ return {
398
+ key: lockKey,
399
+ token,
400
+ release: () => this.unlockIfMatch(lockKey, token),
401
+ renew: (ms) => this.renewIfMatch(lockKey, token, ms),
402
+ };
403
+ }
404
+ static async withLock(key, fn, option = {}) {
405
+ const ttlMs = option.ttlMs ?? 30000;
406
+ const handle = await this.tryLock(key, { ttlMs, token: option.token });
407
+ if (!handle) {
408
+ throw new errors_1.LockError(`获取锁失败: ${key}`);
409
+ }
410
+ const renewEvery = option.renewIntervalMs === undefined
411
+ ? Math.max(100, Math.floor(ttlMs / 3))
412
+ : option.renewIntervalMs;
413
+ let timer = null;
414
+ if (renewEvery > 0) {
415
+ timer = setInterval(() => {
416
+ void handle.renew(ttlMs).catch(() => {
417
+ });
418
+ }, renewEvery);
419
+ if (typeof timer === "object" && "unref" in timer) {
420
+ timer.unref?.();
421
+ }
422
+ }
423
+ try {
424
+ return await fn();
425
+ }
426
+ finally {
427
+ if (timer)
428
+ clearInterval(timer);
429
+ await handle.release();
430
+ }
431
+ }
432
+ static async hSet(key, field, value) {
433
+ const client = await this.ensureReady();
434
+ return client.hSet(this.key(key), field, value);
435
+ }
436
+ static async hGet(key, field) {
437
+ const client = await this.ensureReady();
438
+ const v = await client.hGet(this.key(key), field);
439
+ return v ?? undefined;
440
+ }
441
+ static async hGetAll(key) {
442
+ const client = await this.ensureReady();
443
+ return client.hGetAll(this.key(key));
444
+ }
445
+ static async hDel(key, ...fields) {
446
+ if (fields.length === 0)
447
+ return 0;
448
+ const client = await this.ensureReady();
449
+ return client.hDel(this.key(key), fields);
450
+ }
451
+ static async sAdd(key, ...members) {
452
+ if (members.length === 0)
453
+ return 0;
454
+ const client = await this.ensureReady();
455
+ return client.sAdd(this.key(key), members);
456
+ }
457
+ static async sMembers(key) {
458
+ const client = await this.ensureReady();
459
+ return client.sMembers(this.key(key));
460
+ }
461
+ static async sRem(key, ...members) {
462
+ if (members.length === 0)
463
+ return 0;
464
+ const client = await this.ensureReady();
465
+ return client.sRem(this.key(key), members);
466
+ }
467
+ static async lPush(key, ...values) {
468
+ if (values.length === 0)
469
+ return 0;
470
+ const client = await this.ensureReady();
471
+ return client.lPush(this.key(key), values);
472
+ }
473
+ static async rPush(key, ...values) {
474
+ if (values.length === 0)
475
+ return 0;
476
+ const client = await this.ensureReady();
477
+ return client.rPush(this.key(key), values);
478
+ }
479
+ static async lPop(key) {
480
+ const client = await this.ensureReady();
481
+ return client.lPop(this.key(key));
482
+ }
483
+ static async rPop(key) {
484
+ const client = await this.ensureReady();
485
+ return client.rPop(this.key(key));
486
+ }
487
+ static async lRange(key, start, stop) {
488
+ const client = await this.ensureReady();
489
+ return client.lRange(this.key(key), start, stop);
490
+ }
491
+ static async lLen(key) {
492
+ const client = await this.ensureReady();
493
+ return client.lLen(this.key(key));
494
+ }
495
+ static async zAdd(key, members) {
496
+ if (members.length === 0)
497
+ return 0;
498
+ const client = await this.ensureReady();
499
+ return client.zAdd(this.key(key), members.map((m) => ({ score: m.score, value: m.value })));
500
+ }
501
+ static async zRange(key, min, max) {
502
+ const client = await this.ensureReady();
503
+ return client.zRange(this.key(key), min, max);
504
+ }
505
+ static async zRangeByScore(key, min, max) {
506
+ const client = await this.ensureReady();
507
+ return client.zRangeByScore(this.key(key), min, max);
508
+ }
509
+ static async zRem(key, ...members) {
510
+ if (members.length === 0)
511
+ return 0;
512
+ const client = await this.ensureReady();
513
+ return client.zRem(this.key(key), members);
514
+ }
515
+ static async zCard(key) {
516
+ const client = await this.ensureReady();
517
+ return client.zCard(this.key(key));
518
+ }
519
+ static async zScore(key, member) {
520
+ const client = await this.ensureReady();
521
+ const s = await client.zScore(this.key(key), member);
522
+ return s == null ? null : Number(s);
523
+ }
524
+ static async pipeline(fn) {
525
+ const client = await this.ensureReady();
526
+ const multi = client.multi();
527
+ fn(multi);
528
+ return (await multi.exec());
529
+ }
530
+ static async publish(channel, message) {
531
+ const client = await this.ensureReady();
532
+ return client.publish(channel, message);
533
+ }
534
+ static async subscribe(channel, listener) {
535
+ await this.ensureReady();
536
+ if (!this.subClient?.isReady) {
537
+ const cfg = { ...types_1.defaultRedisConfig, ...this.config };
538
+ const sub = createRedisClient(cfg);
539
+ sub.on("error", (err) => {
540
+ console.error("[Redis] sub error:", err.message);
541
+ });
542
+ await sub.connect();
543
+ this.subClient = sub;
544
+ }
545
+ const sub = this.subClient;
546
+ await sub.subscribe(channel, (message, ch) => {
547
+ listener(message, ch);
548
+ });
549
+ return async () => {
550
+ try {
551
+ await sub.unsubscribe(channel);
552
+ }
553
+ catch {
554
+ }
555
+ };
556
+ }
557
+ static async incr(key) {
558
+ const client = await this.ensureReady();
559
+ return client.incr(this.key(key));
560
+ }
561
+ static async decr(key) {
562
+ const client = await this.ensureReady();
563
+ return client.decr(this.key(key));
564
+ }
565
+ static async setPx(key, value, ttlMs) {
566
+ const client = await this.ensureReady();
567
+ await client.set(this.key(key), value, { PX: Math.max(1, ttlMs) });
568
+ }
569
+ static async setJSONPx(key, value, ttlMs) {
570
+ await this.setPx(key, JSON.stringify(value), ttlMs);
571
+ }
572
+ static async rateLimit(key, timeSeconds, count) {
573
+ const client = await this.ensureReady();
574
+ const result = (await client.eval(RATE_LIMIT_LUA, {
575
+ keys: [this.key(key)],
576
+ arguments: [String(timeSeconds), String(count)],
577
+ }));
578
+ return Number(result ?? 0);
579
+ }
580
+ static async rateLimitSliding(key, timeSeconds, count) {
581
+ const client = await this.ensureReady();
582
+ const now = Date.now();
583
+ const windowMs = Math.max(1, Math.floor(timeSeconds * 1000));
584
+ const result = (await client.eval(SLIDING_RATE_LIMIT_LUA, {
585
+ keys: [this.key(key)],
586
+ arguments: [
587
+ String(now),
588
+ String(windowMs),
589
+ String(count),
590
+ randomToken().slice(0, 8),
591
+ ],
592
+ }));
593
+ return Number(result ?? 0);
594
+ }
595
+ static async deleteByPrefix(prefix) {
596
+ const client = await this.ensureReady();
597
+ const full = this.key(prefix);
598
+ let cursor = "0";
599
+ let removed = 0;
600
+ do {
601
+ const reply = await client.scan(cursor, {
602
+ MATCH: `${full}*`,
603
+ COUNT: 100,
604
+ });
605
+ cursor = String(reply.cursor);
606
+ const keys = reply.keys;
607
+ if (keys.length) {
608
+ removed += await client.del(keys);
609
+ }
610
+ } while (cursor !== "0");
611
+ return removed;
612
+ }
613
+ }
614
+ Redis.client = null;
615
+ Redis.config = {
616
+ ...types_1.defaultRedisConfig,
617
+ ...config_1.redisConfig,
618
+ };
619
+ Redis.connecting = null;
620
+ Redis.subClient = null;
621
+ exports.default = Redis;
622
+ //# sourceMappingURL=Redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redis.js","sourceRoot":"","sources":["../../../../src/framework/Redis/Redis.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,mCAAqC;AACrC,iCAIe;AACf,+CAAgE;AAChE,mCAOiB;AACjB,qCAAqC;AAErC,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,YAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,uBAAuB,CAAC,GAAG,EAC3B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAgB;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC;IAC1C,MAAM,QAAQ,GACZ,GAAG,CAAC,iBAAiB,IAAI,0BAAkB,CAAC,iBAAiB,CAAC;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,CAAC,OAAe,EAAE,EAAE;QACzB,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB,EAAE,IAAY,EAAE,IAAY;IACnE,MAAM,MAAM,GAA4B;QACtC,IAAI;QACJ,IAAI;QACJ,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,0BAAkB,CAAC,cAAc;QACvE,iBAAiB,EAAE,sBAAsB,CAAC,GAAG,CAAC;KAC/C,CAAC;IACF,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,MAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAC;QACjE,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,GAAgB;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,OAAO;QACL,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,QAAQ,EAAE,QAAQ,IAAI,SAAS;KAChC,CAAC;AACJ,CAAC;AAGD,SAAS,iBAAiB,CAAC,GAAgB;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAU,CAAC;IAExB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,qBAAa,EAAC;YACnB,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAQ;aAC5D,CAAC,CAAC;YACH,QAAQ,EAAE;gBACR,GAAG,IAAI;gBACP,MAAM,EAAE,eAAe,CACrB,GAAG,EACH,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EACd,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,IAAI,CAChB;aACT;YACD,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,sBAAc,EAAC;YACpB,IAAI;YACJ,IAAI;YACJ,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK;aACtB,CAAC,CAAC;YACH,iBAAiB,EAAE;gBACjB,GAAG,IAAI;gBACP,MAAM,EAAE,eAAe,CACrB,GAAG,EACH,GAAG,CAAC,IAAI,IAAI,0BAAkB,CAAC,IAAI,EACnC,GAAG,CAAC,IAAI,IAAI,0BAAkB,CAAC,IAAI,CAC7B;aACT;YACD,qBAAqB,EAAE;gBACrB,GAAG,IAAI;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,0BAAkB,CAAC,IAAI,CAAC;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,0BAAkB,CAAC,IAAI,CAAC;IACjD,OAAO,IAAA,oBAAY,EAAC;QAClB,IAAI;QACJ,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAQ;QAC/C,GAAG,IAAI;QACP,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,0BAAkB,CAAC,EAAE;KAC1C,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;CAiBtB,CAAC,IAAI,EAAE,CAAC;AAMT,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;CAa9B,CAAC,IAAI,EAAE,CAAC;AAGT,MAAM,mBAAmB,GAAG;;;;;CAK3B,CAAC,IAAI,EAAE,CAAC;AAGT,MAAM,kBAAkB,GAAG;;;;;CAK1B,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,WAAW;IAClB,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAMD,MAAM,KAAK;IAUD,MAAM,CAAC,KAAK,CAAC,WAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAGD,MAAM,CAAC,SAAS,CAAC,SAAsB,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,0BAAkB;YACrB,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,MAAM;YACT,GAAG,EAAE;gBACH,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG;gBAClB,GAAG,MAAM,CAAC,GAAG;aACd;YACD,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;gBACtB,GAAG,MAAM,CAAC,OAAO;aAClB;YACD,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACvB,GAAG,MAAM,CAAC,QAAQ;aACnB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;IAChC,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAoB;QACvC,IAAI,MAAM;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAE5C,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,GAAG,GAAgB;gBACvB,GAAG,0BAAkB;gBACrB,GAAG,IAAI,CAAC,MAAM;aACf,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,sBAAa,KAAK,YAAY,CAAC;gBAClD,MAAM,GAAG,GACP,6DAA6D,CAAC;gBAChE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC;wBACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC;wBACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBAC3B,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAEtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAChC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC;YACtC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,6BAA6B,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,GAAG,MAAM,EAAE,CACjE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,eAAe,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU;QACrB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAqB,EAAE,EAAE;YAC5C,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS;QACpB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,0BAAkB,CAAC,SAAS,CAAC;QACrE,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;IAC1D,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,GAAW,EACX,KAAa,EACb,UAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,GAAW,EACX,KAAc,EACd,UAAmB;QAEnB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAc,GAAW;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAc;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAW;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,UAAkB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,GAAW,EACX,KAAa,EACb,UAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;YACxC,EAAE,EAAE,IAAI;YACR,GAAG,CAAC,UAAU,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,MAAM,KAAK,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,GAAW,EACX,KAAa,EACb,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;YACpD,EAAE,EAAE,IAAI;YACR,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,KAAK,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,GAAW,EACX,WAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACrD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS,EAAE,CAAC,WAAW,CAAC;SACzB,CAAC,CAAW,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,GAAW,EACX,WAAmB,EACnB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SACrD,CAAC,CAAW,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,GAAW,EACX,SAAwB,EAAE;QAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAM,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAQ,GAAG,GAAG,EAAE,CAAC;QACrE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,KAAK;YACL,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;YACjD,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,GAAW,EACX,EAAwB,EACxB,SAAyB,EAAE;QAE3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAM,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,kBAAS,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,UAAU,GACd,MAAM,CAAC,eAAe,KAAK,SAAS;YAClC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;QAC7B,IAAI,KAAK,GAA0C,IAAI,CAAC;QACxD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBACvB,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAEpC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,UAAU,CAAC,CAAC;YACf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBACjD,KAAwB,CAAC,KAAK,EAAE,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,GAAW,EACX,KAAa,EACb,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,KAAa;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,SAAS,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,MAAgB;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAAiB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAAiB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAG,MAAgB;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAG,MAAgB;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,GAAW,EACX,KAAa,EACb,IAAY;QAEZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,GAAW,EACX,OAAgD;QAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACb,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CACzD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,GAAW,EACX,GAAW,EACX,GAAW;QAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,GAAW,EACX,GAAoB,EACpB,GAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAAiB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAW;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,MAAc;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAQD,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,EAAqD;QAErD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,EAAE,CAAC,KAAK,CAAC,CAAC;QACV,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAc,CAAC;IAC3C,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,OAAe,EACf,QAAoD;QAEpD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAgB,EAAE,GAAG,0BAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAU,CAAC;QAC5B,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAe,EAAE,EAAU,EAAE,EAAE;YAC3D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,GAAW,EACX,KAAa,EACb,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,GAAW,EACX,KAAc,EACd,KAAa;QAEb,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,GAAW,EACX,WAAmB,EACnB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAChD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAChD,CAAC,CAAkB,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7B,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,GAAW,EACX,WAAmB,EACnB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS,EAAE;gBACT,MAAM,CAAC,GAAG,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC;gBACb,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aAC1B;SACF,CAAC,CAAkB,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7B,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAc;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;gBACtC,KAAK,EAAE,GAAG,IAAI,GAAG;gBACjB,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAgB,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;;AAjmBc,YAAM,GAAuB,IAAI,CAAC;AAClC,YAAM,GAAgB;IACnC,GAAG,0BAAkB;IACrB,GAAG,oBAAW;CACf,CAAC;AACa,gBAAU,GAAyB,IAAI,CAAC;AAExC,eAAS,GAAuB,IAAI,CAAC;AA+lBtD,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type CacheableOption, type CacheEvictOption } from "./types";
2
+ export declare function Cacheable(option?: CacheableOption): MethodDecorator;
3
+ export declare function CacheEvict(option?: CacheEvictOption): MethodDecorator;
4
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/framework/Redis/cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAgCjF,wBAAgB,SAAS,CAAC,MAAM,GAAE,eAAoB,GAAG,eAAe,CAqBvE;AAQD,wBAAgB,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,eAAe,CAyBzE"}