qidian-shared 1.0.71 → 1.0.73

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 (250) hide show
  1. package/dist/_virtual/___vite-browser-external.mjs +0 -1
  2. package/dist/_virtual/__vite-browser-external.mjs +0 -1
  3. package/dist/_virtual/_commonjs-dynamic-modules.mjs +0 -1
  4. package/dist/_virtual/_commonjsHelpers.mjs +0 -1
  5. package/dist/_virtual/aes.mjs +0 -1
  6. package/dist/_virtual/blowfish.mjs +0 -1
  7. package/dist/_virtual/cipher-core.mjs +0 -1
  8. package/dist/_virtual/core.mjs +0 -1
  9. package/dist/_virtual/enc-base64.mjs +0 -1
  10. package/dist/_virtual/enc-base64url.mjs +0 -1
  11. package/dist/_virtual/enc-utf16.mjs +0 -1
  12. package/dist/_virtual/evpkdf.mjs +0 -1
  13. package/dist/_virtual/format-hex.mjs +0 -1
  14. package/dist/_virtual/hmac.mjs +0 -1
  15. package/dist/_virtual/index.mjs +0 -1
  16. package/dist/_virtual/index2.mjs +0 -1
  17. package/dist/_virtual/lib-typedarrays.mjs +0 -1
  18. package/dist/_virtual/md5.mjs +0 -1
  19. package/dist/_virtual/mode-cfb.mjs +0 -1
  20. package/dist/_virtual/mode-ctr-gladman.mjs +0 -1
  21. package/dist/_virtual/mode-ctr.mjs +0 -1
  22. package/dist/_virtual/mode-ecb.mjs +0 -1
  23. package/dist/_virtual/mode-ofb.mjs +0 -1
  24. package/dist/_virtual/pad-ansix923.mjs +0 -1
  25. package/dist/_virtual/pad-iso10126.mjs +0 -1
  26. package/dist/_virtual/pad-iso97971.mjs +0 -1
  27. package/dist/_virtual/pad-nopadding.mjs +0 -1
  28. package/dist/_virtual/pad-zeropadding.mjs +0 -1
  29. package/dist/_virtual/pbkdf2.mjs +0 -1
  30. package/dist/_virtual/rabbit-legacy.mjs +0 -1
  31. package/dist/_virtual/rabbit.mjs +0 -1
  32. package/dist/_virtual/rc4.mjs +0 -1
  33. package/dist/_virtual/ripemd160.mjs +0 -1
  34. package/dist/_virtual/sha1.mjs +0 -1
  35. package/dist/_virtual/sha224.mjs +0 -1
  36. package/dist/_virtual/sha256.mjs +0 -1
  37. package/dist/_virtual/sha3.mjs +0 -1
  38. package/dist/_virtual/sha384.mjs +0 -1
  39. package/dist/_virtual/sha512.mjs +0 -1
  40. package/dist/_virtual/tripledes.mjs +0 -1
  41. package/dist/_virtual/x64-core.mjs +0 -1
  42. package/dist/directive/resize.mjs +0 -1
  43. package/dist/hooks/useActivated.mjs +0 -1
  44. package/dist/hooks/useAutofocus.mjs +0 -1
  45. package/dist/hooks/useCsl.mjs +0 -1
  46. package/dist/hooks/useDoubleClick.mjs +0 -1
  47. package/dist/hooks/useProxy.mjs +0 -1
  48. package/dist/hooks/useService/loadMore.mjs +0 -1
  49. package/dist/hooks/useService/pagination.mjs +11 -7
  50. package/dist/hooks/useService/types.d.ts +1 -0
  51. package/dist/hooks/useTimer.mjs +0 -1
  52. package/dist/hooks/useTplRefsList.mjs +0 -1
  53. package/dist/index.mjs +0 -1
  54. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.mjs +0 -1
  55. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.mjs +0 -1
  56. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.mjs +0 -1
  57. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.mjs +0 -1
  58. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.mjs +0 -1
  59. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.mjs +0 -1
  60. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.mjs +0 -1
  61. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.mjs +0 -1
  62. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.mjs +0 -1
  63. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.mjs +0 -1
  64. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.mjs +0 -1
  65. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.mjs +0 -1
  66. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.mjs +0 -1
  67. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.mjs +0 -1
  68. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.mjs +0 -1
  69. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.mjs +0 -1
  70. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.mjs +0 -1
  71. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.mjs +0 -1
  72. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.mjs +0 -1
  73. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.mjs +0 -1
  74. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.mjs +0 -1
  75. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.mjs +0 -1
  76. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.mjs +0 -1
  77. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.mjs +0 -1
  78. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.mjs +0 -1
  79. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.mjs +0 -1
  80. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.mjs +0 -1
  81. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.mjs +0 -1
  82. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.mjs +0 -1
  83. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.mjs +0 -1
  84. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.mjs +0 -1
  85. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.mjs +0 -1
  86. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.mjs +0 -1
  87. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.mjs +0 -1
  88. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.mjs +0 -1
  89. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.mjs +0 -1
  90. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/JSEncrypt.mjs +0 -1
  91. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/JSEncryptRSAKey.mjs +0 -1
  92. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/index.mjs +0 -1
  93. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/asn1.mjs +0 -1
  94. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/base64.mjs +0 -1
  95. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/hex.mjs +0 -1
  96. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/int10.mjs +0 -1
  97. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/base64.mjs +0 -1
  98. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/jsbn.mjs +0 -1
  99. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/prng4.mjs +0 -1
  100. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/rng.mjs +0 -1
  101. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/rsa.mjs +0 -1
  102. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/sha256.mjs +0 -1
  103. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/util.mjs +0 -1
  104. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.mjs +0 -1
  105. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/regular/jsonrepair.mjs +0 -1
  106. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/JSONRepairError.mjs +0 -1
  107. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/stringUtils.mjs +0 -1
  108. package/dist/node_modules/.pnpm/vue-request@2.0.4_vue@3.5.26_typescript@5.9.3_/node_modules/vue-request/dist/index.es.mjs +0 -1
  109. package/dist/utils/calc.mjs +0 -1
  110. package/dist/utils/common.mjs +0 -1
  111. package/dist/utils/conversion.mjs +0 -1
  112. package/dist/utils/crypto.mjs +0 -1
  113. package/dist/utils/dom.mjs +0 -1
  114. package/dist/utils/download.mjs +0 -1
  115. package/dist/utils/file.mjs +0 -1
  116. package/dist/utils/glob.mjs +0 -1
  117. package/dist/utils/jsencrypt.mjs +0 -1
  118. package/dist/utils/json.mjs +0 -1
  119. package/dist/utils/promise.mjs +0 -1
  120. package/dist/utils/str.mjs +0 -1
  121. package/dist/utils/type.mjs +0 -1
  122. package/dist/utils/url.mjs +0 -1
  123. package/dist/utils/validator.mjs +0 -1
  124. package/dist/vite/qidian-vite-plugin.cjs.js +15 -2
  125. package/dist/vite/qidian-vite-plugin.cjs.js.map +1 -1
  126. package/dist/vite/qidian-vite-plugin.es.js +15 -2
  127. package/dist/vite/qidian-vite-plugin.es.js.map +1 -1
  128. package/package.json +1 -1
  129. package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
  130. package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
  131. package/dist/_virtual/_commonjs-dynamic-modules.mjs.map +0 -1
  132. package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
  133. package/dist/_virtual/aes.mjs.map +0 -1
  134. package/dist/_virtual/blowfish.mjs.map +0 -1
  135. package/dist/_virtual/cipher-core.mjs.map +0 -1
  136. package/dist/_virtual/core.mjs.map +0 -1
  137. package/dist/_virtual/enc-base64.mjs.map +0 -1
  138. package/dist/_virtual/enc-base64url.mjs.map +0 -1
  139. package/dist/_virtual/enc-utf16.mjs.map +0 -1
  140. package/dist/_virtual/evpkdf.mjs.map +0 -1
  141. package/dist/_virtual/format-hex.mjs.map +0 -1
  142. package/dist/_virtual/hmac.mjs.map +0 -1
  143. package/dist/_virtual/index.mjs.map +0 -1
  144. package/dist/_virtual/index2.mjs.map +0 -1
  145. package/dist/_virtual/lib-typedarrays.mjs.map +0 -1
  146. package/dist/_virtual/md5.mjs.map +0 -1
  147. package/dist/_virtual/mode-cfb.mjs.map +0 -1
  148. package/dist/_virtual/mode-ctr-gladman.mjs.map +0 -1
  149. package/dist/_virtual/mode-ctr.mjs.map +0 -1
  150. package/dist/_virtual/mode-ecb.mjs.map +0 -1
  151. package/dist/_virtual/mode-ofb.mjs.map +0 -1
  152. package/dist/_virtual/pad-ansix923.mjs.map +0 -1
  153. package/dist/_virtual/pad-iso10126.mjs.map +0 -1
  154. package/dist/_virtual/pad-iso97971.mjs.map +0 -1
  155. package/dist/_virtual/pad-nopadding.mjs.map +0 -1
  156. package/dist/_virtual/pad-zeropadding.mjs.map +0 -1
  157. package/dist/_virtual/pbkdf2.mjs.map +0 -1
  158. package/dist/_virtual/rabbit-legacy.mjs.map +0 -1
  159. package/dist/_virtual/rabbit.mjs.map +0 -1
  160. package/dist/_virtual/rc4.mjs.map +0 -1
  161. package/dist/_virtual/ripemd160.mjs.map +0 -1
  162. package/dist/_virtual/sha1.mjs.map +0 -1
  163. package/dist/_virtual/sha224.mjs.map +0 -1
  164. package/dist/_virtual/sha256.mjs.map +0 -1
  165. package/dist/_virtual/sha3.mjs.map +0 -1
  166. package/dist/_virtual/sha384.mjs.map +0 -1
  167. package/dist/_virtual/sha512.mjs.map +0 -1
  168. package/dist/_virtual/tripledes.mjs.map +0 -1
  169. package/dist/_virtual/x64-core.mjs.map +0 -1
  170. package/dist/directive/resize.mjs.map +0 -1
  171. package/dist/hooks/useActivated.mjs.map +0 -1
  172. package/dist/hooks/useAutofocus.mjs.map +0 -1
  173. package/dist/hooks/useCsl.mjs.map +0 -1
  174. package/dist/hooks/useDoubleClick.mjs.map +0 -1
  175. package/dist/hooks/useProxy.mjs.map +0 -1
  176. package/dist/hooks/useService/loadMore.mjs.map +0 -1
  177. package/dist/hooks/useService/pagination.mjs.map +0 -1
  178. package/dist/hooks/useTimer.mjs.map +0 -1
  179. package/dist/hooks/useTplRefsList.mjs.map +0 -1
  180. package/dist/index.mjs.map +0 -1
  181. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.mjs.map +0 -1
  182. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.mjs.map +0 -1
  183. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.mjs.map +0 -1
  184. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.mjs.map +0 -1
  185. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.mjs.map +0 -1
  186. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.mjs.map +0 -1
  187. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.mjs.map +0 -1
  188. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.mjs.map +0 -1
  189. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.mjs.map +0 -1
  190. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.mjs.map +0 -1
  191. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.mjs.map +0 -1
  192. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.mjs.map +0 -1
  193. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.mjs.map +0 -1
  194. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.mjs.map +0 -1
  195. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.mjs.map +0 -1
  196. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.mjs.map +0 -1
  197. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.mjs.map +0 -1
  198. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.mjs.map +0 -1
  199. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.mjs.map +0 -1
  200. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.mjs.map +0 -1
  201. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.mjs.map +0 -1
  202. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.mjs.map +0 -1
  203. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.mjs.map +0 -1
  204. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.mjs.map +0 -1
  205. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.mjs.map +0 -1
  206. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.mjs.map +0 -1
  207. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.mjs.map +0 -1
  208. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.mjs.map +0 -1
  209. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.mjs.map +0 -1
  210. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.mjs.map +0 -1
  211. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.mjs.map +0 -1
  212. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.mjs.map +0 -1
  213. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.mjs.map +0 -1
  214. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.mjs.map +0 -1
  215. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.mjs.map +0 -1
  216. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.mjs.map +0 -1
  217. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/JSEncrypt.mjs.map +0 -1
  218. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/JSEncryptRSAKey.mjs.map +0 -1
  219. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/index.mjs.map +0 -1
  220. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/asn1.mjs.map +0 -1
  221. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/base64.mjs.map +0 -1
  222. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/hex.mjs.map +0 -1
  223. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/asn1js/int10.mjs.map +0 -1
  224. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/base64.mjs.map +0 -1
  225. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/jsbn.mjs.map +0 -1
  226. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/prng4.mjs.map +0 -1
  227. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/rng.mjs.map +0 -1
  228. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/rsa.mjs.map +0 -1
  229. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/sha256.mjs.map +0 -1
  230. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsbn/util.mjs.map +0 -1
  231. package/dist/node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.mjs.map +0 -1
  232. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/regular/jsonrepair.mjs.map +0 -1
  233. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/JSONRepairError.mjs.map +0 -1
  234. package/dist/node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/stringUtils.mjs.map +0 -1
  235. package/dist/node_modules/.pnpm/vue-request@2.0.4_vue@3.5.26_typescript@5.9.3_/node_modules/vue-request/dist/index.es.mjs.map +0 -1
  236. package/dist/utils/calc.mjs.map +0 -1
  237. package/dist/utils/common.mjs.map +0 -1
  238. package/dist/utils/conversion.mjs.map +0 -1
  239. package/dist/utils/crypto.mjs.map +0 -1
  240. package/dist/utils/dom.mjs.map +0 -1
  241. package/dist/utils/download.mjs.map +0 -1
  242. package/dist/utils/file.mjs.map +0 -1
  243. package/dist/utils/glob.mjs.map +0 -1
  244. package/dist/utils/jsencrypt.mjs.map +0 -1
  245. package/dist/utils/json.mjs.map +0 -1
  246. package/dist/utils/promise.mjs.map +0 -1
  247. package/dist/utils/str.mjs.map +0 -1
  248. package/dist/utils/type.mjs.map +0 -1
  249. package/dist/utils/url.mjs.map +0 -1
  250. package/dist/utils/validator.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"asn1-1.0.mjs","sources":["../../../../../../../../../../../node_modules/.pnpm/jsencrypt@3.5.4/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js"],"sourcesContent":["/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\nimport { BigInteger } from \"../jsbn/jsbn\";\nexport function extendClass(subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n}\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nexport var KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substring(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substring(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n var biMask = new BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, '');\n }\n return h;\n };\n /**\n * get PEM string from hexadecimal data and header string\n * @name getPEMStringFromHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} dataHex hexadecimal string of PEM body\n * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')\n * @return {String} PEM formatted string of input data\n * @description\n * This method converts a hexadecimal string to a PEM string with\n * a specified header. Its line break will be CRLF(\"\\r\\n\").\n * @example\n * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');\n * // value of pem will be:\n * -----BEGIN PRIVATE KEY-----\n * YWFh\n * -----END PRIVATE KEY-----\n */\n this.getPEMStringFromHex = function (dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n /**\n * generate ASN1Object specifed by JSON parameters\n * @name newObject\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return {KJUR.asn1.ASN1Object} generated object\n * @since asn1 1.0.3\n * @description\n * generate any ASN1Object specified by JSON param\n * including ASN.1 primitive or structured.\n * Generally 'param' can be described as follows:\n * <blockquote>\n * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}\n * </blockquote>\n * 'TYPE-OF-ASN1OBJ' can be one of following symbols:\n * <ul>\n * <li>'bool' - DERBoolean</li>\n * <li>'int' - DERInteger</li>\n * <li>'bitstr' - DERBitString</li>\n * <li>'octstr' - DEROctetString</li>\n * <li>'null' - DERNull</li>\n * <li>'oid' - DERObjectIdentifier</li>\n * <li>'enum' - DEREnumerated</li>\n * <li>'utf8str' - DERUTF8String</li>\n * <li>'numstr' - DERNumericString</li>\n * <li>'prnstr' - DERPrintableString</li>\n * <li>'telstr' - DERTeletexString</li>\n * <li>'ia5str' - DERIA5String</li>\n * <li>'utctime' - DERUTCTime</li>\n * <li>'gentime' - DERGeneralizedTime</li>\n * <li>'seq' - DERSequence</li>\n * <li>'set' - DERSet</li>\n * <li>'tag' - DERTaggedObject</li>\n * </ul>\n * @example\n * newObject({'prnstr': 'aaa'});\n * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})\n * // ASN.1 Tagged Object\n * newObject({'tag': {'tag': 'a1',\n * 'explicit': true,\n * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});\n * // more simple representation of ASN.1 Tagged Object\n * newObject({'tag': ['a1',\n * true,\n * {'seq': [\n * {'int': 3},\n * {'prnstr': 'aaa'}]}\n * ]});\n */\n this.newObject = function (param) {\n var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n if (key == \"bool\")\n return new _DERBoolean(param[key]);\n if (key == \"int\")\n return new _DERInteger(param[key]);\n if (key == \"bitstr\")\n return new _DERBitString(param[key]);\n if (key == \"octstr\")\n return new _DEROctetString(param[key]);\n if (key == \"null\")\n return new _DERNull(param[key]);\n if (key == \"oid\")\n return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\")\n return new _DEREnumerated(param[key]);\n if (key == \"utf8str\")\n return new _DERUTF8String(param[key]);\n if (key == \"numstr\")\n return new _DERNumericString(param[key]);\n if (key == \"prnstr\")\n return new _DERPrintableString(param[key]);\n if (key == \"telstr\")\n return new _DERTeletexString(param[key]);\n if (key == \"ia5str\")\n return new _DERIA5String(param[key]);\n if (key == \"utctime\")\n return new _DERUTCTime(param[key]);\n if (key == \"gentime\")\n return new _DERGeneralizedTime(param[key]);\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({ 'array': a });\n }\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({ 'array': a });\n }\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === '[object Array]' &&\n tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({\n tag: tagParam[0],\n explicit: tagParam[1],\n obj: obj\n });\n }\n else {\n var newParam = {};\n if (tagParam.explicit !== undefined)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== undefined)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === undefined)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n /**\n * get encoded hexadecimal string of ASN1Object specifed by JSON parameters\n * @name jsonToASN1HEX\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return hexadecimal string of ASN1Object\n * @since asn1 1.0.4\n * @description\n * As for ASN.1 object representation of JSON object,\n * please see {@link newObject}.\n * @example\n * jsonToASN1HEX({'prnstr': 'aaa'});\n */\n this.jsonToASN1HEX = function (param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n};\n/**\n * get dot noted oid number string from hexadecimal value of OID\n * @name oidHexToInt\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} hex hexadecimal value of object identifier\n * @return {String} dot noted string of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from hexadecimal string representation of\n * ASN.1 value of object identifier to oid number string.\n * @example\n * KJUR.asn1.ASN1Util.oidHexToInt('550406') &rarr; \"2.5.4.6\"\n */\nKJUR.asn1.ASN1Util.oidHexToInt = function (hex) {\n var s = \"\";\n var i01 = parseInt(hex.substring(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substring(i, i + 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(-8);\n binbuf = binbuf + bin.substring(1, 8);\n if (bin.substring(0, 1) == \"0\") {\n var bi = new BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n ;\n return s;\n};\n/**\n * get hexadecimal value of object identifier from dot noted oid value\n * @name oidIntToHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} oidString dot noted string of object identifier\n * @return {String} hexadecimal value of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from object identifier value string.\n * to hexadecimal string representation of it.\n * @example\n * KJUR.asn1.ASN1Util.oidIntToHex(\"2.5.4.6\") &rarr; \"550406\"\n */\nKJUR.asn1.ASN1Util.oidIntToHex = function (oidString) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substring(i, i + 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\n// ********************************************************************\n// Abstract ASN.1 Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * base class for ASN.1 DER encoder object\n * @name KJUR.asn1.ASN1Object\n * @class base class for ASN.1 DER encoder object\n * @property {Boolean} isModified flag whether internal data was changed\n * @property {String} hTLV hexadecimal string of ASN.1 TLV\n * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)\n * @property {String} hL hexadecimal string of ASN.1 TLV length(L)\n * @property {String} hV hexadecimal string of ASN.1 TLV value(V)\n * @description\n */\nKJUR.asn1.ASN1Object = function () {\n var isModified = true;\n var hTLV = null;\n var hT = '00';\n var hL = '00';\n var hV = '';\n /**\n * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)\n * @name getLengthHexFromValue\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV length(L)\n */\n this.getLengthHexFromValue = function () {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n }\n else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n /**\n * get hexadecimal string of ASN.1 TLV bytes\n * @name getEncodedHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV\n */\n this.getEncodedHex = function () {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n //alert(\"first time: \" + this.hTLV);\n }\n return this.hTLV;\n };\n /**\n * get hexadecimal string of ASN.1 TLV value(V) bytes\n * @name getValueHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes\n */\n this.getValueHex = function () {\n this.getEncodedHex();\n return this.hV;\n };\n this.getFreshValueHex = function () {\n return '';\n };\n};\n// == BEGIN DERAbstractString ================================================\n/**\n * base class for ASN.1 DER string classes\n * @name KJUR.asn1.DERAbstractString\n * @class base class for ASN.1 DER string classes\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @property {String} s internal string of value\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERAbstractString = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var s = null;\n var hV = null;\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @return {String} string value of this string object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newS value by a string to set\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n /**\n * set value by a hexadecimal string\n * @name setStringHex\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newHexString value by a hexadecimal string to set\n */\n this.setStringHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n }\n else if (typeof params['str'] != \"undefined\") {\n this.setString(params['str']);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setStringHex(params['hex']);\n }\n }\n};\nextendClass(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\n// == END DERAbstractString ================================================\n// == BEGIN DERAbstractTime ==================================================\n/**\n * base class for ASN.1 DER Generalized/UTCTime class\n * @name KJUR.asn1.DERAbstractTime\n * @class base class for ASN.1 DER Generalized/UTCTime class\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractTime = function (params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n var s = null;\n var date = null;\n // --- PRIVATE METHODS --------------------\n this.localDateToUTC = function (d) {\n utc = d.getTime() + (d.getTimezoneOffset() * 60000);\n var utcDate = new Date(utc);\n return utcDate;\n };\n /*\n * format date string by Data object\n * @name formatDate\n * @memberOf KJUR.asn1.AbstractTime;\n * @param {Date} dateObject\n * @param {string} type 'utc' or 'gen'\n * @param {boolean} withMillis flag for with millisections or not\n * @description\n * 'withMillis' flag is supported from asn1 1.0.6.\n */\n this.formatDate = function (dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == 'utc')\n year = year.substring(2, 4);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n this.zeroPadding = function (s, len) {\n if (s.length >= len)\n return s;\n return new Array(len - s.length + 1).join('0') + s;\n };\n // --- PUBLIC METHODS --------------------\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @return {String} string value of this time object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {String} newS value by a string to set such like \"130430235959Z\"\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n /**\n * set value by a Date object\n * @name setByDateValue\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {Integer} year year of date (ex. 2013)\n * @param {Integer} month month of date between 1 and 12 (ex. 12)\n * @param {Integer} day day of month\n * @param {Integer} hour hours of date\n * @param {Integer} min minutes of date\n * @param {Integer} sec seconds of date\n */\n this.setByDateValue = function (year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n};\nextendClass(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\n// == END DERAbstractTime ==================================================\n// == BEGIN DERAbstractStructured ============================================\n/**\n * base class for ASN.1 DER structured class\n * @name KJUR.asn1.DERAbstractStructured\n * @class base class for ASN.1 DER structured class\n * @property {Array} asn1Array internal array of ASN1Object\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractStructured = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var asn1Array = null;\n /**\n * set value by array of ASN1Object\n * @name setByASN1ObjectArray\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {array} asn1ObjectArray array of ASN1Object to set\n */\n this.setByASN1ObjectArray = function (asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n /**\n * append an ASN1Object to internal array\n * @name appendASN1Object\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {ASN1Object} asn1Object to add\n */\n this.appendASN1Object = function (asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params['array'] != \"undefined\") {\n this.asn1Array = params['array'];\n }\n }\n};\nextendClass(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\n// ********************************************************************\n// ASN.1 Object Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * class for ASN.1 DER Boolean\n * @name KJUR.asn1.DERBoolean\n * @class class for ASN.1 DER Boolean\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERBoolean = function () {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\nextendClass(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Integer\n * @name KJUR.asn1.DERInteger\n * @class class for ASN.1 DER Integer\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>int - specify initial ASN.1 value(V) by integer value</li>\n * <li>bigint - specify initial ASN.1 value(V) by BigInteger object</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERInteger = function (params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DERInteger\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n * <br/>\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n * @example\n * new KJUR.asn1.DERInteger(123);\n * new KJUR.asn1.DERInteger({'int': 123});\n * new KJUR.asn1.DERInteger({'hex': '1fad'});\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['bigint'] != \"undefined\") {\n this.setByBigInteger(params['bigint']);\n }\n else if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nextendClass(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER encoded BitString primitive\n * @name KJUR.asn1.DERBitString\n * @class class for ASN.1 DER encoded BitString primitive\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>bin - specify binary string (ex. '10111')</li>\n * <li>array - specify array of boolean (ex. [true,false,true,true])</li>\n * <li>hex - specify hexadecimal string of ASN.1 value(V) including unused bits</li>\n * <li>obj - specify {@link KJUR.asn1.ASN1Util.newObject}\n * argument for \"BitString encapsulates\" structure.</li>\n * </ul>\n * NOTE1: 'params' can be omitted.<br/>\n * NOTE2: 'obj' parameter have been supported since\n * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).<br/>\n * @example\n * // default constructor\n * o = new KJUR.asn1.DERBitString();\n * // initialize with binary string\n * o = new KJUR.asn1.DERBitString({bin: \"1011\"});\n * // initialize with boolean array\n * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});\n * // initialize with hexadecimal string (04 is unused bits)\n * o = new KJUR.asn1.DEROctetString({hex: \"04bac0\"});\n * // initialize with ASN1Util.newObject argument for encapsulated\n * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // BIT STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DERBitString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n /**\n * set ASN.1 value(V) by a hexadecimal string including unused bits\n * @name setHexValueIncludingUnusedBits\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} newHexStringIncludingUnusedBits\n */\n this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n /**\n * set ASN.1 value(V) by unused bit and hexadecimal string of value\n * @name setUnusedBitsAndHexValue\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {Integer} unusedBits\n * @param {String} hValue\n */\n this.setUnusedBitsAndHexValue = function (unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n /**\n * set ASN.1 DER BitString by binary string<br/>\n * @name setByBinaryString\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} binaryString binary value string (i.e. '10111')\n * @description\n * Its unused bits will be calculated automatically by length of\n * 'binaryValue'. <br/>\n * NOTE: Trailing zeros '0' will be ignored.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray(\"01011\");\n */\n this.setByBinaryString = function (binaryString) {\n binaryString = binaryString.replace(/0+$/, '');\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8)\n unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += '0';\n }\n var h = '';\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substring(i, i + 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1)\n x = '0' + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = '0' + unusedBits + h;\n };\n /**\n * set ASN.1 TLV value(V) by an array of boolean<br/>\n * @name setByBooleanArray\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {array} booleanArray array of boolean (ex. [true, false, true])\n * @description\n * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray([false, true, false, true, true]);\n */\n this.setByBooleanArray = function (booleanArray) {\n var s = '';\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += '1';\n }\n else {\n s += '0';\n }\n }\n this.setByBinaryString(s);\n };\n /**\n * generate an array of falses with specified length<br/>\n * @name newFalseArray\n * @memberOf KJUR.asn1.DERBitString\n * @function\n * @param {Integer} nLength length of array to generate\n * @return {array} array of boolean falses\n * @description\n * This static method may be useful to initialize boolean array.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.newFalseArray(3) &rarr; [false, false, false]\n */\n this.newFalseArray = function (nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params['hex']);\n }\n else if (typeof params['bin'] != \"undefined\") {\n this.setByBinaryString(params['bin']);\n }\n else if (typeof params['array'] != \"undefined\") {\n this.setByBooleanArray(params['array']);\n }\n }\n};\nextendClass(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER OctetString<br/>\n * @name KJUR.asn1.DEROctetString\n * @class class for ASN.1 DER OctetString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * This class provides ASN.1 OctetString simple type.<br/>\n * Supported \"params\" attributes are:\n * <ul>\n * <li>str - to set a string as a value</li>\n * <li>hex - to set a hexadecimal string as a value</li>\n * <li>obj - to set a encapsulated ASN.1 value by JSON object\n * which is defined in {@link KJUR.asn1.ASN1Util.newObject}</li>\n * </ul>\n * NOTE: A parameter 'obj' have been supported\n * for \"OCTET STRING, encapsulates\" structure.\n * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).\n * @see KJUR.asn1.DERAbstractString - superclass\n * @example\n * // default constructor\n * o = new KJUR.asn1.DEROctetString();\n * // initialize with string\n * o = new KJUR.asn1.DEROctetString({str: \"aaa\"});\n * // initialize with hexadecimal string\n * o = new KJUR.asn1.DEROctetString({hex: \"616161\"});\n * // initialize with ASN1Util.newObject argument\n * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // OCTET STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DEROctetString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\nextendClass(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER Null\n * @name KJUR.asn1.DERNull\n * @class class for ASN.1 DER Null\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERNull = function () {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\nextendClass(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER ObjectIdentifier\n * @name KJUR.asn1.DERObjectIdentifier\n * @class class for ASN.1 DER ObjectIdentifier\n * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERObjectIdentifier = function (params) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substring(i, i + 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n /**\n * set value by a hexadecimal string\n * @name setValueHex\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} newHexString hexadecimal value of OID bytes\n */\n this.setValueHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n /**\n * set value by a OID string<br/>\n * @name setValueOidString\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidString OID string (ex. 2.5.4.13)\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueOidString(\"2.5.4.13\");\n */\n this.setValueOidString = function (oidString) {\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n /**\n * set value by a OID name\n * @name setValueName\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidName OID name (ex. 'serverAuth')\n * @since 1.0.1\n * @description\n * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.\n * Otherwise raise error.\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueName(\"serverAuth\");\n */\n this.setValueName = function (oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== '') {\n this.setValueOidString(oid);\n }\n else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (params !== undefined) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n }\n else {\n this.setValueName(params);\n }\n }\n else if (params.oid !== undefined) {\n this.setValueOidString(params.oid);\n }\n else if (params.hex !== undefined) {\n this.setValueHex(params.hex);\n }\n else if (params.name !== undefined) {\n this.setValueName(params.name);\n }\n }\n};\nextendClass(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Enumerated\n * @name KJUR.asn1.DEREnumerated\n * @class class for ASN.1 DER Enumerated\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>int - specify initial ASN.1 value(V) by integer value</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n * @example\n * new KJUR.asn1.DEREnumerated(123);\n * new KJUR.asn1.DEREnumerated({int: 123});\n * new KJUR.asn1.DEREnumerated({hex: '1fad'});\n */\nKJUR.asn1.DEREnumerated = function (params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n * <br/>\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nextendClass(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTF8String\n * @name KJUR.asn1.DERUTF8String\n * @class class for ASN.1 DER UTF8String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERUTF8String = function (params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\nextendClass(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER NumericString\n * @name KJUR.asn1.DERNumericString\n * @class class for ASN.1 DER NumericString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERNumericString = function (params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\nextendClass(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER PrintableString\n * @name KJUR.asn1.DERPrintableString\n * @class class for ASN.1 DER PrintableString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERPrintableString = function (params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\nextendClass(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER TeletexString\n * @name KJUR.asn1.DERTeletexString\n * @class class for ASN.1 DER TeletexString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERTeletexString = function (params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\nextendClass(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER IA5String\n * @name KJUR.asn1.DERIA5String\n * @class class for ASN.1 DER IA5String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERIA5String = function (params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\nextendClass(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTCTime\n * @name KJUR.asn1.DERUTCTime\n * @class class for ASN.1 DER UTCTime\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * <li>date - specify Date object.</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n * <h4>EXAMPLES</h4>\n * @example\n * d1 = new KJUR.asn1.DERUTCTime();\n * d1.setString('130430125959Z');\n *\n * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});\n * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});\n * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');\n */\nKJUR.asn1.DERUTCTime = function (params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n /**\n * set value by a Date object<br/>\n * @name setByDate\n * @memberOf KJUR.asn1.DERUTCTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * o = new KJUR.asn1.DERUTCTime();\n * o.setByDate(new Date(\"2016/12/31\"));\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n }\n};\nextendClass(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER GeneralizedTime\n * @name KJUR.asn1.DERGeneralizedTime\n * @class class for ASN.1 DER GeneralizedTime\n * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})\n * @property {Boolean} withMillis flag to show milliseconds or not\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * <li>date - specify Date object.</li>\n * <li>millis - specify flag to show milliseconds (from 1.0.6)</li>\n * </ul>\n * NOTE1: 'params' can be omitted.\n * NOTE2: 'withMillis' property is supported from asn1 1.0.6.\n */\nKJUR.asn1.DERGeneralizedTime = function (params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n /**\n * set value by a Date object\n * @name setByDate\n * @memberOf KJUR.asn1.DERGeneralizedTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * When you specify UTC time, use 'Date.UTC' method like this:<br/>\n * o1 = new DERUTCTime();\n * o1.setByDate(date);\n *\n * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (this.date === undefined && this.s === undefined) {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\nextendClass(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER Sequence\n * @name KJUR.asn1.DERSequence\n * @class class for ASN.1 DER Sequence\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>array - specify array of ASN1Object to set elements of content</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERSequence = function (params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function () {\n var h = '';\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\nextendClass(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER Set\n * @name KJUR.asn1.DERSet\n * @class class for ASN.1 DER Set\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>array - specify array of ASN1Object to set elements of content</li>\n * <li>sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.</li>\n * </ul>\n * NOTE1: 'params' can be omitted.<br/>\n * NOTE2: sortflag is supported since 1.0.5.\n */\nKJUR.asn1.DERSet = function (params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true; // item shall be sorted only in ASN.1 DER\n this.getFreshValueHex = function () {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true)\n a.sort();\n this.hV = a.join('');\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" &&\n params.sortflag == false)\n this.sortFlag = false;\n }\n};\nextendClass(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER TaggedObject\n * @name KJUR.asn1.DERTaggedObject\n * @class class for ASN.1 DER TaggedObject\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.\n * For example, if you find '[1]' tag in a ASN.1 dump,\n * 'tagNoHex' will be 'a1'.\n * <br/>\n * As for optional argument 'params' for constructor, you can specify *ANY* of\n * following properties:\n * <ul>\n * <li>explicit - specify true if this is explicit tag otherwise false\n * (default is 'true').</li>\n * <li>tag - specify tag (default is 'a0' which means [0])</li>\n * <li>obj - specify ASN1Object which is tagged</li>\n * </ul>\n * @example\n * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});\n * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});\n * hex = d2.getEncodedHex();\n */\nKJUR.asn1.DERTaggedObject = function (params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = '';\n this.isExplicit = true;\n this.asn1Object = null;\n /**\n * set value by an ASN1Object\n * @name setString\n * @memberOf KJUR.asn1.DERTaggedObject#\n * @function\n * @param {Boolean} isExplicitFlag flag for explicit/implicit tag\n * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag\n * @param {ASN1Object} asn1Object ASN.1 to encapsulate\n */\n this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n }\n else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['tag'] != \"undefined\") {\n this.hT = params['tag'];\n }\n if (typeof params['explicit'] != \"undefined\") {\n this.isExplicit = params['explicit'];\n }\n if (typeof params['obj'] != \"undefined\") {\n this.asn1Object = params['obj'];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\nextendClass(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\n"],"names":["i","h"],"mappings":";AAcO,SAAS,YAAY,MAAM,QAAQ,WAAW;AACjD,MAAI,CAAC,UAAU,CAAC,MAAM;AAClB,UAAM,IAAI,MAAM,iEACoB;AAAA,EACxC;AACA,MAAI,IAAI,WAAY;AAAA,EAAE;AACtB,IAAE,YAAY,OAAO;AACrB,OAAK,YAAY,IAAI,EAAC;AACtB,OAAK,UAAU,cAAc;AAC7B,OAAK,aAAa,OAAO;AACzB,MAAI,OAAO,UAAU,eAAe,OAAO,UAAU,aAAa;AAC9D,WAAO,UAAU,cAAc;AAAA,EACnC;AAiCJ;AAwBU,IAAC,OAAO,CAAA;AAkDlB,IAAI,OAAO,KAAK,QAAQ,eAAe,CAAC,KAAK;AACzC,OAAK,OAAO,CAAA;AAOhB,KAAK,KAAK,WAAW,IAAI,WAAY;AACjC,OAAK,mBAAmB,SAAU,GAAG;AACjC,QAAI,IAAI,EAAE,SAAS,EAAE;AACrB,QAAK,EAAE,SAAS,KAAM;AAClB,UAAI,MAAM;AACd,WAAO;AAAA,EACX;AACA,OAAK,gCAAgC,SAAU,iBAAiB;AAC5D,QAAI,IAAI,gBAAgB,SAAS,EAAE;AACnC,QAAI,EAAE,UAAU,GAAG,CAAC,KAAK,KAAK;AAC1B,UAAI,EAAE,SAAS,KAAK,GAAG;AACnB,YAAI,MAAM;AAAA,MACd,OACK;AACD,YAAI,CAAC,EAAE,MAAM,QAAQ,GAAG;AACpB,cAAI,OAAO;AAAA,QACf;AAAA,MACJ;AAAA,IACJ,OACK;AACD,UAAI,OAAO,EAAE,UAAU,CAAC;AACxB,UAAI,SAAS,KAAK;AAClB,UAAI,SAAS,KAAK,GAAG;AACjB,kBAAU;AAAA,MACd,OACK;AACD,YAAI,CAAC,EAAE,MAAM,QAAQ,GAAG;AACpB,oBAAU;AAAA,QACd;AAAA,MACJ;AACA,UAAI,QAAQ;AACZ,eAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,iBAAS;AAAA,MACb;AACA,UAAI,SAAS,IAAI,WAAW,OAAO,EAAE;AACrC,UAAI,QAAQ,OAAO,IAAI,eAAe,EAAE,IAAI,WAAW,GAAG;AAC1D,UAAI,MAAM,SAAS,EAAE,EAAE,QAAQ,MAAM,EAAE;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;AAmBA,OAAK,sBAAsB,SAAU,SAAS,WAAW;AACrD,WAAO,SAAS,SAAS,SAAS;AAAA,EACtC;AAmDA,OAAK,YAAY,SAAU,OAAO;AAC9B,QAAI,QAAQ,MAAM,aAAa,MAAM,MAAM,cAAc,WAAW,YAAY,cAAc,WAAW,YAAY,gBAAgB,WAAW,cAAc,kBAAkB,WAAW,gBAAgB,WAAW,WAAW,SAAS,uBAAuB,WAAW,qBAAqB,iBAAiB,WAAW,eAAe,iBAAiB,WAAW,eAAe,oBAAoB,WAAW,kBAAkB,sBAAsB,WAAW,oBAAoB,oBAAoB,WAAW,kBAAkB,gBAAgB,WAAW,cAAc,cAAc,WAAW,YAAY,sBAAsB,WAAW,oBAAoB,eAAe,WAAW,aAAa,UAAU,WAAW,QAAQ,mBAAmB,WAAW,iBAAiB,aAAa,WAAW,SAAS;AACryB,QAAI,OAAO,OAAO,KAAK,KAAK;AAC5B,QAAI,KAAK,UAAU;AACf,YAAM;AACV,QAAI,MAAM,KAAK,CAAC;AAChB,QAAI,yGAAyG,QAAQ,MAAM,MAAM,GAAG,KAAK;AACrI,YAAM,oBAAoB;AAC9B,QAAI,OAAO;AACP,aAAO,IAAI,YAAY,MAAM,GAAG,CAAC;AACrC,QAAI,OAAO;AACP,aAAO,IAAI,YAAY,MAAM,GAAG,CAAC;AACrC,QAAI,OAAO;AACP,aAAO,IAAI,cAAc,MAAM,GAAG,CAAC;AACvC,QAAI,OAAO;AACP,aAAO,IAAI,gBAAgB,MAAM,GAAG,CAAC;AACzC,QAAI,OAAO;AACP,aAAO,IAAI,SAAS,MAAM,GAAG,CAAC;AAClC,QAAI,OAAO;AACP,aAAO,IAAI,qBAAqB,MAAM,GAAG,CAAC;AAC9C,QAAI,OAAO;AACP,aAAO,IAAI,eAAe,MAAM,GAAG,CAAC;AACxC,QAAI,OAAO;AACP,aAAO,IAAI,eAAe,MAAM,GAAG,CAAC;AACxC,QAAI,OAAO;AACP,aAAO,IAAI,kBAAkB,MAAM,GAAG,CAAC;AAC3C,QAAI,OAAO;AACP,aAAO,IAAI,oBAAoB,MAAM,GAAG,CAAC;AAC7C,QAAI,OAAO;AACP,aAAO,IAAI,kBAAkB,MAAM,GAAG,CAAC;AAC3C,QAAI,OAAO;AACP,aAAO,IAAI,cAAc,MAAM,GAAG,CAAC;AACvC,QAAI,OAAO;AACP,aAAO,IAAI,YAAY,MAAM,GAAG,CAAC;AACrC,QAAI,OAAO;AACP,aAAO,IAAI,oBAAoB,MAAM,GAAG,CAAC;AAC7C,QAAI,OAAO,OAAO;AACd,UAAI,YAAY,MAAM,GAAG;AACzB,UAAI,IAAI,CAAA;AACR,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,YAAI,UAAU,WAAW,UAAU,CAAC,CAAC;AACrC,UAAE,KAAK,OAAO;AAAA,MAClB;AACA,aAAO,IAAI,aAAa,EAAE,SAAS,EAAC,CAAE;AAAA,IAC1C;AACA,QAAI,OAAO,OAAO;AACd,UAAI,YAAY,MAAM,GAAG;AACzB,UAAI,IAAI,CAAA;AACR,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,YAAI,UAAU,WAAW,UAAU,CAAC,CAAC;AACrC,UAAE,KAAK,OAAO;AAAA,MAClB;AACA,aAAO,IAAI,QAAQ,EAAE,SAAS,EAAC,CAAE;AAAA,IACrC;AACA,QAAI,OAAO,OAAO;AACd,UAAI,WAAW,MAAM,GAAG;AACxB,UAAI,OAAO,UAAU,SAAS,KAAK,QAAQ,MAAM,oBAC7C,SAAS,UAAU,GAAG;AACtB,YAAI,MAAM,WAAW,SAAS,CAAC,CAAC;AAChC,eAAO,IAAI,iBAAiB;AAAA,UACxB,KAAK,SAAS,CAAC;AAAA,UACf,UAAU,SAAS,CAAC;AAAA,UACpB;AAAA,QACpB,CAAiB;AAAA,MACL,OACK;AACD,YAAI,WAAW,CAAA;AACf,YAAI,SAAS,aAAa;AACtB,mBAAS,WAAW,SAAS;AACjC,YAAI,SAAS,QAAQ;AACjB,mBAAS,MAAM,SAAS;AAC5B,YAAI,SAAS,QAAQ;AACjB,gBAAM;AACV,iBAAS,MAAM,WAAW,SAAS,GAAG;AACtC,eAAO,IAAI,iBAAiB,QAAQ;AAAA,MACxC;AAAA,IACJ;AAAA,EACJ;AAeA,OAAK,gBAAgB,SAAU,OAAO;AAClC,QAAI,UAAU,KAAK,UAAU,KAAK;AAClC,WAAO,QAAQ,cAAa;AAAA,EAChC;AACJ;AAeA,KAAK,KAAK,SAAS,cAAc,SAAU,KAAK;AAC5C,MAAI,IAAI;AACR,MAAI,MAAM,SAAS,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE;AAC1C,MAAI,KAAK,KAAK,MAAM,MAAM,EAAE;AAC5B,MAAI,KAAK,MAAM;AACf,MAAI,IAAI,KAAK,MAAM;AACnB,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACpC,QAAI,QAAQ,SAAS,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;AAChD,QAAI,OAAO,aAAa,MAAM,SAAS,CAAC,GAAG,MAAM,EAAE;AACnD,aAAS,SAAS,IAAI,UAAU,GAAG,CAAC;AACpC,QAAI,IAAI,UAAU,GAAG,CAAC,KAAK,KAAK;AAC5B,UAAI,KAAK,IAAI,WAAW,QAAQ,CAAC;AACjC,UAAI,IAAI,MAAM,GAAG,SAAS,EAAE;AAC5B,eAAS;AAAA,IACb;AAAA,EACJ;AAEA,SAAO;AACX;AAeA,KAAK,KAAK,SAAS,cAAc,SAAU,WAAW;AAClD,MAAI,OAAO,SAAUA,IAAG;AACpB,QAAIC,KAAID,GAAE,SAAS,EAAE;AACrB,QAAIC,GAAE,UAAU;AACZ,MAAAA,KAAI,MAAMA;AACd,WAAOA;AAAA,EACX;AACA,MAAI,UAAU,SAAU,MAAM;AAC1B,QAAIA,KAAI;AACR,QAAI,KAAK,IAAI,WAAW,MAAM,EAAE;AAChC,QAAI,IAAI,GAAG,SAAS,CAAC;AACrB,QAAI,SAAS,IAAI,EAAE,SAAS;AAC5B,QAAI,UAAU;AACV,eAAS;AACb,QAAI,OAAO;AACX,aAASD,KAAI,GAAGA,KAAI,QAAQA;AACxB,cAAQ;AACZ,QAAI,OAAO;AACX,aAASA,KAAI,GAAGA,KAAI,EAAE,SAAS,GAAGA,MAAK,GAAG;AACtC,UAAI,KAAK,EAAE,UAAUA,IAAGA,KAAI,CAAC;AAC7B,UAAIA,MAAK,EAAE,SAAS;AAChB,aAAK,MAAM;AACf,MAAAC,MAAK,KAAK,SAAS,IAAI,CAAC,CAAC;AAAA,IAC7B;AACA,WAAOA;AAAA,EACX;AACA,MAAI,CAAC,UAAU,MAAM,WAAW,GAAG;AAC/B,UAAM,2BAA2B;AAAA,EACrC;AACA,MAAI,IAAI;AACR,MAAI,IAAI,UAAU,MAAM,GAAG;AAC3B,MAAI,KAAK,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;AAC5C,OAAK,KAAK,EAAE;AACZ,IAAE,OAAO,GAAG,CAAC;AACb,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AAC/B,SAAK,QAAQ,EAAE,CAAC,CAAC;AAAA,EACrB;AACA,SAAO;AACX;AAgBA,KAAK,KAAK,aAAa,WAAY;AAK/B,MAAI,KAAK;AAQT,OAAK,wBAAwB,WAAY;AACrC,QAAI,OAAO,KAAK,MAAM,eAAe,KAAK,MAAM,MAAM;AAClD,YAAM;AAAA,IACV;AACA,QAAI,KAAK,GAAG,SAAS,KAAK,GAAG;AACzB,YAAM,sCAAsC,GAAG,SAAS,QAAQ,KAAK;AAAA,IACzE;AACA,QAAI,IAAI,KAAK,GAAG,SAAS;AACzB,QAAI,KAAK,EAAE,SAAS,EAAE;AACtB,QAAI,GAAG,SAAS,KAAK,GAAG;AACpB,WAAK,MAAM;AAAA,IACf;AACA,QAAI,IAAI,KAAK;AACT,aAAO;AAAA,IACX,OACK;AACD,UAAI,QAAQ,GAAG,SAAS;AACxB,UAAI,QAAQ,IAAI;AACZ,cAAM,mDAAmD,EAAE,SAAS,EAAE;AAAA,MAC1E;AACA,UAAI,OAAO,MAAM;AACjB,aAAO,KAAK,SAAS,EAAE,IAAI;AAAA,IAC/B;AAAA,EACJ;AAQA,OAAK,gBAAgB,WAAY;AAC7B,QAAI,KAAK,QAAQ,QAAQ,KAAK,YAAY;AACtC,WAAK,KAAK,KAAK,iBAAgB;AAC/B,WAAK,KAAK,KAAK,sBAAqB;AACpC,WAAK,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AACrC,WAAK,aAAa;AAAA,IAEtB;AACA,WAAO,KAAK;AAAA,EAChB;AAQA,OAAK,cAAc,WAAY;AAC3B,SAAK,cAAa;AAClB,WAAO,KAAK;AAAA,EAChB;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO;AAAA,EACX;AACJ;AAmBA,KAAK,KAAK,oBAAoB,SAAU,QAAQ;AAC5C,OAAK,KAAK,kBAAkB,WAAW,YAAY,KAAK,IAAI;AAU5D,OAAK,YAAY,WAAY;AACzB,WAAO,KAAK;AAAA,EAChB;AAQA,OAAK,YAAY,SAAU,MAAM;AAC7B,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,IAAI;AACT,SAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EAC3B;AAQA,OAAK,eAAe,SAAU,cAAc;AACxC,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,IAAI;AACT,SAAK,KAAK;AAAA,EACd;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,UAAU,UAAU;AAC3B,WAAK,UAAU,MAAM;AAAA,IACzB,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,UAAU,OAAO,KAAK,CAAC;AAAA,IAChC,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,aAAa,OAAO,KAAK,CAAC;AAAA,IACnC;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,mBAAmB,KAAK,KAAK,UAAU;AAY7D,KAAK,KAAK,kBAAkB,SAAU,QAAQ;AAC1C,OAAK,KAAK,gBAAgB,WAAW,YAAY,KAAK,IAAI;AAI1D,OAAK,iBAAiB,SAAU,GAAG;AAC/B,UAAM,EAAE,QAAO,IAAM,EAAE,kBAAiB,IAAK;AAC7C,QAAI,UAAU,IAAI,KAAK,GAAG;AAC1B,WAAO;AAAA,EACX;AAWA,OAAK,aAAa,SAAU,YAAY,MAAM,YAAY;AACtD,QAAI,MAAM,KAAK;AACf,QAAI,IAAI,KAAK,eAAe,UAAU;AACtC,QAAI,OAAO,OAAO,EAAE,YAAW,CAAE;AACjC,QAAI,QAAQ;AACR,aAAO,KAAK,UAAU,GAAG,CAAC;AAC9B,QAAI,QAAQ,IAAI,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC;AAC3C,QAAI,MAAM,IAAI,OAAO,EAAE,QAAO,CAAE,GAAG,CAAC;AACpC,QAAI,OAAO,IAAI,OAAO,EAAE,SAAQ,CAAE,GAAG,CAAC;AACtC,QAAI,MAAM,IAAI,OAAO,EAAE,WAAU,CAAE,GAAG,CAAC;AACvC,QAAI,MAAM,IAAI,OAAO,EAAE,WAAU,CAAE,GAAG,CAAC;AACvC,QAAI,IAAI,OAAO,QAAQ,MAAM,OAAO,MAAM;AAC1C,QAAI,eAAe,MAAM;AACrB,UAAI,SAAS,EAAE,gBAAe;AAC9B,UAAI,UAAU,GAAG;AACb,YAAI,UAAU,IAAI,OAAO,MAAM,GAAG,CAAC;AACnC,kBAAU,QAAQ,QAAQ,SAAS,EAAE;AACrC,YAAI,IAAI,MAAM;AAAA,MAClB;AAAA,IACJ;AACA,WAAO,IAAI;AAAA,EACf;AACA,OAAK,cAAc,SAAU,GAAG,KAAK;AACjC,QAAI,EAAE,UAAU;AACZ,aAAO;AACX,WAAO,IAAI,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;AAAA,EACrD;AASA,OAAK,YAAY,WAAY;AACzB,WAAO,KAAK;AAAA,EAChB;AAQA,OAAK,YAAY,SAAU,MAAM;AAC7B,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,IAAI;AACT,SAAK,KAAK,OAAO,IAAI;AAAA,EACzB;AAaA,OAAK,iBAAiB,SAAU,MAAM,OAAO,KAAK,MAAM,KAAK,KAAK;AAC9D,QAAI,aAAa,IAAI,KAAK,KAAK,IAAI,MAAM,QAAQ,GAAG,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC;AAC3E,SAAK,UAAU,UAAU;AAAA,EAC7B;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACJ;AACA,YAAY,KAAK,KAAK,iBAAiB,KAAK,KAAK,UAAU;AAY3D,KAAK,KAAK,wBAAwB,SAAU,QAAQ;AAChD,OAAK,KAAK,kBAAkB,WAAW,YAAY,KAAK,IAAI;AAS5D,OAAK,uBAAuB,SAAU,iBAAiB;AACnD,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,YAAY;AAAA,EACrB;AAQA,OAAK,mBAAmB,SAAU,YAAY;AAC1C,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,UAAU,KAAK,UAAU;AAAA,EAClC;AACA,OAAK,YAAY,IAAI,MAAK;AAC1B,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,OAAO,OAAO,KAAK,aAAa;AACvC,WAAK,YAAY,OAAO,OAAO;AAAA,IACnC;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,uBAAuB,KAAK,KAAK,UAAU;AAajE,KAAK,KAAK,aAAa,WAAY;AAC/B,OAAK,KAAK,WAAW,WAAW,YAAY,KAAK,IAAI;AACrD,OAAK,KAAK;AACV,OAAK,OAAO;AAChB;AACA,YAAY,KAAK,KAAK,YAAY,KAAK,KAAK,UAAU;AAkBtD,KAAK,KAAK,aAAa,SAAU,QAAQ;AACrC,OAAK,KAAK,WAAW,WAAW,YAAY,KAAK,IAAI;AACrD,OAAK,KAAK;AAQV,OAAK,kBAAkB,SAAU,iBAAiB;AAC9C,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,KAAK,KAAK,KAAK,SAAS,8BAA8B,eAAe;AAAA,EAC9E;AAQA,OAAK,eAAe,SAAU,UAAU;AACpC,QAAI,KAAK,IAAI,WAAW,OAAO,QAAQ,GAAG,EAAE;AAC5C,SAAK,gBAAgB,EAAE;AAAA,EAC3B;AAgBA,OAAK,cAAc,SAAU,cAAc;AACvC,SAAK,KAAK;AAAA,EACd;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,OAAO,QAAQ,KAAK,aAAa;AACxC,WAAK,gBAAgB,OAAO,QAAQ,CAAC;AAAA,IACzC,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,aAAa,OAAO,KAAK,CAAC;AAAA,IACnC,WACS,OAAO,UAAU,UAAU;AAChC,WAAK,aAAa,MAAM;AAAA,IAC5B,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,YAAY,OAAO,KAAK,CAAC;AAAA,IAClC;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,YAAY,KAAK,KAAK,UAAU;AAwCtD,KAAK,KAAK,eAAe,SAAU,QAAQ;AACvC,MAAI,WAAW,UAAa,OAAO,OAAO,QAAQ,aAAa;AAC3D,QAAI,IAAI,KAAK,KAAK,SAAS,UAAU,OAAO,GAAG;AAC/C,WAAO,MAAM,OAAO,EAAE,cAAa;AAAA,EACvC;AACA,OAAK,KAAK,aAAa,WAAW,YAAY,KAAK,IAAI;AACvD,OAAK,KAAK;AAQV,OAAK,iCAAiC,SAAU,iCAAiC;AAC7E,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,KAAK;AAAA,EACd;AASA,OAAK,2BAA2B,SAAU,YAAY,QAAQ;AAC1D,QAAI,aAAa,KAAK,IAAI,YAAY;AAClC,YAAM,2CAA2C;AAAA,IACrD;AACA,QAAI,cAAc,MAAM;AACxB,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,KAAK,cAAc;AAAA,EAC5B;AAeA,OAAK,oBAAoB,SAAU,cAAc;AAC7C,mBAAe,aAAa,QAAQ,OAAO,EAAE;AAC7C,QAAI,aAAa,IAAI,aAAa,SAAS;AAC3C,QAAI,cAAc;AACd,mBAAa;AACjB,aAAS,IAAI,GAAG,KAAK,YAAY,KAAK;AAClC,sBAAgB;AAAA,IACpB;AACA,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG;AACjD,UAAI,IAAI,aAAa,UAAU,GAAG,IAAI,CAAC;AACvC,UAAI,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE;AAClC,UAAI,EAAE,UAAU;AACZ,YAAI,MAAM;AACd,WAAK;AAAA,IACT;AACA,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,KAAK,MAAM,aAAa;AAAA,EACjC;AAaA,OAAK,oBAAoB,SAAU,cAAc;AAC7C,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC1C,UAAI,aAAa,CAAC,KAAK,MAAM;AACzB,aAAK;AAAA,MACT,OACK;AACD,aAAK;AAAA,MACT;AAAA,IACJ;AACA,SAAK,kBAAkB,CAAC;AAAA,EAC5B;AAcA,OAAK,gBAAgB,SAAU,SAAS;AACpC,QAAI,IAAI,IAAI,MAAM,OAAO;AACzB,aAAS,IAAI,GAAG,IAAI,SAAS,KAAK;AAC9B,QAAE,CAAC,IAAI;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,UAAU,YAAY,OAAO,cAAc,MAAM,aAAa,GAAG;AACxE,WAAK,+BAA+B,MAAM;AAAA,IAC9C,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,+BAA+B,OAAO,KAAK,CAAC;AAAA,IACrD,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,kBAAkB,OAAO,KAAK,CAAC;AAAA,IACxC,WACS,OAAO,OAAO,OAAO,KAAK,aAAa;AAC5C,WAAK,kBAAkB,OAAO,OAAO,CAAC;AAAA,IAC1C;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,cAAc,KAAK,KAAK,UAAU;AAsCxD,KAAK,KAAK,iBAAiB,SAAU,QAAQ;AACzC,MAAI,WAAW,UAAa,OAAO,OAAO,QAAQ,aAAa;AAC3D,QAAI,IAAI,KAAK,KAAK,SAAS,UAAU,OAAO,GAAG;AAC/C,WAAO,MAAM,EAAE,cAAa;AAAA,EAChC;AACA,OAAK,KAAK,eAAe,WAAW,YAAY,KAAK,MAAM,MAAM;AACjE,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,gBAAgB,KAAK,KAAK,iBAAiB;AAUjE,KAAK,KAAK,UAAU,WAAY;AAC5B,OAAK,KAAK,QAAQ,WAAW,YAAY,KAAK,IAAI;AAClD,OAAK,KAAK;AACV,OAAK,OAAO;AAChB;AACA,YAAY,KAAK,KAAK,SAAS,KAAK,KAAK,UAAU;AAkBnD,KAAK,KAAK,sBAAsB,SAAU,QAAQ;AAC9C,MAAI,OAAO,SAAU,GAAG;AACpB,QAAI,IAAI,EAAE,SAAS,EAAE;AACrB,QAAI,EAAE,UAAU;AACZ,UAAI,MAAM;AACd,WAAO;AAAA,EACX;AACA,MAAI,UAAU,SAAU,MAAM;AAC1B,QAAI,IAAI;AACR,QAAI,KAAK,IAAI,WAAW,MAAM,EAAE;AAChC,QAAI,IAAI,GAAG,SAAS,CAAC;AACrB,QAAI,SAAS,IAAI,EAAE,SAAS;AAC5B,QAAI,UAAU;AACV,eAAS;AACb,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,QAAQ;AACxB,cAAQ;AACZ,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG;AACtC,UAAI,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;AAC7B,UAAI,KAAK,EAAE,SAAS;AAChB,aAAK,MAAM;AACf,WAAK,KAAK,SAAS,IAAI,CAAC,CAAC;AAAA,IAC7B;AACA,WAAO;AAAA,EACX;AACA,OAAK,KAAK,oBAAoB,WAAW,YAAY,KAAK,IAAI;AAC9D,OAAK,KAAK;AAQV,OAAK,cAAc,SAAU,cAAc;AACvC,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,IAAI;AACT,SAAK,KAAK;AAAA,EACd;AAWA,OAAK,oBAAoB,SAAU,WAAW;AAC1C,QAAI,CAAC,UAAU,MAAM,WAAW,GAAG;AAC/B,YAAM,2BAA2B;AAAA,IACrC;AACA,QAAI,IAAI;AACR,QAAI,IAAI,UAAU,MAAM,GAAG;AAC3B,QAAI,KAAK,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;AAC5C,SAAK,KAAK,EAAE;AACZ,MAAE,OAAO,GAAG,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AAC/B,WAAK,QAAQ,EAAE,CAAC,CAAC;AAAA,IACrB;AACA,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,IAAI;AACT,SAAK,KAAK;AAAA,EACd;AAeA,OAAK,eAAe,SAAU,SAAS;AACnC,QAAI,MAAM,KAAK,KAAK,KAAK,IAAI,SAAS,OAAO;AAC7C,QAAI,QAAQ,IAAI;AACZ,WAAK,kBAAkB,GAAG;AAAA,IAC9B,OACK;AACD,YAAM,4CAA4C;AAAA,IACtD;AAAA,EACJ;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,WAAW,QAAW;AACtB,QAAI,OAAO,WAAW,UAAU;AAC5B,UAAI,OAAO,MAAM,iBAAiB,GAAG;AACjC,aAAK,kBAAkB,MAAM;AAAA,MACjC,OACK;AACD,aAAK,aAAa,MAAM;AAAA,MAC5B;AAAA,IACJ,WACS,OAAO,QAAQ,QAAW;AAC/B,WAAK,kBAAkB,OAAO,GAAG;AAAA,IACrC,WACS,OAAO,QAAQ,QAAW;AAC/B,WAAK,YAAY,OAAO,GAAG;AAAA,IAC/B,WACS,OAAO,SAAS,QAAW;AAChC,WAAK,aAAa,OAAO,IAAI;AAAA,IACjC;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,qBAAqB,KAAK,KAAK,UAAU;AAqB/D,KAAK,KAAK,gBAAgB,SAAU,QAAQ;AACxC,OAAK,KAAK,cAAc,WAAW,YAAY,KAAK,IAAI;AACxD,OAAK,KAAK;AAQV,OAAK,kBAAkB,SAAU,iBAAiB;AAC9C,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,KAAK,KAAK,KAAK,SAAS,8BAA8B,eAAe;AAAA,EAC9E;AAQA,OAAK,eAAe,SAAU,UAAU;AACpC,QAAI,KAAK,IAAI,WAAW,OAAO,QAAQ,GAAG,EAAE;AAC5C,SAAK,gBAAgB,EAAE;AAAA,EAC3B;AAYA,OAAK,cAAc,SAAU,cAAc;AACvC,SAAK,KAAK;AAAA,EACd;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,OAAO,KAAK,KAAK,aAAa;AACrC,WAAK,aAAa,OAAO,KAAK,CAAC;AAAA,IACnC,WACS,OAAO,UAAU,UAAU;AAChC,WAAK,aAAa,MAAM;AAAA,IAC5B,WACS,OAAO,OAAO,KAAK,KAAK,aAAa;AAC1C,WAAK,YAAY,OAAO,KAAK,CAAC;AAAA,IAClC;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,eAAe,KAAK,KAAK,UAAU;AAWzD,KAAK,KAAK,gBAAgB,SAAU,QAAQ;AACxC,OAAK,KAAK,cAAc,WAAW,YAAY,KAAK,MAAM,MAAM;AAChE,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,eAAe,KAAK,KAAK,iBAAiB;AAWhE,KAAK,KAAK,mBAAmB,SAAU,QAAQ;AAC3C,OAAK,KAAK,iBAAiB,WAAW,YAAY,KAAK,MAAM,MAAM;AACnE,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,kBAAkB,KAAK,KAAK,iBAAiB;AAWnE,KAAK,KAAK,qBAAqB,SAAU,QAAQ;AAC7C,OAAK,KAAK,mBAAmB,WAAW,YAAY,KAAK,MAAM,MAAM;AACrE,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,oBAAoB,KAAK,KAAK,iBAAiB;AAWrE,KAAK,KAAK,mBAAmB,SAAU,QAAQ;AAC3C,OAAK,KAAK,iBAAiB,WAAW,YAAY,KAAK,MAAM,MAAM;AACnE,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,kBAAkB,KAAK,KAAK,iBAAiB;AAWnE,KAAK,KAAK,eAAe,SAAU,QAAQ;AACvC,OAAK,KAAK,aAAa,WAAW,YAAY,KAAK,MAAM,MAAM;AAC/D,OAAK,KAAK;AACd;AACA,YAAY,KAAK,KAAK,cAAc,KAAK,KAAK,iBAAiB;AA2B/D,KAAK,KAAK,aAAa,SAAU,QAAQ;AACrC,OAAK,KAAK,WAAW,WAAW,YAAY,KAAK,MAAM,MAAM;AAC7D,OAAK,KAAK;AAWV,OAAK,YAAY,SAAU,YAAY;AACnC,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,SAAK,IAAI,KAAK,WAAW,KAAK,MAAM,KAAK;AACzC,SAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EAC3B;AACA,OAAK,mBAAmB,WAAY;AAChC,QAAI,OAAO,KAAK,QAAQ,eAAe,OAAO,KAAK,KAAK,aAAa;AACjE,WAAK,OAAO,oBAAI,KAAI;AACpB,WAAK,IAAI,KAAK,WAAW,KAAK,MAAM,KAAK;AACzC,WAAK,KAAK,OAAO,KAAK,CAAC;AAAA,IAC3B;AACA,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,WAAW,QAAW;AACtB,QAAI,OAAO,QAAQ,QAAW;AAC1B,WAAK,UAAU,OAAO,GAAG;AAAA,IAC7B,WACS,OAAO,UAAU,YAAY,OAAO,MAAM,cAAc,GAAG;AAChE,WAAK,UAAU,MAAM;AAAA,IACzB,WACS,OAAO,QAAQ,QAAW;AAC/B,WAAK,aAAa,OAAO,GAAG;AAAA,IAChC,WACS,OAAO,SAAS,QAAW;AAChC,WAAK,UAAU,OAAO,IAAI;AAAA,IAC9B;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,YAAY,KAAK,KAAK,eAAe;AAsB3D,KAAK,KAAK,qBAAqB,SAAU,QAAQ;AAC7C,OAAK,KAAK,mBAAmB,WAAW,YAAY,KAAK,MAAM,MAAM;AACrE,OAAK,KAAK;AACV,OAAK,aAAa;AAclB,OAAK,YAAY,SAAU,YAAY;AACnC,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,SAAK,IAAI,KAAK,WAAW,KAAK,MAAM,OAAO,KAAK,UAAU;AAC1D,SAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EAC3B;AACA,OAAK,mBAAmB,WAAY;AAChC,QAAI,KAAK,SAAS,UAAa,KAAK,MAAM,QAAW;AACjD,WAAK,OAAO,oBAAI,KAAI;AACpB,WAAK,IAAI,KAAK,WAAW,KAAK,MAAM,OAAO,KAAK,UAAU;AAC1D,WAAK,KAAK,OAAO,KAAK,CAAC;AAAA,IAC3B;AACA,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,WAAW,QAAW;AACtB,QAAI,OAAO,QAAQ,QAAW;AAC1B,WAAK,UAAU,OAAO,GAAG;AAAA,IAC7B,WACS,OAAO,UAAU,YAAY,OAAO,MAAM,cAAc,GAAG;AAChE,WAAK,UAAU,MAAM;AAAA,IACzB,WACS,OAAO,QAAQ,QAAW;AAC/B,WAAK,aAAa,OAAO,GAAG;AAAA,IAChC,WACS,OAAO,SAAS,QAAW;AAChC,WAAK,UAAU,OAAO,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,WAAW,MAAM;AACxB,WAAK,aAAa;AAAA,IACtB;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,oBAAoB,KAAK,KAAK,eAAe;AAgBnE,KAAK,KAAK,cAAc,SAAU,QAAQ;AACtC,OAAK,KAAK,YAAY,WAAW,YAAY,KAAK,MAAM,MAAM;AAC9D,OAAK,KAAK;AACV,OAAK,mBAAmB,WAAY;AAChC,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KAAK;AAC5C,UAAI,UAAU,KAAK,UAAU,CAAC;AAC9B,WAAK,QAAQ,cAAa;AAAA,IAC9B;AACA,SAAK,KAAK;AACV,WAAO,KAAK;AAAA,EAChB;AACJ;AACA,YAAY,KAAK,KAAK,aAAa,KAAK,KAAK,qBAAqB;AAkBlE,KAAK,KAAK,SAAS,SAAU,QAAQ;AACjC,OAAK,KAAK,OAAO,WAAW,YAAY,KAAK,MAAM,MAAM;AACzD,OAAK,KAAK;AACV,OAAK,WAAW;AAChB,OAAK,mBAAmB,WAAY;AAChC,QAAI,IAAI,IAAI,MAAK;AACjB,aAAS,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KAAK;AAC5C,UAAI,UAAU,KAAK,UAAU,CAAC;AAC9B,QAAE,KAAK,QAAQ,eAAe;AAAA,IAClC;AACA,QAAI,KAAK,YAAY;AACjB,QAAE,KAAI;AACV,SAAK,KAAK,EAAE,KAAK,EAAE;AACnB,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,OAAO,YAAY,eAC1B,OAAO,YAAY;AACnB,WAAK,WAAW;AAAA,EACxB;AACJ;AACA,YAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,qBAAqB;AA0B7D,KAAK,KAAK,kBAAkB,SAAU,QAAQ;AAC1C,OAAK,KAAK,gBAAgB,WAAW,YAAY,KAAK,IAAI;AAC1D,OAAK,KAAK;AACV,OAAK,KAAK;AACV,OAAK,aAAa;AAClB,OAAK,aAAa;AAUlB,OAAK,gBAAgB,SAAU,gBAAgB,UAAU,YAAY;AACjE,SAAK,KAAK;AACV,SAAK,aAAa;AAClB,SAAK,aAAa;AAClB,QAAI,KAAK,YAAY;AACjB,WAAK,KAAK,KAAK,WAAW,cAAa;AACvC,WAAK,OAAO;AACZ,WAAK,aAAa;AAAA,IACtB,OACK;AACD,WAAK,KAAK;AACV,WAAK,OAAO,WAAW,cAAa;AACpC,WAAK,OAAO,KAAK,KAAK,QAAQ,OAAO,QAAQ;AAC7C,WAAK,aAAa;AAAA,IACtB;AAAA,EACJ;AACA,OAAK,mBAAmB,WAAY;AAChC,WAAO,KAAK;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,aAAa;AAC9B,QAAI,OAAO,OAAO,KAAK,KAAK,aAAa;AACrC,WAAK,KAAK,OAAO,KAAK;AAAA,IAC1B;AACA,QAAI,OAAO,OAAO,UAAU,KAAK,aAAa;AAC1C,WAAK,aAAa,OAAO,UAAU;AAAA,IACvC;AACA,QAAI,OAAO,OAAO,KAAK,KAAK,aAAa;AACrC,WAAK,aAAa,OAAO,KAAK;AAC9B,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI,KAAK,UAAU;AAAA,IAChE;AAAA,EACJ;AACJ;AACA,YAAY,KAAK,KAAK,iBAAiB,KAAK,KAAK,UAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonrepair.mjs","sources":["../../../../../../../../../../../node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/regular/jsonrepair.js"],"sourcesContent":["import { JSONRepairError } from '../utils/JSONRepairError.js';\nimport { endsWithCommaOrNewline, insertBeforeLastWhitespace, isControlCharacter, isDelimiter, isDigit, isDoubleQuote, isDoubleQuoteLike, isFunctionNameChar, isFunctionNameCharStart, isHex, isQuote, isSingleQuote, isSingleQuoteLike, isSpecialWhitespace, isStartOfValue, isUnquotedStringDelimiter, isValidStringCharacter, isWhitespace, isWhitespaceExceptNewline, regexUrlChar, regexUrlStart, removeAtIndex, stripLastOccurrence } from '../utils/stringUtils.js';\nconst controlCharacters = {\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t'\n};\n\n// map with all escape characters\nconst escapeCharacters = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n // note that \\u is handled separately in parseString()\n};\n\n/**\n * Repair a string containing an invalid JSON document.\n * For example changes JavaScript notation into JSON notation.\n *\n * Example:\n *\n * try {\n * const json = \"{name: 'John'}\"\n * const repaired = jsonrepair(json)\n * console.log(repaired)\n * // '{\"name\": \"John\"}'\n * } catch (err) {\n * console.error(err)\n * }\n *\n */\nexport function jsonrepair(text) {\n let i = 0; // current index in text\n let output = ''; // generated output\n\n parseMarkdownCodeBlock(['```', '[```', '{```']);\n const processed = parseValue();\n if (!processed) {\n throwUnexpectedEnd();\n }\n parseMarkdownCodeBlock(['```', '```]', '```}']);\n const processedComma = parseCharacter(',');\n if (processedComma) {\n parseWhitespaceAndSkipComments();\n }\n if (isStartOfValue(text[i]) && endsWithCommaOrNewline(output)) {\n // start of a new value after end of the root level object: looks like\n // newline delimited JSON -> turn into a root level array\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseNewlineDelimitedJSON();\n } else if (processedComma) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair redundant end quotes\n while (text[i] === '}' || text[i] === ']') {\n i++;\n parseWhitespaceAndSkipComments();\n }\n if (i >= text.length) {\n // reached the end of the document properly\n return output;\n }\n throwUnexpectedCharacter();\n function parseValue() {\n parseWhitespaceAndSkipComments();\n const processed = parseObject() || parseArray() || parseString() || parseNumber() || parseKeywords() || parseUnquotedString(false) || parseRegex();\n parseWhitespaceAndSkipComments();\n return processed;\n }\n function parseWhitespaceAndSkipComments() {\n let skipNewline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const start = i;\n let changed = parseWhitespace(skipNewline);\n do {\n changed = parseComment();\n if (changed) {\n changed = parseWhitespace(skipNewline);\n }\n } while (changed);\n return i > start;\n }\n function parseWhitespace(skipNewline) {\n const _isWhiteSpace = skipNewline ? isWhitespace : isWhitespaceExceptNewline;\n let whitespace = '';\n while (true) {\n if (_isWhiteSpace(text, i)) {\n whitespace += text[i];\n i++;\n } else if (isSpecialWhitespace(text, i)) {\n // repair special whitespace\n whitespace += ' ';\n i++;\n } else {\n break;\n }\n }\n if (whitespace.length > 0) {\n output += whitespace;\n return true;\n }\n return false;\n }\n function parseComment() {\n // find a block comment '/* ... */'\n if (text[i] === '/' && text[i + 1] === '*') {\n // repair block comment by skipping it\n while (i < text.length && !atEndOfBlockComment(text, i)) {\n i++;\n }\n i += 2;\n return true;\n }\n\n // find a line comment '// ...'\n if (text[i] === '/' && text[i + 1] === '/') {\n // repair line comment by skipping it\n while (i < text.length && text[i] !== '\\n') {\n i++;\n }\n return true;\n }\n return false;\n }\n function parseMarkdownCodeBlock(blocks) {\n // find and skip over a Markdown fenced code block:\n // ``` ... ```\n // or\n // ```json ... ```\n if (skipMarkdownCodeBlock(blocks)) {\n if (isFunctionNameCharStart(text[i])) {\n // strip the optional language specifier like \"json\"\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n }\n parseWhitespaceAndSkipComments();\n return true;\n }\n return false;\n }\n function skipMarkdownCodeBlock(blocks) {\n parseWhitespace(true);\n for (const block of blocks) {\n const end = i + block.length;\n if (text.slice(i, end) === block) {\n i = end;\n return true;\n }\n }\n return false;\n }\n function parseCharacter(char) {\n if (text[i] === char) {\n output += text[i];\n i++;\n return true;\n }\n return false;\n }\n function skipCharacter(char) {\n if (text[i] === char) {\n i++;\n return true;\n }\n return false;\n }\n function skipEscapeCharacter() {\n return skipCharacter('\\\\');\n }\n\n /**\n * Skip ellipsis like \"[1,2,3,...]\" or \"[1,2,3,...,9]\" or \"[...,7,8,9]\"\n * or a similar construct in objects.\n */\n function skipEllipsis() {\n parseWhitespaceAndSkipComments();\n if (text[i] === '.' && text[i + 1] === '.' && text[i + 2] === '.') {\n // repair: remove the ellipsis (three dots) and optionally a comma\n i += 3;\n parseWhitespaceAndSkipComments();\n skipCharacter(',');\n return true;\n }\n return false;\n }\n\n /**\n * Parse an object like '{\"key\": \"value\"}'\n */\n function parseObject() {\n if (text[i] === '{') {\n output += '{';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in {, message: \"hi\"}\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== '}') {\n let processedComma;\n if (!initial) {\n processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseWhitespaceAndSkipComments();\n } else {\n processedComma = true;\n initial = false;\n }\n skipEllipsis();\n const processedKey = parseString() || parseUnquotedString(true);\n if (!processedKey) {\n if (text[i] === '}' || text[i] === '{' || text[i] === ']' || text[i] === '[' || text[i] === undefined) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n } else {\n throwObjectKeyExpected();\n }\n break;\n }\n parseWhitespaceAndSkipComments();\n const processedColon = parseCharacter(':');\n const truncatedText = i >= text.length;\n if (!processedColon) {\n if (isStartOfValue(text[i]) || truncatedText) {\n // repair missing colon\n output = insertBeforeLastWhitespace(output, ':');\n } else {\n throwColonExpected();\n }\n }\n const processedValue = parseValue();\n if (!processedValue) {\n if (processedColon || truncatedText) {\n // repair missing object value\n output += 'null';\n } else {\n throwColonExpected();\n }\n }\n }\n if (text[i] === '}') {\n output += '}';\n i++;\n } else {\n // repair missing end bracket\n output = insertBeforeLastWhitespace(output, '}');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse an array like '[\"item1\", \"item2\", ...]'\n */\n function parseArray() {\n if (text[i] === '[') {\n output += '[';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in [,1,2,3]\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== ']') {\n if (!initial) {\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n skipEllipsis();\n const processedValue = parseValue();\n if (!processedValue) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n break;\n }\n }\n if (text[i] === ']') {\n output += ']';\n i++;\n } else {\n // repair missing closing array bracket\n output = insertBeforeLastWhitespace(output, ']');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse and repair Newline Delimited JSON (NDJSON):\n * multiple JSON objects separated by a newline character\n */\n function parseNewlineDelimitedJSON() {\n // repair NDJSON\n let initial = true;\n let processedValue = true;\n while (processedValue) {\n if (!initial) {\n // parse optional comma, insert when missing\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair: add missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n processedValue = parseValue();\n }\n if (!processedValue) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair: wrap the output inside array brackets\n output = `[\\n${output}\\n]`;\n }\n\n /**\n * Parse a string enclosed by double quotes \"...\". Can contain escaped quotes\n * Repair strings enclosed in single quotes or special quotes\n * Repair an escaped string\n *\n * The function can run in two stages:\n * - First, it assumes the string has a valid end quote\n * - If it turns out that the string does not have a valid end quote followed\n * by a delimiter (which should be the case), the function runs again in a\n * more conservative way, stopping the string at the first next delimiter\n * and fixing the string by inserting a quote there, or stopping at a\n * stop index detected in the first iteration.\n */\n function parseString() {\n let stopAtDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let stopAtIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n let skipEscapeChars = text[i] === '\\\\';\n if (skipEscapeChars) {\n // repair: remove the first escape character\n i++;\n skipEscapeChars = true;\n }\n if (isQuote(text[i])) {\n // double quotes are correct JSON,\n // single quotes come from JavaScript for example, we assume it will have a correct single end quote too\n // otherwise, we will match any double-quote-like start with a double-quote-like end,\n // or any single-quote-like start with a single-quote-like end\n const isEndQuote = isDoubleQuote(text[i]) ? isDoubleQuote : isSingleQuote(text[i]) ? isSingleQuote : isSingleQuoteLike(text[i]) ? isSingleQuoteLike : isDoubleQuoteLike;\n const iBefore = i;\n const oBefore = output.length;\n let str = '\"';\n i++;\n while (true) {\n if (i >= text.length) {\n // end of text, we are missing an end quote\n\n const iPrev = prevNonWhitespaceIndex(i - 1);\n if (!stopAtDelimiter && isDelimiter(text.charAt(iPrev))) {\n // if the text ends with a delimiter, like [\"hello],\n // so the missing end quote should be inserted before this delimiter\n // retry parsing the string, stopping at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n }\n if (i === stopAtIndex) {\n // use the stop index detected in the first iteration, and repair end quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n }\n if (isEndQuote(text[i])) {\n // end quote\n // let us check what is before and after the quote to verify whether this is a legit end quote\n const iQuote = i;\n const oQuote = str.length;\n str += '\"';\n i++;\n output += str;\n parseWhitespaceAndSkipComments(false);\n if (stopAtDelimiter || i >= text.length || isDelimiter(text[i]) || isQuote(text[i]) || isDigit(text[i])) {\n // The quote is followed by the end of the text, a delimiter,\n // or a next value. So the quote is indeed the end of the string.\n parseConcatenatedString();\n return true;\n }\n const iPrevChar = prevNonWhitespaceIndex(iQuote - 1);\n const prevChar = text.charAt(iPrevChar);\n if (prevChar === ',') {\n // A comma followed by a quote, like '{\"a\":\"b,c,\"d\":\"e\"}'.\n // We assume that the quote is a start quote, and that the end quote\n // should have been located right before the comma but is missing.\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(false, iPrevChar);\n }\n if (isDelimiter(prevChar)) {\n // This is not the right end quote: it is preceded by a delimiter,\n // and NOT followed by a delimiter. So, there is an end quote missing\n // parse the string again and then stop at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // revert to right after the quote but before any whitespace, and continue parsing the string\n output = output.substring(0, oBefore);\n i = iQuote + 1;\n\n // repair unescaped quote\n str = `${str.substring(0, oQuote)}\\\\${str.substring(oQuote)}`;\n } else if (stopAtDelimiter && isUnquotedStringDelimiter(text[i])) {\n // we're in the mode to stop the string at the first delimiter\n // because there is an end quote missing\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(iBefore + 1, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n str += text[i];\n i++;\n }\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n parseConcatenatedString();\n return true;\n } else if (text[i] === '\\\\') {\n // handle escaped content like \\n or \\u2605\n const char = text.charAt(i + 1);\n const escapeChar = escapeCharacters[char];\n if (escapeChar !== undefined) {\n str += text.slice(i, i + 2);\n i += 2;\n } else if (char === 'u') {\n let j = 2;\n while (j < 6 && isHex(text[i + j])) {\n j++;\n }\n if (j === 6) {\n str += text.slice(i, i + 6);\n i += 6;\n } else if (i + j >= text.length) {\n // repair invalid or truncated unicode char at the end of the text\n // by removing the unicode char and ending the string here\n i = text.length;\n } else {\n throwInvalidUnicodeCharacter();\n }\n } else {\n // repair invalid escape character: remove it\n str += char;\n i += 2;\n }\n } else {\n // handle regular characters\n const char = text.charAt(i);\n if (char === '\"' && text[i - 1] !== '\\\\') {\n // repair unescaped double quote\n str += `\\\\${char}`;\n i++;\n } else if (isControlCharacter(char)) {\n // unescaped control character\n str += controlCharacters[char];\n i++;\n } else {\n if (!isValidStringCharacter(char)) {\n throwInvalidCharacter(char);\n }\n str += char;\n i++;\n }\n }\n if (skipEscapeChars) {\n // repair: skipped escape character (nothing to do)\n skipEscapeCharacter();\n }\n }\n }\n return false;\n }\n\n /**\n * Repair concatenated strings like \"hello\" + \"world\", change this into \"helloworld\"\n */\n function parseConcatenatedString() {\n let processed = false;\n parseWhitespaceAndSkipComments();\n while (text[i] === '+') {\n processed = true;\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: remove the end quote of the first string\n output = stripLastOccurrence(output, '\"', true);\n const start = output.length;\n const parsedStr = parseString();\n if (parsedStr) {\n // repair: remove the start quote of the second string\n output = removeAtIndex(output, start, 1);\n } else {\n // repair: remove the + because it is not followed by a string\n output = insertBeforeLastWhitespace(output, '\"');\n }\n }\n return processed;\n }\n\n /**\n * Parse a number like 2.4 or 2.4e6\n */\n function parseNumber() {\n const start = i;\n if (text[i] === '-') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n }\n\n // Note that in JSON leading zeros like \"00789\" are not allowed.\n // We will allow all leading zeros here though and at the end of parseNumber\n // check against trailing zeros and repair that if needed.\n // Leading zeros can have meaning, so we should not clear them.\n while (isDigit(text[i])) {\n i++;\n }\n if (text[i] === '.') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n if (text[i] === 'e' || text[i] === 'E') {\n i++;\n if (text[i] === '-' || text[i] === '+') {\n i++;\n }\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n\n // if we're not at the end of the number by this point, allow this to be parsed as another type\n if (!atEndOfNumber()) {\n i = start;\n return false;\n }\n if (i > start) {\n // repair a number with leading zeros like \"00789\"\n const num = text.slice(start, i);\n const hasInvalidLeadingZero = /^0\\d/.test(num);\n output += hasInvalidLeadingZero ? `\"${num}\"` : num;\n return true;\n }\n return false;\n }\n\n /**\n * Parse keywords true, false, null\n * Repair Python keywords True, False, None\n */\n function parseKeywords() {\n return parseKeyword('true', 'true') || parseKeyword('false', 'false') || parseKeyword('null', 'null') ||\n // repair Python keywords True, False, None\n parseKeyword('True', 'true') || parseKeyword('False', 'false') || parseKeyword('None', 'null');\n }\n function parseKeyword(name, value) {\n if (text.slice(i, i + name.length) === name) {\n output += value;\n i += name.length;\n return true;\n }\n return false;\n }\n\n /**\n * Repair an unquoted string by adding quotes around it\n * Repair a MongoDB function call like NumberLong(\"2\")\n * Repair a JSONP function call like callback({...});\n */\n function parseUnquotedString(isKey) {\n // note that the symbol can end with whitespaces: we stop at the next delimiter\n // also, note that we allow strings to contain a slash / in order to support repairing regular expressions\n const start = i;\n if (isFunctionNameCharStart(text[i])) {\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n let j = i;\n while (isWhitespace(text, j)) {\n j++;\n }\n if (text[j] === '(') {\n // repair a MongoDB function call like NumberLong(\"2\")\n // repair a JSONP function call like callback({...});\n i = j + 1;\n parseValue();\n if (text[i] === ')') {\n // repair: skip close bracket of function call\n i++;\n if (text[i] === ';') {\n // repair: skip semicolon after JSONP call\n i++;\n }\n }\n return true;\n }\n }\n while (i < text.length && !isUnquotedStringDelimiter(text[i]) && !isQuote(text[i]) && (!isKey || text[i] !== ':')) {\n i++;\n }\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(start, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n i++;\n }\n }\n if (i > start) {\n // repair unquoted string\n // also, repair undefined into null\n\n // first, go back to prevent getting trailing whitespaces in the string\n while (isWhitespace(text, i - 1) && i > 0) {\n i--;\n }\n const symbol = text.slice(start, i);\n output += symbol === 'undefined' ? 'null' : JSON.stringify(symbol);\n if (text[i] === '\"') {\n // we had a missing start quote, but now we encountered the end quote, so we can skip that one\n i++;\n }\n return true;\n }\n }\n function parseRegex() {\n if (text[i] === '/') {\n const start = i;\n i++;\n while (i < text.length && (text[i] !== '/' || text[i - 1] === '\\\\')) {\n i++;\n }\n i++;\n output += `\"${text.substring(start, i)}\"`;\n return true;\n }\n }\n function prevNonWhitespaceIndex(start) {\n let prev = start;\n while (prev > 0 && isWhitespace(text, prev)) {\n prev--;\n }\n return prev;\n }\n function atEndOfNumber() {\n return i >= text.length || isDelimiter(text[i]) || isWhitespace(text, i);\n }\n function repairNumberEndingWithNumericSymbol(start) {\n // repair numbers cut off at the end\n // this will only be called when we end after a '.', '-', or 'e' and does not\n // change the number more than it needs to make it valid JSON\n output += `${text.slice(start, i)}0`;\n }\n function throwInvalidCharacter(char) {\n throw new JSONRepairError(`Invalid character ${JSON.stringify(char)}`, i);\n }\n function throwUnexpectedCharacter() {\n throw new JSONRepairError(`Unexpected character ${JSON.stringify(text[i])}`, i);\n }\n function throwUnexpectedEnd() {\n throw new JSONRepairError('Unexpected end of json string', text.length);\n }\n function throwObjectKeyExpected() {\n throw new JSONRepairError('Object key expected', i);\n }\n function throwColonExpected() {\n throw new JSONRepairError('Colon expected', i);\n }\n function throwInvalidUnicodeCharacter() {\n const chars = text.slice(i, i + 6);\n throw new JSONRepairError(`Invalid unicode character \"${chars}\"`, i);\n }\n}\nfunction atEndOfBlockComment(text, i) {\n return text[i] === '*' && text[i + 1] === '/';\n}\n//# sourceMappingURL=jsonrepair.js.map"],"names":["processed","processedComma"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JSONRepairError.mjs","sources":["../../../../../../../../../../../node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/JSONRepairError.js"],"sourcesContent":["export class JSONRepairError extends Error {\n constructor(message, position) {\n super(`${message} at position ${position}`);\n this.position = position;\n }\n}\n//# sourceMappingURL=JSONRepairError.js.map"],"names":[],"mappings":"AAAO,MAAM,wBAAwB,MAAM;AAAA,EACzC,YAAY,SAAS,UAAU;AAC7B,UAAM,GAAG,OAAO,gBAAgB,QAAQ,EAAE;AAC1C,SAAK,WAAW;AAAA,EAClB;AACF;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stringUtils.mjs","sources":["../../../../../../../../../../../node_modules/.pnpm/jsonrepair@3.13.1/node_modules/jsonrepair/lib/esm/utils/stringUtils.js"],"sourcesContent":["const codeSpace = 0x20; // \" \"\nconst codeNewline = 0xa; // \"\\n\"\nconst codeTab = 0x9; // \"\\t\"\nconst codeReturn = 0xd; // \"\\r\"\nconst codeNonBreakingSpace = 0xa0;\nconst codeEnQuad = 0x2000;\nconst codeHairSpace = 0x200a;\nconst codeNarrowNoBreakSpace = 0x202f;\nconst codeMediumMathematicalSpace = 0x205f;\nconst codeIdeographicSpace = 0x3000;\nexport function isHex(char) {\n return /^[0-9A-Fa-f]$/.test(char);\n}\nexport function isDigit(char) {\n return char >= '0' && char <= '9';\n}\nexport function isValidStringCharacter(char) {\n // note that the valid range is between \\u{0020} and \\u{10ffff},\n // but in JavaScript it is not possible to create a code point larger than\n // \\u{10ffff}, so there is no need to test for that here.\n return char >= '\\u0020';\n}\nexport function isDelimiter(char) {\n return ',:[]/{}()\\n+'.includes(char);\n}\nexport function isFunctionNameCharStart(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$';\n}\nexport function isFunctionNameChar(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$' || char >= '0' && char <= '9';\n}\n\n// matches \"https://\" and other schemas\nexport const regexUrlStart = /^(http|https|ftp|mailto|file|data|irc):\\/\\/$/;\n\n// matches all valid URL characters EXCEPT \"[\", \"]\", and \",\", since that are important JSON delimiters\nexport const regexUrlChar = /^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;\nexport function isUnquotedStringDelimiter(char) {\n return ',[]/{}\\n+'.includes(char);\n}\nexport function isStartOfValue(char) {\n return isQuote(char) || regexStartOfValue.test(char);\n}\n\n// alpha, number, minus, or opening bracket or brace\nconst regexStartOfValue = /^[[{\\w-]$/;\nexport function isControlCharacter(char) {\n return char === '\\n' || char === '\\r' || char === '\\t' || char === '\\b' || char === '\\f';\n}\n/**\n * Check if the given character is a whitespace character like space, tab, or\n * newline\n */\nexport function isWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeNewline || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a whitespace character like space or tab,\n * but NOT a newline\n */\nexport function isWhitespaceExceptNewline(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a special whitespace character, some\n * unicode variant\n */\nexport function isSpecialWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeNonBreakingSpace || code >= codeEnQuad && code <= codeHairSpace || code === codeNarrowNoBreakSpace || code === codeMediumMathematicalSpace || code === codeIdeographicSpace;\n}\n\n/**\n * Test whether the given character is a quote or double quote character.\n * Also tests for special variants of quotes.\n */\nexport function isQuote(char) {\n // the first check double quotes, since that occurs most often\n return isDoubleQuoteLike(char) || isSingleQuoteLike(char);\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Also tests for special variants of double quotes.\n */\nexport function isDoubleQuoteLike(char) {\n return char === '\"' || char === '\\u201c' || char === '\\u201d';\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Does NOT test for special variants of double quotes.\n */\nexport function isDoubleQuote(char) {\n return char === '\"';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Also tests for special variants of single quotes.\n */\nexport function isSingleQuoteLike(char) {\n return char === \"'\" || char === '\\u2018' || char === '\\u2019' || char === '\\u0060' || char === '\\u00b4';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Does NOT test for special variants of single quotes.\n */\nexport function isSingleQuote(char) {\n return char === \"'\";\n}\n\n/**\n * Strip last occurrence of textToStrip from text\n */\nexport function stripLastOccurrence(text, textToStrip) {\n let stripRemainingText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const index = text.lastIndexOf(textToStrip);\n return index !== -1 ? text.substring(0, index) + (stripRemainingText ? '' : text.substring(index + 1)) : text;\n}\nexport function insertBeforeLastWhitespace(text, textToInsert) {\n let index = text.length;\n if (!isWhitespace(text, index - 1)) {\n // no trailing whitespaces\n return text + textToInsert;\n }\n while (isWhitespace(text, index - 1)) {\n index--;\n }\n return text.substring(0, index) + textToInsert + text.substring(index);\n}\nexport function removeAtIndex(text, start, count) {\n return text.substring(0, start) + text.substring(start + count);\n}\n\n/**\n * Test whether a string ends with a newline or comma character and optional whitespace\n */\nexport function endsWithCommaOrNewline(text) {\n return /[,\\n][ \\t\\r]*$/.test(text);\n}\n//# sourceMappingURL=stringUtils.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es.mjs","sources":["../../../../../../../../../node_modules/.pnpm/vue-request@2.0.4_vue@3.5.26_typescript@5.9.3_/node_modules/vue-request/dist/index.es.js"],"sourcesContent":["import { isRef, ref, computed, watchEffect, watch, shallowRef, inject, onUnmounted, provide } from 'vue-demi';\n\nconst GLOBAL_OPTIONS = {};\nconst GLOBAL_OPTIONS_PROVIDE_KEY = Symbol('GLOBAL_OPTIONS_PROVIDE_KEY');\nconst setGlobalOptions = config => {\n Object.keys(config).forEach(key => {\n GLOBAL_OPTIONS[key] = config[key];\n });\n};\nconst getGlobalOptions = () => {\n return GLOBAL_OPTIONS;\n};\n\nconst definePlugin = options => {\n return options;\n};\n\nconst objectToString = Object.prototype.toString;\nconst toTypeString = val => objectToString.call(val);\nconst isPlainObject = val => toTypeString(val) === '[object Object]';\nconst isArray = val => Array.isArray(val);\nconst isObject = val => val !== null && typeof val === 'object';\nconst isFunction = fn => fn instanceof Function;\nconst isNil = val => val === null || val === undefined;\nconst isServer = typeof window === 'undefined';\nconst isDocumentVisibility = () => {\n var _window$document;\n if (isServer || isNil((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.visibilityState)) return true;\n return window.document.visibilityState === 'visible';\n};\nconst isOnline = () => {\n var _ref, _window$navigator;\n return (_ref = !isServer && ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : _window$navigator.onLine)) !== null && _ref !== void 0 ? _ref : true;\n};\nconst resolvedPromise = () => new Promise(() => {});\nconst get = function (source, path) {\n let defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // a[3].b -> a.3.b\n const paths = path.replace(/\\[(\\d+)\\]/g, '.$1').split('.');\n let result = source;\n for (const p of paths) {\n result = Object(result)[p];\n if (result === undefined) {\n return defaultValue;\n }\n }\n return result;\n};\nfunction omit(object, keys) {\n const result = Object.assign({}, object);\n for (const key of keys) {\n delete result[key];\n }\n return result;\n}\nconst warning = function (message) {\n let throwError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const msg = `Warning: [vue-request] ${message}`;\n if (throwError) {\n return new Error(msg);\n } else {\n console.error(msg);\n }\n};\nconst refToRaw = value => {\n return isRef(value) ? value.value : value;\n};\nconst shallowCopy = value => {\n if (isObject(value)) {\n return Object.assign(isArray(value) ? [] : {}, value);\n } else {\n return value;\n }\n};\n\nconst CACHE_MAP = new Map();\nconst getCache = cacheKey => {\n if (isNil(cacheKey)) return;\n const data = CACHE_MAP.get(cacheKey);\n return data;\n};\nconst setCache = (cacheKey, cacheTime, data) => {\n const oldCache = CACHE_MAP.get(cacheKey);\n if (oldCache !== null && oldCache !== void 0 && oldCache.timer) {\n clearTimeout(oldCache.timer);\n }\n const timer = setTimeout(() => CACHE_MAP.delete(cacheKey), cacheTime);\n CACHE_MAP.set(cacheKey, {\n ...data,\n timer\n });\n};\nconst clearCache = cacheKey => {\n if (cacheKey) {\n var _CACHE_MAP$get;\n const timer = (_CACHE_MAP$get = CACHE_MAP.get(cacheKey)) === null || _CACHE_MAP$get === void 0 ? void 0 : _CACHE_MAP$get.timer;\n timer && clearTimeout(timer);\n CACHE_MAP.delete(cacheKey);\n } else {\n // clear timer\n CACHE_MAP.forEach(i => i.timer && clearTimeout(i.timer));\n CACHE_MAP.clear();\n }\n};\n\n/**\r\n * source by `lodash`\r\n * https://github.com/lodash/lodash.git\r\n */\nfunction debounce(func, wait, options) {\n let lastArgs, lastThis, maxWait, result, timerId, lastCallTime;\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = !wait && wait !== 0 && typeof window.requestAnimationFrame === 'function';\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n const args = lastArgs;\n const thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function startTimer(pendingFunc, wait) {\n if (useRAF) {\n window.cancelAnimationFrame(timerId);\n return window.requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n function cancelTimer(id) {\n if (useRAF) {\n return window.cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n function pending() {\n return timerId !== undefined;\n }\n function debounced() {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n\nfunction baseMerge(origin, target) {\n for (const key in target) {\n if (target[key] === undefined) {\n continue;\n }\n if (!isObject(target[key]) ||\n // `target[key]` is not an object\n !isObject(origin[key]) ||\n // `target[key]` is not an object\n !(key in origin) // `key` is not in the origin object\n ) {\n origin[key] = target[key];\n continue;\n }\n if (isPlainObject(target[key]) || isArray(target[key])) {\n baseMerge(origin[key], target[key]);\n }\n }\n}\nfunction merge(origin) {\n const result = Object.assign({}, origin);\n for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n others[_key - 1] = arguments[_key];\n }\n if (!others.length) return result;\n for (const item of others) {\n baseMerge(result, item);\n }\n return result;\n}\n\n/**\r\n * source by `lodash`\r\n * https://github.com/lodash/lodash.git\r\n */\nfunction throttle(func, wait, options) {\n let leading = true;\n let trailing = true;\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n leading,\n trailing,\n maxWait: wait\n });\n}\n\nvar useDebouncePlugin = definePlugin((queryInstance, _ref) => {\n let {\n debounceInterval,\n debounceOptions,\n manual\n } = _ref;\n const initialAutoRunFlag = ref(false);\n const debouncedRun = ref();\n const debounceOptionsRef = computed(() => debounceOptions);\n const debounceIntervalRef = computed(() => refToRaw(debounceInterval));\n const originRunRef = ref(queryInstance.context.runAsync);\n if (!manual) {\n initialAutoRunFlag.value = true;\n }\n watchEffect(onInvalidate => {\n if (isNil(debounceIntervalRef.value)) return;\n debouncedRun.value = debounce(callback => callback(), debounceIntervalRef.value, debounceOptionsRef.value);\n queryInstance.context.runAsync = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new Promise((resolve, reject) => {\n if (initialAutoRunFlag.value) {\n initialAutoRunFlag.value = false;\n originRunRef.value(...args).then(resolve).catch(reject);\n } else {\n debouncedRun.value(() => {\n originRunRef.value(...args).then(resolve).catch(reject);\n });\n }\n });\n };\n onInvalidate(() => {\n var _debouncedRun$value;\n (_debouncedRun$value = debouncedRun.value) === null || _debouncedRun$value === void 0 ? void 0 : _debouncedRun$value.cancel();\n queryInstance.context.runAsync = originRunRef.value;\n });\n });\n return {\n onCancel() {\n var _debouncedRun$value2;\n (_debouncedRun$value2 = debouncedRun.value) === null || _debouncedRun$value2 === void 0 ? void 0 : _debouncedRun$value2.cancel();\n }\n };\n});\n\nvar useErrorRetryPlugin = definePlugin((queryInstance, _ref) => {\n let {\n errorRetryCount = 0,\n errorRetryInterval = 0\n } = _ref;\n const retryTimer = ref();\n const retriedCount = ref(0);\n const errorRetryCountRef = computed(() => refToRaw(errorRetryCount));\n const errorRetryIntervalRef = computed(() => refToRaw(errorRetryInterval));\n let isRetrying = false;\n // reset retried count\n const resetRetriedCount = () => {\n retriedCount.value = 0;\n };\n const actualErrorRetryInterval = computed(() => {\n if (errorRetryIntervalRef.value) return errorRetryIntervalRef.value;\n const baseTime = 1000;\n const minCoefficient = 1;\n const maxCoefficient = 9;\n // When retrying for the first time, in order to avoid the coefficient being 0\n // so replace 0 with 2, the coefficient range will become 1 - 2\n const coefficient = Math.floor(Math.random() * 2 ** Math.min(retriedCount.value, maxCoefficient) + minCoefficient);\n return baseTime * coefficient;\n });\n const errorRetryHooks = () => {\n let timerId;\n const isInfiniteRetry = errorRetryCountRef.value === -1;\n const hasRetryCount = retriedCount.value < errorRetryCountRef.value;\n // if errorRetryCount is -1, it will retry the request until it success\n if (isInfiniteRetry || hasRetryCount) {\n if (!isInfiniteRetry) retriedCount.value += 1;\n timerId = setTimeout(() => {\n isRetrying = true;\n queryInstance.context.refresh();\n }, actualErrorRetryInterval.value);\n }\n return () => timerId && clearTimeout(timerId);\n };\n // clear retryTimer\n const clearTimer = () => {\n if (retryTimer.value) {\n retryTimer.value();\n }\n };\n return {\n onBefore() {\n if (!isRetrying) {\n resetRetriedCount();\n }\n isRetrying = false;\n clearTimer();\n },\n onSuccess() {\n resetRetriedCount();\n },\n onError() {\n retryTimer.value = errorRetryHooks();\n },\n onCancel() {\n // TODO: Whether to reset the count when `onCancel`\n resetRetriedCount();\n clearTimer();\n }\n };\n});\n\nvar useReadyPlugin = definePlugin((queryInstance, _ref) => {\n let {\n ready = ref(true),\n manual,\n defaultParams = []\n } = _ref;\n // watch ready\n watch(ready, val => {\n if (!manual && val) {\n queryInstance.context.run(...defaultParams);\n }\n }, {\n flush: 'sync'\n });\n return {\n onBefore() {\n const readyFlag = isFunction(ready) ? ready() : ready.value;\n if (!readyFlag) {\n queryInstance.loading.value = false;\n return {\n isBreak: true\n };\n }\n }\n };\n});\n\nvar useRefreshDepsPlugin = definePlugin((queryInstance, _ref) => {\n let {\n refreshDeps,\n refreshDepsAction,\n manual\n } = _ref;\n if (refreshDeps === undefined || isArray(refreshDeps) && refreshDeps.length === 0) return {};\n const deps = isArray(refreshDeps) ? refreshDeps : [refreshDeps];\n // watch refreshDeps\n watch(deps, () => {\n if (refreshDepsAction) {\n refreshDepsAction();\n } else {\n !manual && queryInstance.context.refresh();\n }\n });\n return {};\n});\n\nvar useThrottlePlugin = definePlugin((queryInstance, _ref) => {\n let {\n throttleInterval,\n throttleOptions\n } = _ref;\n const throttledRun = ref();\n const throttleIntervalRef = computed(() => refToRaw(throttleInterval));\n const throttleOptionsRef = computed(() => throttleOptions);\n const originRunRef = ref(queryInstance.context.runAsync);\n watchEffect(onInvalidate => {\n if (isNil(throttleInterval)) return {};\n throttledRun.value = throttle(callback => callback(), throttleIntervalRef.value, throttleOptionsRef.value);\n queryInstance.context.runAsync = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new Promise((resolve, reject) => {\n throttledRun.value(() => {\n originRunRef.value(...args).then(resolve).catch(reject);\n });\n });\n };\n onInvalidate(() => {\n var _throttledRun$value;\n (_throttledRun$value = throttledRun.value) === null || _throttledRun$value === void 0 ? void 0 : _throttledRun$value.cancel();\n queryInstance.context.runAsync = originRunRef.value;\n });\n });\n return {\n onCancel() {\n var _throttledRun$value2;\n (_throttledRun$value2 = throttledRun.value) === null || _throttledRun$value2 === void 0 ? void 0 : _throttledRun$value2.cancel();\n }\n };\n});\n\nconst setStateBind = (oldState, publicCb) => {\n return newState => {\n Object.keys(newState).forEach(key => {\n oldState[key].value = newState[key];\n });\n publicCb.forEach(fun => fun(oldState));\n };\n};\nconst composeMiddleware = (middleArray, hook) => {\n return () => {\n let next = hook;\n for (let i = middleArray.length; i-- > 0;) {\n next = middleArray[i](next);\n }\n return next();\n };\n};\nconst createQuery = (service, config, initialState) => {\n var _initialState$loading, _initialState$data;\n const {\n initialData,\n onSuccess,\n onError,\n onBefore,\n onAfter\n } = config;\n const loading = ref((_initialState$loading = initialState === null || initialState === void 0 ? void 0 : initialState.loading) !== null && _initialState$loading !== void 0 ? _initialState$loading : false);\n const data = shallowRef((_initialState$data = initialState === null || initialState === void 0 ? void 0 : initialState.data) !== null && _initialState$data !== void 0 ? _initialState$data : initialData);\n const error = shallowRef(initialState === null || initialState === void 0 ? void 0 : initialState.error);\n const params = ref(initialState === null || initialState === void 0 ? void 0 : initialState.params);\n const plugins = ref([]);\n const status = shallowRef('pending');\n const context = {};\n const setState = setStateBind({\n status,\n loading,\n data,\n error,\n params\n }, []);\n const emit = function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (event === 'onQuery') {\n const queryFn = plugins.value.map(i => i.onQuery).filter(Boolean);\n return {\n servicePromise: composeMiddleware(queryFn, args[0])()\n };\n } else {\n // @ts-ignore\n const res = plugins.value.map(i => {\n var _i$event;\n return (_i$event = i[event]) === null || _i$event === void 0 ? void 0 : _i$event.call(i, ...args);\n });\n return Object.assign({}, ...res);\n }\n };\n const count = ref(0);\n context.runAsync = async function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n setState({\n loading: true,\n params: args,\n status: 'pending'\n });\n count.value += 1;\n const currentCount = count.value;\n const {\n isBreak,\n breakResult = resolvedPromise()\n } = emit('onBefore', args);\n if (isBreak) {\n setState({\n status: 'settled'\n });\n return breakResult;\n }\n onBefore === null || onBefore === void 0 ? void 0 : onBefore(args);\n try {\n const serviceWrapper = () => new Promise(resolve => resolve(service(...params.value)));\n let {\n servicePromise\n } = emit('onQuery', serviceWrapper);\n /* istanbul ignore next */\n if (!servicePromise) {\n servicePromise = serviceWrapper();\n }\n const res = await servicePromise;\n if (currentCount !== count.value) return resolvedPromise();\n setState({\n data: res,\n loading: false,\n error: undefined,\n status: 'settled'\n });\n emit('onSuccess', res, args);\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(res, args);\n if (currentCount === count.value) {\n emit('onAfter', args, res, undefined);\n }\n onAfter === null || onAfter === void 0 ? void 0 : onAfter(args);\n return res;\n } catch (error) {\n if (currentCount !== count.value) return resolvedPromise();\n setState({\n loading: false,\n error: error,\n status: 'settled'\n });\n emit('onError', error, args);\n onError === null || onError === void 0 ? void 0 : onError(error, args);\n if (currentCount === count.value) {\n emit('onAfter', args, undefined, error);\n }\n onAfter === null || onAfter === void 0 ? void 0 : onAfter(args);\n throw error;\n }\n };\n context.run = function () {\n context.runAsync(...arguments).catch(error => {\n if (!onError) {\n console.error(error);\n }\n });\n };\n context.cancel = () => {\n count.value += 1;\n setState({\n loading: false\n });\n emit('onCancel');\n };\n context.refresh = () => {\n context.run(...(params.value || []));\n };\n context.refreshAsync = () => {\n return context.runAsync(...(params.value || []));\n };\n context.mutate = x => {\n const mutateData = isFunction(x) ? x(data.value) : x;\n const _mutateData = shallowCopy(mutateData);\n setState({\n data: _mutateData\n });\n emit('onMutate', _mutateData);\n };\n return {\n status,\n loading,\n data,\n error,\n params,\n plugins,\n context\n };\n};\n\nfunction useQuery(service) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let plugins = arguments.length > 2 ? arguments[2] : undefined;\n const injectedGlobalOptions = inject(GLOBAL_OPTIONS_PROVIDE_KEY, {});\n const config = {\n ...getGlobalOptions(),\n ...injectedGlobalOptions,\n ...options\n };\n const {\n manual = false,\n defaultParams = []\n } = config;\n const queryInstance = createQuery(service, config);\n queryInstance.plugins.value = plugins.map(i => i(queryInstance, config));\n // initial run\n if (!manual) {\n const params = queryInstance.params.value || defaultParams;\n queryInstance.context.run(...params);\n }\n onUnmounted(() => {\n queryInstance.context.cancel();\n });\n return {\n loading: queryInstance.loading,\n data: queryInstance.data,\n error: queryInstance.error,\n params: queryInstance.params,\n cancel: queryInstance.context.cancel,\n refresh: queryInstance.context.refresh,\n refreshAsync: queryInstance.context.refreshAsync,\n mutate: queryInstance.context.mutate,\n run: queryInstance.context.run,\n runAsync: queryInstance.context.runAsync\n };\n}\n\nfunction useLoadMore(service, options) {\n const {\n isNoMore,\n ...restOptions\n } = options !== null && options !== void 0 ? options : {};\n const data = shallowRef();\n const dataList = computed(() => {\n var _data$value;\n return ((_data$value = data.value) === null || _data$value === void 0 ? void 0 : _data$value.list) || [];\n });\n const loadingMore = ref(false);\n const isTriggerByLoadMore = ref(false);\n const count = ref(0);\n const {\n runAsync,\n run,\n cancel: _cancel,\n ...rest\n } = useQuery(async lastData => {\n const currentCount = count.value;\n const currentData = await service(lastData);\n if (currentCount === count.value) {\n if (lastData) {\n data.value = {\n ...currentData,\n list: [...lastData.list, ...currentData.list]\n };\n } else {\n data.value = currentData;\n }\n }\n return currentData;\n }, {\n ...restOptions,\n defaultParams: [],\n refreshDepsAction: () => {\n if (restOptions !== null && restOptions !== void 0 && restOptions.refreshDepsAction) {\n restOptions.refreshDepsAction();\n } else {\n refresh();\n }\n },\n onError: error => {\n var _restOptions$onError;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onError = restOptions.onError) === null || _restOptions$onError === void 0 ? void 0 : _restOptions$onError.call(restOptions, error);\n },\n onSuccess: data => {\n var _restOptions$onSucces;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onSucces = restOptions.onSuccess) === null || _restOptions$onSucces === void 0 ? void 0 : _restOptions$onSucces.call(restOptions, data);\n },\n onBefore: () => {\n var _restOptions$onBefore;\n count.value += 1;\n if (isTriggerByLoadMore.value) {\n isTriggerByLoadMore.value = false;\n loadingMore.value = true;\n }\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onBefore = restOptions.onBefore) === null || _restOptions$onBefore === void 0 ? void 0 : _restOptions$onBefore.call(restOptions);\n },\n onAfter: () => {\n var _restOptions$onAfter;\n loadingMore.value = false;\n isTriggerByLoadMore.value = false;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onAfter = restOptions.onAfter) === null || _restOptions$onAfter === void 0 ? void 0 : _restOptions$onAfter.call(restOptions);\n }\n }, [useErrorRetryPlugin, useDebouncePlugin, useThrottlePlugin, useRefreshDepsPlugin, useReadyPlugin]);\n const noMore = computed(() => {\n return isNoMore && isFunction(isNoMore) ? isNoMore(data.value) : false;\n });\n const loadMore = () => {\n loadMoreAsync().catch(() => {});\n };\n const loadMoreAsync = () => {\n if (noMore.value) {\n return Promise.reject(warning('No more data. You need to ignore this error by checking if `noMore` is false before calling `loadMoreAsync`', true));\n }\n isTriggerByLoadMore.value = true;\n return runAsync(data.value);\n };\n const refresh = () => run();\n const refreshAsync = () => runAsync();\n const cancel = () => {\n count.value += 1;\n _cancel();\n loadingMore.value = false;\n };\n const mutate = x => {\n const mutateData = isFunction(x) ? x(data.value) : x;\n const _mutateData = shallowCopy(mutateData);\n data.value = _mutateData;\n };\n return {\n data,\n dataList,\n loadingMore,\n noMore,\n cancel,\n mutate,\n refresh,\n refreshAsync,\n loadMore,\n loadMoreAsync,\n ...omit(rest, ['refresh', 'refreshAsync', 'mutate', 'params', 'data'])\n };\n}\n\nconst cacheQuery = new Map();\nconst setCacheQuery = (cacheKey, query) => {\n cacheQuery.set(cacheKey, query);\n query.then(res => {\n cacheQuery.delete(cacheKey);\n return res;\n }).catch(() => {\n cacheQuery.delete(cacheKey);\n });\n};\nconst getCacheQuery = cacheKey => {\n return cacheQuery.get(cacheKey);\n};\n\nconst listeners = new Map();\nconst trigger = (key, data) => {\n if (listeners.has(key)) {\n listeners.get(key).forEach(item => item(data));\n }\n};\nconst subscribe = (key, listener) => {\n if (!listeners.has(key)) {\n listeners.set(key, [listener]);\n } else {\n listeners.get(key).push(listener);\n }\n return () => {\n const index = listeners.get(key).indexOf(listener);\n listeners.get(key).splice(index, 1);\n };\n};\n\nvar useCachePlugin = definePlugin((queryInstance, _ref) => {\n let {\n cacheKey: customCacheKey,\n cacheTime = 600000,\n staleTime = 0,\n getCache: customGetCache,\n setCache: customSetCache\n } = _ref;\n if (!customCacheKey) return {};\n const cacheKey = isFunction(customCacheKey) ? customCacheKey : () => customCacheKey;\n const unSubscribe = ref(() => {});\n let currentQuery;\n const _getCache = key => {\n if (customGetCache) {\n return customGetCache(key);\n } else {\n return getCache(key);\n }\n };\n const _setCache = (key, time, cacheData) => {\n if (customSetCache) {\n customSetCache(key, cacheData);\n } else {\n setCache(key, time, cacheData);\n }\n trigger(key, cacheData.data);\n };\n const isFresh = time => staleTime === -1 || time + staleTime > new Date().getTime();\n // Returns a boolean indicating whether the object has the specified property as its own property\n // (as opposed to inheriting it)\n const hasProp = (object, prop) => Object.prototype.hasOwnProperty.call(object, prop);\n const subscribeCache = params => {\n const _cacheKey = cacheKey(params);\n return subscribe(_cacheKey, data => {\n queryInstance.data.value = data;\n });\n };\n // When initializing, restore if there is a cache\n const _cacheKey = cacheKey();\n const cache = _getCache(_cacheKey);\n if (cache && hasProp(cache, 'data')) {\n queryInstance.data.value = cache.data;\n queryInstance.params.value = cache.params;\n }\n if (_cacheKey) {\n unSubscribe.value = subscribeCache();\n }\n onUnmounted(() => {\n unSubscribe.value();\n });\n return {\n onBefore(params) {\n const _cacheKey = cacheKey(params);\n const cache = _getCache(_cacheKey);\n if (!cache || !hasProp(cache, 'data')) {\n return {};\n }\n // If it's fresh, stop the request\n if (isFresh(cache.time)) {\n queryInstance.data.value = cache.data;\n queryInstance.loading.value = false;\n return {\n isBreak: true,\n breakResult: cache.data\n };\n } else {\n // If it is not fresh, set data and request\n queryInstance.data.value = cache.data;\n }\n },\n onQuery(service) {\n const params = queryInstance.params.value;\n const _cacheKey = cacheKey(params);\n let servicePromise = getCacheQuery(_cacheKey);\n if (servicePromise && servicePromise !== currentQuery) {\n return () => servicePromise;\n }\n servicePromise = service();\n currentQuery = servicePromise;\n setCacheQuery(_cacheKey, servicePromise);\n return () => servicePromise;\n },\n onSuccess(data, params) {\n const _cacheKey = cacheKey(params);\n if (_cacheKey) {\n unSubscribe.value();\n _setCache(_cacheKey, cacheTime, {\n data,\n params,\n time: new Date().getTime()\n });\n unSubscribe.value = subscribeCache(params);\n }\n },\n onMutate(data) {\n const _cacheKey = cacheKey(queryInstance.params.value);\n if (_cacheKey) {\n unSubscribe.value();\n _setCache(_cacheKey, cacheTime, {\n data,\n params: queryInstance.params.value,\n time: new Date().getTime()\n });\n unSubscribe.value = subscribeCache(queryInstance.params.value);\n }\n }\n };\n});\n\nfunction setTimeoutPromise(duration) {\n let timerId, stop;\n class Timer extends Promise {\n constructor(fn) {\n super(fn);\n this.cancel = () => {\n stop();\n clearTimeout(timerId);\n };\n }\n }\n return new Timer(resolve => {\n stop = resolve;\n timerId = setTimeout(stop, duration);\n });\n}\nfunction getCurrentTime() {\n return new Date().getTime();\n}\nvar useLoadingDelayPlugin = definePlugin((queryInstance, _ref) => {\n let {\n loadingDelay = 0,\n loadingKeep = 0\n } = _ref;\n const delayLoadingTimer = ref(() => {});\n const loadingDelayRef = computed(() => refToRaw(loadingDelay));\n const loadingKeepRef = computed(() => refToRaw(loadingKeep));\n let startTime = 0;\n let timeoutPromise = {};\n const delayLoading = () => {\n let timerId;\n if (loadingDelayRef.value) {\n timerId = setTimeout(() => {\n if (queryInstance.status.value === 'pending') {\n queryInstance.loading.value = true;\n }\n }, loadingDelayRef.value);\n }\n return () => timerId && clearTimeout(timerId);\n };\n return {\n onBefore() {\n queryInstance.loading.value = !loadingDelayRef.value;\n delayLoadingTimer.value();\n delayLoadingTimer.value = delayLoading();\n startTime = getCurrentTime();\n },\n onQuery(service) {\n if (!loadingKeepRef.value) return () => service();\n timeoutPromise = setTimeoutPromise(loadingKeepRef.value + loadingDelayRef.value);\n const _service = async () => {\n try {\n const res = await service();\n if (getCurrentTime() - startTime <= loadingDelayRef.value) {\n timeoutPromise.cancel();\n }\n return Promise.resolve(res);\n } catch (error) {\n if (getCurrentTime() - startTime <= loadingDelayRef.value) {\n timeoutPromise.cancel();\n }\n return Promise.reject(error);\n }\n };\n const servicePromise = Promise.allSettled([_service(), timeoutPromise]).then(res => {\n const result = res[0];\n if (result.status === 'fulfilled') {\n return result.value;\n } else {\n return Promise.reject(result.reason);\n }\n });\n return () => servicePromise;\n },\n onCancel() {\n delayLoadingTimer.value();\n },\n onAfter() {\n delayLoadingTimer.value();\n }\n };\n});\n\nvar _window;\nconst FOCUS_LISTENER = new Set();\nconst VISIBLE_LISTENER = new Set();\nconst RECONNECT_LISTENER = new Set();\nconst subscriber = (listenerType, event) => {\n let listeners;\n switch (listenerType) {\n case 'FOCUS_LISTENER':\n listeners = FOCUS_LISTENER;\n break;\n case 'RECONNECT_LISTENER':\n listeners = RECONNECT_LISTENER;\n break;\n case 'VISIBLE_LISTENER':\n listeners = VISIBLE_LISTENER;\n break;\n }\n if (listeners.has(event)) return;\n listeners.add(event);\n return () => {\n listeners.delete(event);\n };\n};\nconst observer = listeners => {\n listeners.forEach(event => {\n event();\n });\n};\n/* istanbul ignore else */\nif (!isServer && (_window = window) !== null && _window !== void 0 && _window.addEventListener) {\n window.addEventListener('visibilitychange', () => {\n /* istanbul ignore else */\n if (isDocumentVisibility()) {\n observer(VISIBLE_LISTENER);\n }\n }, false);\n window.addEventListener('focus', () => observer(FOCUS_LISTENER), false);\n window.addEventListener('online', () => observer(RECONNECT_LISTENER), false);\n}\n\nvar usePollingPlugin = definePlugin((queryInstance, _ref) => {\n let {\n pollingInterval,\n pollingWhenHidden = false,\n pollingWhenOffline = false,\n errorRetryCount = 0\n } = _ref;\n const pollingTimer = ref();\n const stopPollingWhenHiddenOrOffline = ref(false);\n const pollingIntervalRef = computed(() => refToRaw(pollingInterval));\n const errorRetryCountRef = computed(() => refToRaw(errorRetryCount));\n const unsubscribeList = [];\n const addUnsubscribeList = event => {\n event && unsubscribeList.push(event);\n };\n const isKeepPolling = () => {\n return (\n // pollingWhenHidden = true or pollingWhenHidden = false and document is visibility\n (pollingWhenHidden || isDocumentVisibility()) && (\n // pollingWhenOffline = true or pollingWhenOffline = false and is online\n pollingWhenOffline || isOnline())\n );\n };\n const polling = pollingFunc => {\n // if errorRetry is enabled, then skip this method\n if (queryInstance.error.value && errorRetryCountRef.value !== 0) return;\n let timerId;\n if (!isNil(pollingIntervalRef.value) && pollingIntervalRef.value >= 0) {\n if (isKeepPolling()) {\n timerId = setTimeout(pollingFunc, pollingIntervalRef.value);\n } else {\n // stop polling\n stopPollingWhenHiddenOrOffline.value = true;\n return;\n }\n }\n return () => timerId && clearTimeout(timerId);\n };\n const rePolling = () => {\n if (stopPollingWhenHiddenOrOffline.value && isKeepPolling()) {\n queryInstance.context.refresh();\n stopPollingWhenHiddenOrOffline.value = false;\n }\n };\n watch(pollingIntervalRef, () => {\n if (pollingTimer.value) {\n pollingTimer.value();\n pollingTimer.value = polling(() => queryInstance.context.refresh());\n }\n });\n // subscribe polling\n if (!pollingWhenHidden) {\n addUnsubscribeList(subscriber('VISIBLE_LISTENER', rePolling));\n }\n // subscribe online when pollingWhenOffline is false\n if (!pollingWhenOffline) {\n addUnsubscribeList(subscriber('RECONNECT_LISTENER', rePolling));\n }\n onUnmounted(() => {\n unsubscribeList.forEach(unsubscribe => unsubscribe());\n });\n return {\n onBefore() {\n var _pollingTimer$value;\n (_pollingTimer$value = pollingTimer.value) === null || _pollingTimer$value === void 0 ? void 0 : _pollingTimer$value.call(pollingTimer);\n },\n onCancel() {\n var _pollingTimer$value2;\n (_pollingTimer$value2 = pollingTimer.value) === null || _pollingTimer$value2 === void 0 ? void 0 : _pollingTimer$value2.call(pollingTimer);\n },\n onAfter() {\n pollingTimer.value = polling(() => queryInstance.context.refresh());\n }\n };\n});\n\nconst limitTrigger = (fn, timeInterval) => {\n let running = false;\n return function () {\n if (running) return;\n running = true;\n fn(...arguments);\n setTimeout(() => {\n running = false;\n }, timeInterval);\n };\n};\n\nvar useRefreshOnWindowFocus = definePlugin((queryInstance, _ref) => {\n let {\n refreshOnWindowFocus = false,\n refocusTimespan = 5000\n } = _ref;\n const refreshOnWindowFocusRef = computed(() => refToRaw(refreshOnWindowFocus));\n const refocusTimespanRef = computed(() => refToRaw(refocusTimespan));\n const unsubscribeList = [];\n const addUnsubscribeList = event => {\n event && unsubscribeList.push(event);\n };\n const unsubscribe = () => {\n unsubscribeList.forEach(fn => fn());\n };\n watchEffect(() => {\n unsubscribe();\n if (refreshOnWindowFocusRef.value) {\n const limitRefresh = limitTrigger(queryInstance.context.refresh, refocusTimespanRef.value);\n addUnsubscribeList(subscriber('VISIBLE_LISTENER', limitRefresh));\n addUnsubscribeList(subscriber('FOCUS_LISTENER', limitRefresh));\n }\n });\n onUnmounted(() => {\n unsubscribe();\n });\n return {};\n});\n\nfunction useRequest(service, options, plugins) {\n return useQuery(service, options, [...(plugins || []), useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);\n}\n\nfunction usePagination(service) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const defaultPaginationOptions = {\n currentKey: 'current',\n pageSizeKey: 'pageSize',\n totalKey: 'total',\n totalPageKey: 'totalPage'\n };\n const injectedGlobalOptions = inject(GLOBAL_OPTIONS_PROVIDE_KEY, {});\n const {\n pagination,\n ...restOptions\n } = options;\n const {\n currentKey,\n pageSizeKey,\n totalKey,\n totalPageKey\n } = merge(defaultPaginationOptions, getGlobalOptions().pagination || {}, injectedGlobalOptions.pagination || {}, pagination || {});\n const finallyOptions = merge({\n defaultParams: [{\n [currentKey]: 1,\n [pageSizeKey]: 10\n }]\n }, restOptions);\n const {\n data,\n params,\n run,\n ...rest\n } = useRequest(service, finallyOptions);\n const paging = paginationParams => {\n const [oldPaginationParams, ...restParams] = params.value || [];\n const newPaginationParams = {\n ...oldPaginationParams,\n ...paginationParams\n };\n const mergerParams = [newPaginationParams, ...restParams];\n run(...mergerParams);\n };\n // changeCurrent\tchange current page\t(current: number) => void\n const changeCurrent = current => {\n paging({\n [currentKey]: current\n });\n };\n // changePageSize\tchange pageSize\t(pageSize: number) => void\n const changePageSize = pageSize => {\n paging({\n [pageSizeKey]: pageSize\n });\n };\n // changePagination\tchange current and pageSize\t(current: number, pageSize: number) => void\n const changePagination = (current, pageSize) => {\n paging({\n [currentKey]: current,\n [pageSizeKey]: pageSize\n });\n };\n const total = computed(() => get(data.value, totalKey, 0));\n const current = computed({\n get: () => {\n var _params$value$0$curre, _params$value, _params$value$;\n return (// @ts-ignore\n (_params$value$0$curre = (_params$value = params.value) === null || _params$value === void 0 ? void 0 : (_params$value$ = _params$value[0]) === null || _params$value$ === void 0 ? void 0 : _params$value$[currentKey]) !== null && _params$value$0$curre !== void 0 ? _params$value$0$curre : finallyOptions.defaultParams[0][currentKey]\n );\n },\n set: val => {\n changeCurrent(val);\n }\n });\n const pageSize = computed({\n get: () => {\n var _params$value$0$pageS, _params$value2, _params$value2$;\n return (// @ts-ignore\n (_params$value$0$pageS = (_params$value2 = params.value) === null || _params$value2 === void 0 ? void 0 : (_params$value2$ = _params$value2[0]) === null || _params$value2$ === void 0 ? void 0 : _params$value2$[pageSizeKey]) !== null && _params$value$0$pageS !== void 0 ? _params$value$0$pageS : finallyOptions.defaultParams[0][pageSizeKey]\n );\n },\n set: val => {\n changePageSize(val);\n }\n });\n const totalPage = computed(() => get(data.value, totalPageKey, Math.ceil(total.value / pageSize.value)));\n return {\n data,\n params,\n current,\n pageSize,\n total,\n totalPage,\n run,\n changeCurrent,\n changePageSize,\n changePagination,\n ...rest\n };\n}\n\nvar useRequestProvider = (config => {\n provide(GLOBAL_OPTIONS_PROVIDE_KEY, config);\n});\n\nexport { clearCache, definePlugin, setGlobalOptions, useLoadMore, usePagination, useRequest, useRequestProvider };\n"],"names":["wait","error","data","_cacheKey","cache","listeners","current","pageSize"],"mappings":";AAEA,MAAM,iBAAiB,CAAA;AACvB,MAAM,6BAA6B,uBAAO,4BAA4B;AAMtE,MAAM,mBAAmB,MAAM;AAC7B,SAAO;AACT;AAEK,MAAC,eAAe,aAAW;AAC9B,SAAO;AACT;AAEA,MAAM,iBAAiB,OAAO,UAAU;AACxC,MAAM,eAAe,SAAO,eAAe,KAAK,GAAG;AACnD,MAAM,gBAAgB,SAAO,aAAa,GAAG,MAAM;AACnD,MAAM,UAAU,SAAO,MAAM,QAAQ,GAAG;AACxC,MAAM,WAAW,SAAO,QAAQ,QAAQ,OAAO,QAAQ;AACvD,MAAM,aAAa,QAAM,cAAc;AACvC,MAAM,QAAQ,SAAO,QAAQ,QAAQ,QAAQ;AAC7C,MAAM,WAAW,OAAO,WAAW;AACnC,MAAM,uBAAuB,MAAM;AACjC,MAAI;AACJ,MAAI,YAAY,OAAO,mBAAmB,OAAO,cAAc,QAAQ,qBAAqB,SAAS,SAAS,iBAAiB,eAAe,EAAG,QAAO;AACxJ,SAAO,OAAO,SAAS,oBAAoB;AAC7C;AACA,MAAM,WAAW,MAAM;AACrB,MAAI,MAAM;AACV,UAAQ,OAAO,CAAC,cAAc,oBAAoB,OAAO,eAAe,QAAQ,sBAAsB,SAAS,SAAS,kBAAkB,aAAa,QAAQ,SAAS,SAAS,OAAO;AAC1L;AACA,MAAM,kBAAkB,MAAM,IAAI,QAAQ,MAAM;AAAC,CAAC;AAClD,MAAM,MAAM,SAAU,QAAQ,MAAM;AAClC,MAAI,eAAe,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAEvF,QAAM,QAAQ,KAAK,QAAQ,cAAc,KAAK,EAAE,MAAM,GAAG;AACzD,MAAI,SAAS;AACb,aAAW,KAAK,OAAO;AACrB,aAAS,OAAO,MAAM,EAAE,CAAC;AACzB,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,KAAK,QAAQ,MAAM;AAC1B,QAAM,SAAS,OAAO,OAAO,CAAA,GAAI,MAAM;AACvC,aAAW,OAAO,MAAM;AACtB,WAAO,OAAO,GAAG;AAAA,EACnB;AACA,SAAO;AACT;AACA,MAAM,UAAU,SAAU,SAAS;AACjC,MAAI,aAAa,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACrF,QAAM,MAAM,0BAA0B,OAAO;AAC7C,MAAI,YAAY;AACd,WAAO,IAAI,MAAM,GAAG;AAAA,EACtB,OAAO;AACL,YAAQ,MAAM,GAAG;AAAA,EACnB;AACF;AACA,MAAM,WAAW,WAAS;AACxB,SAAO,MAAM,KAAK,IAAI,MAAM,QAAQ;AACtC;AACA,MAAM,cAAc,WAAS;AAC3B,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,OAAO,OAAO,QAAQ,KAAK,IAAI,CAAA,IAAK,CAAA,GAAI,KAAK;AAAA,EACtD,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEA,MAAM,YAAY,oBAAI,IAAG;AACzB,MAAM,WAAW,cAAY;AAC3B,MAAI,MAAM,QAAQ,EAAG;AACrB,QAAM,OAAO,UAAU,IAAI,QAAQ;AACnC,SAAO;AACT;AACA,MAAM,WAAW,CAAC,UAAU,WAAW,SAAS;AAC9C,QAAM,WAAW,UAAU,IAAI,QAAQ;AACvC,MAAI,aAAa,QAAQ,aAAa,UAAU,SAAS,OAAO;AAC9D,iBAAa,SAAS,KAAK;AAAA,EAC7B;AACA,QAAM,QAAQ,WAAW,MAAM,UAAU,OAAO,QAAQ,GAAG,SAAS;AACpE,YAAU,IAAI,UAAU;AAAA,IACtB,GAAG;AAAA,IACH;AAAA,EACJ,CAAG;AACH;AAkBA,SAAS,SAAS,MAAM,MAAM,SAAS;AACrC,MAAI,UAAU,UAAU,SAAS,QAAQ,SAAS;AAClD,MAAI,iBAAiB;AACrB,MAAI,UAAU;AACd,MAAI,SAAS;AACb,MAAI,WAAW;AAEf,QAAM,SAAS,CAAC,QAAQ,SAAS,KAAK,OAAO,OAAO,0BAA0B;AAC9E,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,qBAAqB;AAAA,EAC3C;AACA,SAAO,CAAC,QAAQ;AAChB,MAAI,SAAS,OAAO,GAAG;AACrB,cAAU,CAAC,CAAC,QAAQ;AACpB,aAAS,aAAa;AACtB,cAAU,SAAS,KAAK,IAAI,CAAC,QAAQ,WAAW,GAAG,IAAI,IAAI;AAC3D,eAAW,cAAc,UAAU,CAAC,CAAC,QAAQ,WAAW;AAAA,EAC1D;AACA,WAAS,WAAW,MAAM;AACxB,UAAM,OAAO;AACb,UAAM,UAAU;AAChB,eAAW,WAAW;AACtB,qBAAiB;AACjB,aAAS,KAAK,MAAM,SAAS,IAAI;AACjC,WAAO;AAAA,EACT;AACA,WAAS,WAAW,aAAaA,OAAM;AACrC,QAAI,QAAQ;AACV,aAAO,qBAAqB,OAAO;AACnC,aAAO,OAAO,sBAAsB,WAAW;AAAA,IACjD;AACA,WAAO,WAAW,aAAaA,KAAI;AAAA,EACrC;AACA,WAAS,YAAY,IAAI;AACvB,QAAI,QAAQ;AACV,aAAO,OAAO,qBAAqB,EAAE;AAAA,IACvC;AACA,iBAAa,EAAE;AAAA,EACjB;AACA,WAAS,YAAY,MAAM;AAEzB,qBAAiB;AAEjB,cAAU,WAAW,cAAc,IAAI;AAEvC,WAAO,UAAU,WAAW,IAAI,IAAI;AAAA,EACtC;AACA,WAAS,cAAc,MAAM;AAC3B,UAAM,oBAAoB,OAAO;AACjC,UAAM,sBAAsB,OAAO;AACnC,UAAM,cAAc,OAAO;AAC3B,WAAO,SAAS,KAAK,IAAI,aAAa,UAAU,mBAAmB,IAAI;AAAA,EACzE;AACA,WAAS,aAAa,MAAM;AAC1B,UAAM,oBAAoB,OAAO;AACjC,UAAM,sBAAsB,OAAO;AAInC,WAAO,iBAAiB,UAAa,qBAAqB,QAAQ,oBAAoB,KAAK,UAAU,uBAAuB;AAAA,EAC9H;AACA,WAAS,eAAe;AACtB,UAAM,OAAO,KAAK,IAAG;AACrB,QAAI,aAAa,IAAI,GAAG;AACtB,aAAO,aAAa,IAAI;AAAA,IAC1B;AAEA,cAAU,WAAW,cAAc,cAAc,IAAI,CAAC;AAAA,EACxD;AACA,WAAS,aAAa,MAAM;AAC1B,cAAU;AAGV,QAAI,YAAY,UAAU;AACxB,aAAO,WAAW,IAAI;AAAA,IACxB;AACA,eAAW,WAAW;AACtB,WAAO;AAAA,EACT;AACA,WAAS,SAAS;AAChB,QAAI,YAAY,QAAW;AACzB,kBAAY,OAAO;AAAA,IACrB;AACA,qBAAiB;AACjB,eAAW,eAAe,WAAW,UAAU;AAAA,EACjD;AACA,WAAS,QAAQ;AACf,WAAO,YAAY,SAAY,SAAS,aAAa,KAAK,KAAK;AAAA,EACjE;AACA,WAAS,UAAU;AACjB,WAAO,YAAY;AAAA,EACrB;AACA,WAAS,YAAY;AACnB,UAAM,OAAO,KAAK,IAAG;AACrB,UAAM,aAAa,aAAa,IAAI;AACpC,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC7B;AACA,eAAW;AACX,eAAW;AACX,mBAAe;AACf,QAAI,YAAY;AACd,UAAI,YAAY,QAAW;AACzB,eAAO,YAAY,YAAY;AAAA,MACjC;AACA,UAAI,QAAQ;AAEV,kBAAU,WAAW,cAAc,IAAI;AACvC,eAAO,WAAW,YAAY;AAAA,MAChC;AAAA,IACF;AACA,QAAI,YAAY,QAAW;AACzB,gBAAU,WAAW,cAAc,IAAI;AAAA,IACzC;AACA,WAAO;AAAA,EACT;AACA,YAAU,SAAS;AACnB,YAAU,QAAQ;AAClB,YAAU,UAAU;AACpB,SAAO;AACT;AAEA,SAAS,UAAU,QAAQ,QAAQ;AACjC,aAAW,OAAO,QAAQ;AACxB,QAAI,OAAO,GAAG,MAAM,QAAW;AAC7B;AAAA,IACF;AACA,QAAI,CAAC,SAAS,OAAO,GAAG,CAAC;AAAA,IAEzB,CAAC,SAAS,OAAO,GAAG,CAAC;AAAA,IAErB,EAAE,OAAO,SACP;AACA,aAAO,GAAG,IAAI,OAAO,GAAG;AACxB;AAAA,IACF;AACA,QAAI,cAAc,OAAO,GAAG,CAAC,KAAK,QAAQ,OAAO,GAAG,CAAC,GAAG;AACtD,gBAAU,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC;AAAA,IACpC;AAAA,EACF;AACF;AACA,SAAS,MAAM,QAAQ;AACrB,QAAM,SAAS,OAAO,OAAO,CAAA,GAAI,MAAM;AACvC,WAAS,OAAO,UAAU,QAAQ,SAAS,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AAC5G,WAAO,OAAO,CAAC,IAAI,UAAU,IAAI;AAAA,EACnC;AACA,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,aAAW,QAAQ,QAAQ;AACzB,cAAU,QAAQ,IAAI;AAAA,EACxB;AACA,SAAO;AACT;AAMA,SAAS,SAAS,MAAM,MAAM,SAAS;AACrC,MAAI,UAAU;AACd,MAAI,WAAW;AACf,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,UAAU,qBAAqB;AAAA,EAC3C;AACA,MAAI,SAAS,OAAO,GAAG;AACrB,cAAU,aAAa,UAAU,CAAC,CAAC,QAAQ,UAAU;AACrD,eAAW,cAAc,UAAU,CAAC,CAAC,QAAQ,WAAW;AAAA,EAC1D;AACA,SAAO,SAAS,MAAM,MAAM;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACb,CAAG;AACH;AAEA,IAAI,oBAAoB,aAAa,CAAC,eAAe,SAAS;AAC5D,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,qBAAqB,IAAI,KAAK;AACpC,QAAM,eAAe,IAAG;AACxB,QAAM,qBAAqB,SAAS,MAAM,eAAe;AACzD,QAAM,sBAAsB,SAAS,MAAM,SAAS,gBAAgB,CAAC;AACrE,QAAM,eAAe,IAAI,cAAc,QAAQ,QAAQ;AACvD,MAAI,CAAC,QAAQ;AACX,uBAAmB,QAAQ;AAAA,EAC7B;AACA,cAAY,kBAAgB;AAC1B,QAAI,MAAM,oBAAoB,KAAK,EAAG;AACtC,iBAAa,QAAQ,SAAS,cAAY,SAAQ,GAAI,oBAAoB,OAAO,mBAAmB,KAAK;AACzG,kBAAc,QAAQ,WAAW,WAAY;AAC3C,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AACA,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAI,mBAAmB,OAAO;AAC5B,6BAAmB,QAAQ;AAC3B,uBAAa,MAAM,GAAG,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM;AAAA,QACxD,OAAO;AACL,uBAAa,MAAM,MAAM;AACvB,yBAAa,MAAM,GAAG,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM;AAAA,UACxD,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AACA,iBAAa,MAAM;AACjB,UAAI;AACJ,OAAC,sBAAsB,aAAa,WAAW,QAAQ,wBAAwB,SAAS,SAAS,oBAAoB,OAAM;AAC3H,oBAAc,QAAQ,WAAW,aAAa;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AAAA,IACL,WAAW;AACT,UAAI;AACJ,OAAC,uBAAuB,aAAa,WAAW,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,OAAM;AAAA,IAChI;AAAA,EACJ;AACA,CAAC;AAED,IAAI,sBAAsB,aAAa,CAAC,eAAe,SAAS;AAC9D,MAAI;AAAA,IACF,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,EACzB,IAAM;AACJ,QAAM,aAAa,IAAG;AACtB,QAAM,eAAe,IAAI,CAAC;AAC1B,QAAM,qBAAqB,SAAS,MAAM,SAAS,eAAe,CAAC;AACnE,QAAM,wBAAwB,SAAS,MAAM,SAAS,kBAAkB,CAAC;AACzE,MAAI,aAAa;AAEjB,QAAM,oBAAoB,MAAM;AAC9B,iBAAa,QAAQ;AAAA,EACvB;AACA,QAAM,2BAA2B,SAAS,MAAM;AAC9C,QAAI,sBAAsB,MAAO,QAAO,sBAAsB;AAC9D,UAAM,WAAW;AACjB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AAGvB,UAAM,cAAc,KAAK,MAAM,KAAK,OAAM,IAAK,KAAK,KAAK,IAAI,aAAa,OAAO,cAAc,IAAI,cAAc;AACjH,WAAO,WAAW;AAAA,EACpB,CAAC;AACD,QAAM,kBAAkB,MAAM;AAC5B,QAAI;AACJ,UAAM,kBAAkB,mBAAmB,UAAU;AACrD,UAAM,gBAAgB,aAAa,QAAQ,mBAAmB;AAE9D,QAAI,mBAAmB,eAAe;AACpC,UAAI,CAAC,gBAAiB,cAAa,SAAS;AAC5C,gBAAU,WAAW,MAAM;AACzB,qBAAa;AACb,sBAAc,QAAQ,QAAO;AAAA,MAC/B,GAAG,yBAAyB,KAAK;AAAA,IACnC;AACA,WAAO,MAAM,WAAW,aAAa,OAAO;AAAA,EAC9C;AAEA,QAAM,aAAa,MAAM;AACvB,QAAI,WAAW,OAAO;AACpB,iBAAW,MAAK;AAAA,IAClB;AAAA,EACF;AACA,SAAO;AAAA,IACL,WAAW;AACT,UAAI,CAAC,YAAY;AACf,0BAAiB;AAAA,MACnB;AACA,mBAAa;AACb,iBAAU;AAAA,IACZ;AAAA,IACA,YAAY;AACV,wBAAiB;AAAA,IACnB;AAAA,IACA,UAAU;AACR,iBAAW,QAAQ,gBAAe;AAAA,IACpC;AAAA,IACA,WAAW;AAET,wBAAiB;AACjB,iBAAU;AAAA,IACZ;AAAA,EACJ;AACA,CAAC;AAED,IAAI,iBAAiB,aAAa,CAAC,eAAe,SAAS;AACzD,MAAI;AAAA,IACF,QAAQ,IAAI,IAAI;AAAA,IAChB;AAAA,IACA,gBAAgB,CAAA;AAAA,EACpB,IAAM;AAEJ,QAAM,OAAO,SAAO;AAClB,QAAI,CAAC,UAAU,KAAK;AAClB,oBAAc,QAAQ,IAAI,GAAG,aAAa;AAAA,IAC5C;AAAA,EACF,GAAG;AAAA,IACD,OAAO;AAAA,EACX,CAAG;AACD,SAAO;AAAA,IACL,WAAW;AACT,YAAM,YAAY,WAAW,KAAK,IAAI,MAAK,IAAK,MAAM;AACtD,UAAI,CAAC,WAAW;AACd,sBAAc,QAAQ,QAAQ;AAC9B,eAAO;AAAA,UACL,SAAS;AAAA,QACnB;AAAA,MACM;AAAA,IACF;AAAA,EACJ;AACA,CAAC;AAED,IAAI,uBAAuB,aAAa,CAAC,eAAe,SAAS;AAC/D,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,MAAI,gBAAgB,UAAa,QAAQ,WAAW,KAAK,YAAY,WAAW,EAAG,QAAO,CAAA;AAC1F,QAAM,OAAO,QAAQ,WAAW,IAAI,cAAc,CAAC,WAAW;AAE9D,QAAM,MAAM,MAAM;AAChB,QAAI,mBAAmB;AACrB,wBAAiB;AAAA,IACnB,OAAO;AACL,OAAC,UAAU,cAAc,QAAQ,QAAO;AAAA,IAC1C;AAAA,EACF,CAAC;AACD,SAAO,CAAA;AACT,CAAC;AAED,IAAI,oBAAoB,aAAa,CAAC,eAAe,SAAS;AAC5D,MAAI;AAAA,IACF;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,eAAe,IAAG;AACxB,QAAM,sBAAsB,SAAS,MAAM,SAAS,gBAAgB,CAAC;AACrE,QAAM,qBAAqB,SAAS,MAAM,eAAe;AACzD,QAAM,eAAe,IAAI,cAAc,QAAQ,QAAQ;AACvD,cAAY,kBAAgB;AAC1B,QAAI,MAAM,gBAAgB,EAAG,QAAO,CAAA;AACpC,iBAAa,QAAQ,SAAS,cAAY,SAAQ,GAAI,oBAAoB,OAAO,mBAAmB,KAAK;AACzG,kBAAc,QAAQ,WAAW,WAAY;AAC3C,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AACA,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,qBAAa,MAAM,MAAM;AACvB,uBAAa,MAAM,GAAG,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM;AAAA,QACxD,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AACA,iBAAa,MAAM;AACjB,UAAI;AACJ,OAAC,sBAAsB,aAAa,WAAW,QAAQ,wBAAwB,SAAS,SAAS,oBAAoB,OAAM;AAC3H,oBAAc,QAAQ,WAAW,aAAa;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AAAA,IACL,WAAW;AACT,UAAI;AACJ,OAAC,uBAAuB,aAAa,WAAW,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,OAAM;AAAA,IAChI;AAAA,EACJ;AACA,CAAC;AAED,MAAM,eAAe,CAAC,UAAU,aAAa;AAC3C,SAAO,cAAY;AACjB,WAAO,KAAK,QAAQ,EAAE,QAAQ,SAAO;AACnC,eAAS,GAAG,EAAE,QAAQ,SAAS,GAAG;AAAA,IACpC,CAAC;AACD,aAAS,QAAQ,SAAO,IAAI,QAAQ,CAAC;AAAA,EACvC;AACF;AACA,MAAM,oBAAoB,CAAC,aAAa,SAAS;AAC/C,SAAO,MAAM;AACX,QAAI,OAAO;AACX,aAAS,IAAI,YAAY,QAAQ,MAAM,KAAI;AACzC,aAAO,YAAY,CAAC,EAAE,IAAI;AAAA,IAC5B;AACA,WAAO,KAAI;AAAA,EACb;AACF;AACA,MAAM,cAAc,CAAC,SAAS,QAAQ,iBAAiB;AACrD,MAAI,uBAAuB;AAC3B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,UAAU,KAAK,wBAA2E,YAAmC,QAAQ,0BAA0B,SAAS,wBAAwB,KAAK;AAC3M,QAAM,OAAO,YAAY,qBAAwE,YAAgC,QAAQ,uBAAuB,SAAS,qBAAqB,WAAW;AACzM,QAAM,QAAQ,WAA8D,MAA2B;AACvG,QAAM,SAAS,IAAuD,MAA4B;AAClG,QAAM,UAAU,IAAI,EAAE;AACtB,QAAM,SAAS,WAAW,SAAS;AACnC,QAAM,UAAU,CAAA;AAChB,QAAM,WAAW,aAAa;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAAK,EAAE;AACL,QAAM,OAAO,SAAU,OAAO;AAC5B,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AAC1G,WAAK,OAAO,CAAC,IAAI,UAAU,IAAI;AAAA,IACjC;AACA,QAAI,UAAU,WAAW;AACvB,YAAM,UAAU,QAAQ,MAAM,IAAI,OAAK,EAAE,OAAO,EAAE,OAAO,OAAO;AAChE,aAAO;AAAA,QACL,gBAAgB,kBAAkB,SAAS,KAAK,CAAC,CAAC,EAAC;AAAA,MAC3D;AAAA,IACI,OAAO;AAEL,YAAM,MAAM,QAAQ,MAAM,IAAI,OAAK;AACjC,YAAI;AACJ,gBAAQ,WAAW,EAAE,KAAK,OAAO,QAAQ,aAAa,SAAS,SAAS,SAAS,KAAK,GAAG,GAAG,IAAI;AAAA,MAClG,CAAC;AACD,aAAO,OAAO,OAAO,CAAA,GAAI,GAAG,GAAG;AAAA,IACjC;AAAA,EACF;AACA,QAAM,QAAQ,IAAI,CAAC;AACnB,UAAQ,WAAW,iBAAkB;AACnC,aAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,WAAK,KAAK,IAAI,UAAU,KAAK;AAAA,IAC/B;AACA,aAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,IACd,CAAK;AACD,UAAM,SAAS;AACf,UAAM,eAAe,MAAM;AAC3B,UAAM;AAAA,MACJ;AAAA,MACA,cAAc,gBAAe;AAAA,IACnC,IAAQ,KAAK,YAAY,IAAI;AACzB,QAAI,SAAS;AACX,eAAS;AAAA,QACP,QAAQ;AAAA,MAChB,CAAO;AACD,aAAO;AAAA,IACT;AACA,iBAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,IAAI;AACjE,QAAI;AACF,YAAM,iBAAiB,MAAM,IAAI,QAAQ,aAAW,QAAQ,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC;AACrF,UAAI;AAAA,QACF;AAAA,MACR,IAAU,KAAK,WAAW,cAAc;AAElC,UAAI,CAAC,gBAAgB;AACnB,yBAAiB,eAAc;AAAA,MACjC;AACA,YAAM,MAAM,MAAM;AAClB,UAAI,iBAAiB,MAAM,MAAO,QAAO,gBAAe;AACxD,eAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,MAChB,CAAO;AACD,WAAK,aAAa,KAAK,IAAI;AAC3B,oBAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,KAAK,IAAI;AACzE,UAAI,iBAAiB,MAAM,OAAO;AAChC,aAAK,WAAW,MAAM,KAAK,MAAS;AAAA,MACtC;AACA,kBAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,IAAI;AAC9D,aAAO;AAAA,IACT,SAASC,QAAO;AACd,UAAI,iBAAiB,MAAM,MAAO,QAAO,gBAAe;AACxD,eAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAOA;AAAA,QACP,QAAQ;AAAA,MAChB,CAAO;AACD,WAAK,WAAWA,QAAO,IAAI;AAC3B,kBAAY,QAAQ,YAAY,SAAS,SAAS,QAAQA,QAAO,IAAI;AACrE,UAAI,iBAAiB,MAAM,OAAO;AAChC,aAAK,WAAW,MAAM,QAAWA,MAAK;AAAA,MACxC;AACA,kBAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,IAAI;AAC9D,YAAMA;AAAA,IACR;AAAA,EACF;AACA,UAAQ,MAAM,WAAY;AACxB,YAAQ,SAAS,GAAG,SAAS,EAAE,MAAM,CAAAA,WAAS;AAC5C,UAAI,CAAC,SAAS;AACZ,gBAAQ,MAAMA,MAAK;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AACA,UAAQ,SAAS,MAAM;AACrB,UAAM,SAAS;AACf,aAAS;AAAA,MACP,SAAS;AAAA,IACf,CAAK;AACD,SAAK,UAAU;AAAA,EACjB;AACA,UAAQ,UAAU,MAAM;AACtB,YAAQ,IAAI,GAAI,OAAO,SAAS,CAAA,CAAG;AAAA,EACrC;AACA,UAAQ,eAAe,MAAM;AAC3B,WAAO,QAAQ,SAAS,GAAI,OAAO,SAAS,CAAA,CAAG;AAAA,EACjD;AACA,UAAQ,SAAS,OAAK;AACpB,UAAM,aAAa,WAAW,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI;AACnD,UAAM,cAAc,YAAY,UAAU;AAC1C,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AACD,SAAK,YAAY,WAAW;AAAA,EAC9B;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAEA,SAAS,SAAS,SAAS;AACzB,MAAI,UAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,MAAI,UAAU,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACpD,QAAM,wBAAwB,OAAO,4BAA4B,EAAE;AACnE,QAAM,SAAS;AAAA,IACb,GAAG,iBAAgB;AAAA,IACnB,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AACE,QAAM;AAAA,IACJ,SAAS;AAAA,IACT,gBAAgB,CAAA;AAAA,EACpB,IAAM;AACJ,QAAM,gBAAgB,YAAY,SAAS,MAAM;AACjD,gBAAc,QAAQ,QAAQ,QAAQ,IAAI,OAAK,EAAE,eAAe,MAAM,CAAC;AAEvE,MAAI,CAAC,QAAQ;AACX,UAAM,SAAS,cAAc,OAAO,SAAS;AAC7C,kBAAc,QAAQ,IAAI,GAAG,MAAM;AAAA,EACrC;AACA,cAAY,MAAM;AAChB,kBAAc,QAAQ,OAAM;AAAA,EAC9B,CAAC;AACD,SAAO;AAAA,IACL,SAAS,cAAc;AAAA,IACvB,MAAM,cAAc;AAAA,IACpB,OAAO,cAAc;AAAA,IACrB,QAAQ,cAAc;AAAA,IACtB,QAAQ,cAAc,QAAQ;AAAA,IAC9B,SAAS,cAAc,QAAQ;AAAA,IAC/B,cAAc,cAAc,QAAQ;AAAA,IACpC,QAAQ,cAAc,QAAQ;AAAA,IAC9B,KAAK,cAAc,QAAQ;AAAA,IAC3B,UAAU,cAAc,QAAQ;AAAA,EACpC;AACA;AAEA,SAAS,YAAY,SAAS,SAAS;AACrC,QAAM;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EACP,IAAM,YAAY,QAAQ,YAAY,SAAS,UAAU,CAAA;AACvD,QAAM,OAAO,WAAU;AACvB,QAAM,WAAW,SAAS,MAAM;AAC9B,QAAI;AACJ,aAAS,cAAc,KAAK,WAAW,QAAQ,gBAAgB,SAAS,SAAS,YAAY,SAAS,CAAA;AAAA,EACxG,CAAC;AACD,QAAM,cAAc,IAAI,KAAK;AAC7B,QAAM,sBAAsB,IAAI,KAAK;AACrC,QAAM,QAAQ,IAAI,CAAC;AACnB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,GAAG;AAAA,EACP,IAAM,SAAS,OAAM,aAAY;AAC7B,UAAM,eAAe,MAAM;AAC3B,UAAM,cAAc,MAAM,QAAQ,QAAQ;AAC1C,QAAI,iBAAiB,MAAM,OAAO;AAChC,UAAI,UAAU;AACZ,aAAK,QAAQ;AAAA,UACX,GAAG;AAAA,UACH,MAAM,CAAC,GAAG,SAAS,MAAM,GAAG,YAAY,IAAI;AAAA,QACtD;AAAA,MACM,OAAO;AACL,aAAK,QAAQ;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD,GAAG;AAAA,IACH,eAAe,CAAA;AAAA,IACf,mBAAmB,MAAM;AACvB,UAAI,gBAAgB,QAAQ,gBAAgB,UAAU,YAAY,mBAAmB;AACnF,oBAAY,kBAAiB;AAAA,MAC/B,OAAO;AACL,gBAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,SAAS,WAAS;AAChB,UAAI;AACJ,sBAAgB,QAAQ,gBAAgB,SAAS,UAAU,uBAAuB,YAAY,aAAa,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,KAAK,aAAa,KAAK;AAAA,IAC5M;AAAA,IACA,WAAW,CAAAC,UAAQ;AACjB,UAAI;AACJ,sBAAgB,QAAQ,gBAAgB,SAAS,UAAU,wBAAwB,YAAY,eAAe,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,KAAK,aAAaA,KAAI;AAAA,IAChN;AAAA,IACA,UAAU,MAAM;AACd,UAAI;AACJ,YAAM,SAAS;AACf,UAAI,oBAAoB,OAAO;AAC7B,4BAAoB,QAAQ;AAC5B,oBAAY,QAAQ;AAAA,MACtB;AACA,sBAAgB,QAAQ,gBAAgB,SAAS,UAAU,wBAAwB,YAAY,cAAc,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,KAAK,WAAW;AAAA,IACzM;AAAA,IACA,SAAS,MAAM;AACb,UAAI;AACJ,kBAAY,QAAQ;AACpB,0BAAoB,QAAQ;AAC5B,sBAAgB,QAAQ,gBAAgB,SAAS,UAAU,uBAAuB,YAAY,aAAa,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,KAAK,WAAW;AAAA,IACrM;AAAA,EACJ,GAAK,CAAC,qBAAqB,mBAAmB,mBAAmB,sBAAsB,cAAc,CAAC;AACpG,QAAM,SAAS,SAAS,MAAM;AAC5B,WAAO,YAAY,WAAW,QAAQ,IAAI,SAAS,KAAK,KAAK,IAAI;AAAA,EACnE,CAAC;AACD,QAAM,WAAW,MAAM;AACrB,oBAAgB,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EAChC;AACA,QAAM,gBAAgB,MAAM;AAC1B,QAAI,OAAO,OAAO;AAChB,aAAO,QAAQ,OAAO,QAAQ,+GAA+G,IAAI,CAAC;AAAA,IACpJ;AACA,wBAAoB,QAAQ;AAC5B,WAAO,SAAS,KAAK,KAAK;AAAA,EAC5B;AACA,QAAM,UAAU,MAAM,IAAG;AACzB,QAAM,eAAe,MAAM,SAAQ;AACnC,QAAM,SAAS,MAAM;AACnB,UAAM,SAAS;AACf,YAAO;AACP,gBAAY,QAAQ;AAAA,EACtB;AACA,QAAM,SAAS,OAAK;AAClB,UAAM,aAAa,WAAW,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI;AACnD,UAAM,cAAc,YAAY,UAAU;AAC1C,SAAK,QAAQ;AAAA,EACf;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,KAAK,MAAM,CAAC,WAAW,gBAAgB,UAAU,UAAU,MAAM,CAAC;AAAA,EACzE;AACA;AAEA,MAAM,aAAa,oBAAI,IAAG;AAC1B,MAAM,gBAAgB,CAAC,UAAU,UAAU;AACzC,aAAW,IAAI,UAAU,KAAK;AAC9B,QAAM,KAAK,SAAO;AAChB,eAAW,OAAO,QAAQ;AAC1B,WAAO;AAAA,EACT,CAAC,EAAE,MAAM,MAAM;AACb,eAAW,OAAO,QAAQ;AAAA,EAC5B,CAAC;AACH;AACA,MAAM,gBAAgB,cAAY;AAChC,SAAO,WAAW,IAAI,QAAQ;AAChC;AAEA,MAAM,YAAY,oBAAI,IAAG;AACzB,MAAM,UAAU,CAAC,KAAK,SAAS;AAC7B,MAAI,UAAU,IAAI,GAAG,GAAG;AACtB,cAAU,IAAI,GAAG,EAAE,QAAQ,UAAQ,KAAK,IAAI,CAAC;AAAA,EAC/C;AACF;AACA,MAAM,YAAY,CAAC,KAAK,aAAa;AACnC,MAAI,CAAC,UAAU,IAAI,GAAG,GAAG;AACvB,cAAU,IAAI,KAAK,CAAC,QAAQ,CAAC;AAAA,EAC/B,OAAO;AACL,cAAU,IAAI,GAAG,EAAE,KAAK,QAAQ;AAAA,EAClC;AACA,SAAO,MAAM;AACX,UAAM,QAAQ,UAAU,IAAI,GAAG,EAAE,QAAQ,QAAQ;AACjD,cAAU,IAAI,GAAG,EAAE,OAAO,OAAO,CAAC;AAAA,EACpC;AACF;AAEA,IAAI,iBAAiB,aAAa,CAAC,eAAe,SAAS;AACzD,MAAI;AAAA,IACF,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,EACd,IAAM;AACJ,MAAI,CAAC,eAAgB,QAAO,CAAA;AAC5B,QAAM,WAAW,WAAW,cAAc,IAAI,iBAAiB,MAAM;AACrE,QAAM,cAAc,IAAI,MAAM;AAAA,EAAC,CAAC;AAChC,MAAI;AACJ,QAAM,YAAY,SAAO;AACvB,QAAI,gBAAgB;AAClB,aAAO,eAAe,GAAG;AAAA,IAC3B,OAAO;AACL,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,EACF;AACA,QAAM,YAAY,CAAC,KAAK,MAAM,cAAc;AAC1C,QAAI,gBAAgB;AAClB,qBAAe,KAAK,SAAS;AAAA,IAC/B,OAAO;AACL,eAAS,KAAK,MAAM,SAAS;AAAA,IAC/B;AACA,YAAQ,KAAK,UAAU,IAAI;AAAA,EAC7B;AACA,QAAM,UAAU,UAAQ,cAAc,MAAM,OAAO,aAAY,oBAAI,KAAI,GAAG,QAAO;AAGjF,QAAM,UAAU,CAAC,QAAQ,SAAS,OAAO,UAAU,eAAe,KAAK,QAAQ,IAAI;AACnF,QAAM,iBAAiB,YAAU;AAC/B,UAAMC,aAAY,SAAS,MAAM;AACjC,WAAO,UAAUA,YAAW,UAAQ;AAClC,oBAAc,KAAK,QAAQ;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,QAAM,YAAY,SAAQ;AAC1B,QAAM,QAAQ,UAAU,SAAS;AACjC,MAAI,SAAS,QAAQ,OAAO,MAAM,GAAG;AACnC,kBAAc,KAAK,QAAQ,MAAM;AACjC,kBAAc,OAAO,QAAQ,MAAM;AAAA,EACrC;AACA,MAAI,WAAW;AACb,gBAAY,QAAQ,eAAc;AAAA,EACpC;AACA,cAAY,MAAM;AAChB,gBAAY,MAAK;AAAA,EACnB,CAAC;AACD,SAAO;AAAA,IACL,SAAS,QAAQ;AACf,YAAMA,aAAY,SAAS,MAAM;AACjC,YAAMC,SAAQ,UAAUD,UAAS;AACjC,UAAI,CAACC,UAAS,CAAC,QAAQA,QAAO,MAAM,GAAG;AACrC,eAAO,CAAA;AAAA,MACT;AAEA,UAAI,QAAQA,OAAM,IAAI,GAAG;AACvB,sBAAc,KAAK,QAAQA,OAAM;AACjC,sBAAc,QAAQ,QAAQ;AAC9B,eAAO;AAAA,UACL,SAAS;AAAA,UACT,aAAaA,OAAM;AAAA,QAC7B;AAAA,MACM,OAAO;AAEL,sBAAc,KAAK,QAAQA,OAAM;AAAA,MACnC;AAAA,IACF;AAAA,IACA,QAAQ,SAAS;AACf,YAAM,SAAS,cAAc,OAAO;AACpC,YAAMD,aAAY,SAAS,MAAM;AACjC,UAAI,iBAAiB,cAAcA,UAAS;AAC5C,UAAI,kBAAkB,mBAAmB,cAAc;AACrD,eAAO,MAAM;AAAA,MACf;AACA,uBAAiB,QAAO;AACxB,qBAAe;AACf,oBAAcA,YAAW,cAAc;AACvC,aAAO,MAAM;AAAA,IACf;AAAA,IACA,UAAU,MAAM,QAAQ;AACtB,YAAMA,aAAY,SAAS,MAAM;AACjC,UAAIA,YAAW;AACb,oBAAY,MAAK;AACjB,kBAAUA,YAAW,WAAW;AAAA,UAC9B;AAAA,UACA;AAAA,UACA,OAAM,oBAAI,KAAI,GAAG,QAAO;AAAA,QAClC,CAAS;AACD,oBAAY,QAAQ,eAAe,MAAM;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,SAAS,MAAM;AACb,YAAMA,aAAY,SAAS,cAAc,OAAO,KAAK;AACrD,UAAIA,YAAW;AACb,oBAAY,MAAK;AACjB,kBAAUA,YAAW,WAAW;AAAA,UAC9B;AAAA,UACA,QAAQ,cAAc,OAAO;AAAA,UAC7B,OAAM,oBAAI,KAAI,GAAG,QAAO;AAAA,QAClC,CAAS;AACD,oBAAY,QAAQ,eAAe,cAAc,OAAO,KAAK;AAAA,MAC/D;AAAA,IACF;AAAA,EACJ;AACA,CAAC;AAED,SAAS,kBAAkB,UAAU;AACnC,MAAI,SAAS;AAAA,EACb,MAAM,cAAc,QAAQ;AAAA,IAC1B,YAAY,IAAI;AACd,YAAM,EAAE;AACR,WAAK,SAAS,MAAM;AAClB,aAAI;AACJ,qBAAa,OAAO;AAAA,MACtB;AAAA,IACF;AAAA,EACJ;AACE,SAAO,IAAI,MAAM,aAAW;AAC1B,WAAO;AACP,cAAU,WAAW,MAAM,QAAQ;AAAA,EACrC,CAAC;AACH;AACA,SAAS,iBAAiB;AACxB,UAAO,oBAAI,KAAI,GAAG,QAAO;AAC3B;AACA,IAAI,wBAAwB,aAAa,CAAC,eAAe,SAAS;AAChE,MAAI;AAAA,IACF,eAAe;AAAA,IACf,cAAc;AAAA,EAClB,IAAM;AACJ,QAAM,oBAAoB,IAAI,MAAM;AAAA,EAAC,CAAC;AACtC,QAAM,kBAAkB,SAAS,MAAM,SAAS,YAAY,CAAC;AAC7D,QAAM,iBAAiB,SAAS,MAAM,SAAS,WAAW,CAAC;AAC3D,MAAI,YAAY;AAChB,MAAI,iBAAiB,CAAA;AACrB,QAAM,eAAe,MAAM;AACzB,QAAI;AACJ,QAAI,gBAAgB,OAAO;AACzB,gBAAU,WAAW,MAAM;AACzB,YAAI,cAAc,OAAO,UAAU,WAAW;AAC5C,wBAAc,QAAQ,QAAQ;AAAA,QAChC;AAAA,MACF,GAAG,gBAAgB,KAAK;AAAA,IAC1B;AACA,WAAO,MAAM,WAAW,aAAa,OAAO;AAAA,EAC9C;AACA,SAAO;AAAA,IACL,WAAW;AACT,oBAAc,QAAQ,QAAQ,CAAC,gBAAgB;AAC/C,wBAAkB,MAAK;AACvB,wBAAkB,QAAQ,aAAY;AACtC,kBAAY,eAAc;AAAA,IAC5B;AAAA,IACA,QAAQ,SAAS;AACf,UAAI,CAAC,eAAe,MAAO,QAAO,MAAM,QAAO;AAC/C,uBAAiB,kBAAkB,eAAe,QAAQ,gBAAgB,KAAK;AAC/E,YAAM,WAAW,YAAY;AAC3B,YAAI;AACF,gBAAM,MAAM,MAAM,QAAO;AACzB,cAAI,eAAc,IAAK,aAAa,gBAAgB,OAAO;AACzD,2BAAe,OAAM;AAAA,UACvB;AACA,iBAAO,QAAQ,QAAQ,GAAG;AAAA,QAC5B,SAAS,OAAO;AACd,cAAI,eAAc,IAAK,aAAa,gBAAgB,OAAO;AACzD,2BAAe,OAAM;AAAA,UACvB;AACA,iBAAO,QAAQ,OAAO,KAAK;AAAA,QAC7B;AAAA,MACF;AACA,YAAM,iBAAiB,QAAQ,WAAW,CAAC,SAAQ,GAAI,cAAc,CAAC,EAAE,KAAK,SAAO;AAClF,cAAM,SAAS,IAAI,CAAC;AACpB,YAAI,OAAO,WAAW,aAAa;AACjC,iBAAO,OAAO;AAAA,QAChB,OAAO;AACL,iBAAO,QAAQ,OAAO,OAAO,MAAM;AAAA,QACrC;AAAA,MACF,CAAC;AACD,aAAO,MAAM;AAAA,IACf;AAAA,IACA,WAAW;AACT,wBAAkB,MAAK;AAAA,IACzB;AAAA,IACA,UAAU;AACR,wBAAkB,MAAK;AAAA,IACzB;AAAA,EACJ;AACA,CAAC;AAED,IAAI;AACJ,MAAM,iBAAiB,oBAAI,IAAG;AAC9B,MAAM,mBAAmB,oBAAI,IAAG;AAChC,MAAM,qBAAqB,oBAAI,IAAG;AAClC,MAAM,aAAa,CAAC,cAAc,UAAU;AAC1C,MAAIE;AACJ,UAAQ,cAAY;AAAA,IAClB,KAAK;AACH,MAAAA,aAAY;AACZ;AAAA,IACF,KAAK;AACH,MAAAA,aAAY;AACZ;AAAA,IACF,KAAK;AACH,MAAAA,aAAY;AACZ;AAAA,EACN;AACE,MAAIA,WAAU,IAAI,KAAK,EAAG;AAC1B,EAAAA,WAAU,IAAI,KAAK;AACnB,SAAO,MAAM;AACX,IAAAA,WAAU,OAAO,KAAK;AAAA,EACxB;AACF;AACA,MAAM,WAAW,CAAAA,eAAa;AAC5B,EAAAA,WAAU,QAAQ,WAAS;AACzB,UAAK;AAAA,EACP,CAAC;AACH;AAEA,IAAI,CAAC,aAAa,UAAU,YAAY,QAAQ,YAAY,UAAU,QAAQ,kBAAkB;AAC9F,SAAO,iBAAiB,oBAAoB,MAAM;AAEhD,QAAI,qBAAoB,GAAI;AAC1B,eAAS,gBAAgB;AAAA,IAC3B;AAAA,EACF,GAAG,KAAK;AACR,SAAO,iBAAiB,SAAS,MAAM,SAAS,cAAc,GAAG,KAAK;AACtE,SAAO,iBAAiB,UAAU,MAAM,SAAS,kBAAkB,GAAG,KAAK;AAC7E;AAEA,IAAI,mBAAmB,aAAa,CAAC,eAAe,SAAS;AAC3D,MAAI;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,EACtB,IAAM;AACJ,QAAM,eAAe,IAAG;AACxB,QAAM,iCAAiC,IAAI,KAAK;AAChD,QAAM,qBAAqB,SAAS,MAAM,SAAS,eAAe,CAAC;AACnE,QAAM,qBAAqB,SAAS,MAAM,SAAS,eAAe,CAAC;AACnE,QAAM,kBAAkB,CAAA;AACxB,QAAM,qBAAqB,WAAS;AAClC,aAAS,gBAAgB,KAAK,KAAK;AAAA,EACrC;AACA,QAAM,gBAAgB,MAAM;AAC1B;AAAA;AAAA,OAEG,qBAAqB,qBAAoB;AAAA,OAE1C,sBAAsB,SAAQ;AAAA;AAAA,EAElC;AACA,QAAM,UAAU,iBAAe;AAE7B,QAAI,cAAc,MAAM,SAAS,mBAAmB,UAAU,EAAG;AACjE,QAAI;AACJ,QAAI,CAAC,MAAM,mBAAmB,KAAK,KAAK,mBAAmB,SAAS,GAAG;AACrE,UAAI,cAAa,GAAI;AACnB,kBAAU,WAAW,aAAa,mBAAmB,KAAK;AAAA,MAC5D,OAAO;AAEL,uCAA+B,QAAQ;AACvC;AAAA,MACF;AAAA,IACF;AACA,WAAO,MAAM,WAAW,aAAa,OAAO;AAAA,EAC9C;AACA,QAAM,YAAY,MAAM;AACtB,QAAI,+BAA+B,SAAS,iBAAiB;AAC3D,oBAAc,QAAQ,QAAO;AAC7B,qCAA+B,QAAQ;AAAA,IACzC;AAAA,EACF;AACA,QAAM,oBAAoB,MAAM;AAC9B,QAAI,aAAa,OAAO;AACtB,mBAAa,MAAK;AAClB,mBAAa,QAAQ,QAAQ,MAAM,cAAc,QAAQ,SAAS;AAAA,IACpE;AAAA,EACF,CAAC;AAED,MAAI,CAAC,mBAAmB;AACtB,uBAAmB,WAAW,oBAAoB,SAAS,CAAC;AAAA,EAC9D;AAEA,MAAI,CAAC,oBAAoB;AACvB,uBAAmB,WAAW,sBAAsB,SAAS,CAAC;AAAA,EAChE;AACA,cAAY,MAAM;AAChB,oBAAgB,QAAQ,iBAAe,aAAa;AAAA,EACtD,CAAC;AACD,SAAO;AAAA,IACL,WAAW;AACT,UAAI;AACJ,OAAC,sBAAsB,aAAa,WAAW,QAAQ,wBAAwB,SAAS,SAAS,oBAAoB,KAAK,YAAY;AAAA,IACxI;AAAA,IACA,WAAW;AACT,UAAI;AACJ,OAAC,uBAAuB,aAAa,WAAW,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,KAAK,YAAY;AAAA,IAC3I;AAAA,IACA,UAAU;AACR,mBAAa,QAAQ,QAAQ,MAAM,cAAc,QAAQ,SAAS;AAAA,IACpE;AAAA,EACJ;AACA,CAAC;AAED,MAAM,eAAe,CAAC,IAAI,iBAAiB;AACzC,MAAI,UAAU;AACd,SAAO,WAAY;AACjB,QAAI,QAAS;AACb,cAAU;AACV,OAAG,GAAG,SAAS;AACf,eAAW,MAAM;AACf,gBAAU;AAAA,IACZ,GAAG,YAAY;AAAA,EACjB;AACF;AAEA,IAAI,0BAA0B,aAAa,CAAC,eAAe,SAAS;AAClE,MAAI;AAAA,IACF,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,EACtB,IAAM;AACJ,QAAM,0BAA0B,SAAS,MAAM,SAAS,oBAAoB,CAAC;AAC7E,QAAM,qBAAqB,SAAS,MAAM,SAAS,eAAe,CAAC;AACnE,QAAM,kBAAkB,CAAA;AACxB,QAAM,qBAAqB,WAAS;AAClC,aAAS,gBAAgB,KAAK,KAAK;AAAA,EACrC;AACA,QAAM,cAAc,MAAM;AACxB,oBAAgB,QAAQ,QAAM,IAAI;AAAA,EACpC;AACA,cAAY,MAAM;AAChB,gBAAW;AACX,QAAI,wBAAwB,OAAO;AACjC,YAAM,eAAe,aAAa,cAAc,QAAQ,SAAS,mBAAmB,KAAK;AACzF,yBAAmB,WAAW,oBAAoB,YAAY,CAAC;AAC/D,yBAAmB,WAAW,kBAAkB,YAAY,CAAC;AAAA,IAC/D;AAAA,EACF,CAAC;AACD,cAAY,MAAM;AAChB,gBAAW;AAAA,EACb,CAAC;AACD,SAAO,CAAA;AACT,CAAC;AAED,SAAS,WAAW,SAAS,SAAS,SAAS;AAC7C,SAAO,SAAS,SAAS,SAAS,CAAC,GAAe,CAAA,GAAK,uBAAuB,qBAAqB,mBAAmB,kBAAkB,mBAAmB,yBAAyB,sBAAsB,gBAAgB,cAAc,CAAC;AAC3O;AAEA,SAAS,cAAc,SAAS;AAC9B,MAAI,UAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,QAAM,2BAA2B;AAAA,IAC/B,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,UAAU;AAAA,IACV,cAAc;AAAA,EAClB;AACE,QAAM,wBAAwB,OAAO,4BAA4B,EAAE;AACnE,QAAM;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EACP,IAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM,MAAM,0BAA0B,iBAAgB,EAAG,cAAc,IAAI,sBAAsB,cAAc,IAAI,cAAc,CAAA,CAAE;AACjI,QAAM,iBAAiB,MAAM;AAAA,IAC3B,eAAe,CAAC;AAAA,MACd,CAAC,UAAU,GAAG;AAAA,MACd,CAAC,WAAW,GAAG;AAAA,IACrB,CAAK;AAAA,EACL,GAAK,WAAW;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP,IAAM,WAAW,SAAS,cAAc;AACtC,QAAM,SAAS,sBAAoB;AACjC,UAAM,CAAC,qBAAqB,GAAG,UAAU,IAAI,OAAO,SAAS,CAAA;AAC7D,UAAM,sBAAsB;AAAA,MAC1B,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AACI,UAAM,eAAe,CAAC,qBAAqB,GAAG,UAAU;AACxD,QAAI,GAAG,YAAY;AAAA,EACrB;AAEA,QAAM,gBAAgB,CAAAC,aAAW;AAC/B,WAAO;AAAA,MACL,CAAC,UAAU,GAAGA;AAAA,IACpB,CAAK;AAAA,EACH;AAEA,QAAM,iBAAiB,CAAAC,cAAY;AACjC,WAAO;AAAA,MACL,CAAC,WAAW,GAAGA;AAAA,IACrB,CAAK;AAAA,EACH;AAEA,QAAM,mBAAmB,CAACD,UAASC,cAAa;AAC9C,WAAO;AAAA,MACL,CAAC,UAAU,GAAGD;AAAA,MACd,CAAC,WAAW,GAAGC;AAAA,IACrB,CAAK;AAAA,EACH;AACA,QAAM,QAAQ,SAAS,MAAM,IAAI,KAAK,OAAO,UAAU,CAAC,CAAC;AACzD,QAAM,UAAU,SAAS;AAAA,IACvB,KAAK,MAAM;AACT,UAAI,uBAAuB,eAAe;AAC1C;AAAA;AAAA,SACG,yBAAyB,gBAAgB,OAAO,WAAW,QAAQ,kBAAkB,SAAS,UAAU,iBAAiB,cAAc,CAAC,OAAO,QAAQ,mBAAmB,SAAS,SAAS,eAAe,UAAU,OAAO,QAAQ,0BAA0B,SAAS,wBAAwB,eAAe,cAAc,CAAC,EAAE,UAAU;AAAA;AAAA,IAE9U;AAAA,IACA,KAAK,SAAO;AACV,oBAAc,GAAG;AAAA,IACnB;AAAA,EACJ,CAAG;AACD,QAAM,WAAW,SAAS;AAAA,IACxB,KAAK,MAAM;AACT,UAAI,uBAAuB,gBAAgB;AAC3C;AAAA;AAAA,SACG,yBAAyB,iBAAiB,OAAO,WAAW,QAAQ,mBAAmB,SAAS,UAAU,kBAAkB,eAAe,CAAC,OAAO,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,WAAW,OAAO,QAAQ,0BAA0B,SAAS,wBAAwB,eAAe,cAAc,CAAC,EAAE,WAAW;AAAA;AAAA,IAEtV;AAAA,IACA,KAAK,SAAO;AACV,qBAAe,GAAG;AAAA,IACpB;AAAA,EACJ,CAAG;AACD,QAAM,YAAY,SAAS,MAAM,IAAI,KAAK,OAAO,cAAc,KAAK,KAAK,MAAM,QAAQ,SAAS,KAAK,CAAC,CAAC;AACvG,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP;AACA;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"calc.mjs","sources":["../../src/utils/calc.ts"],"sourcesContent":["import { isEmpty } from './common'\n\n/**\n * 转金融数字\n * @param money\n * @param precision 小数点后位数\n * @param multiple 数字处理,如果要缩小100倍,则传入0.01即可\n * @returns 转换后的金融数字\n */\nexport function toMoney(\n money: string | number | undefined | null,\n precision = 2,\n multiple?: number\n): string {\n if (isEmpty(money)) return ''\n\n if (multiple) money = Number(money) * multiple\n if (typeof money !== 'number') money = parseFloat(money!)\n money = toPrecision(money, precision).toLocaleString()\n\n if (precision > 0) {\n const moneySplit = money.split('.')\n let decimal = moneySplit[1] || ''\n if (!decimal || decimal.length) {\n // 小数点位数补充\n while (decimal.length < precision) {\n decimal += '0'\n }\n money = `${moneySplit[0]}.${decimal}`\n }\n }\n\n return money\n}\n\n/**\n * 转金融数字并去除末尾不必要的零\n * @param money\n * @param precision 小数点后最大位数\n * @param multiple 数字处理,如果要缩小100倍,则传入0.01即可\n * @returns 转换后的金融数字\n */\nexport function toMoneyTrimmed(\n money: string | number | undefined | null,\n precision = 2,\n multiple?: number\n): string {\n if (isEmpty(money)) return ''\n\n if (multiple) money = Number(money) * multiple\n if (typeof money !== 'number') money = parseFloat(money!)\n\n // 使用 toPrecision 处理精度,然后转换为字符串并去除末尾的零\n const preciseMoney = toPrecision(money, precision)\n\n // 如果是整数,直接返回整数部分\n if (Number.isInteger(preciseMoney)) {\n return preciseMoney.toLocaleString()\n }\n\n // 转换为字符串并去除末尾的零\n const localizedMoney = preciseMoney.toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: precision\n })\n\n return localizedMoney\n}\n\n/**\n * 金额千分位处理\n * @param money\n * @param precision 小数点后位数\n * @returns 处理后的金额\n */\nexport function toMoneyWithK(money: string | number | undefined, precision = 1) {\n if (isEmpty(money)) return 0\n\n if (typeof money !== 'number') money = parseFloat(money!)\n if (money < 1000) return money\n\n return `${toMoney(money / 1000, precision)}k`\n}\n\n/**\n * 去除浮点计算bug\n * @param num\n * @param precision 小数点后位数\n * @returns\n */\nexport function toPrecision(num: string | number, precision = 0): number {\n if (isEmpty(num)) return Number(num)\n\n const result = Math.round(Number(num) * 10 ** precision) / 10 ** precision\n return parseFloat(`${result}`)\n}\n\n/**\n * 补零函数\n * @param value 值\n * @param length 长度\n * @returns\n */\nexport function padZero(value: number | string, length: number) {\n return String(value).padStart(length, '0')\n}\n"],"names":[],"mappings":";AASO,SAAS,QACd,OACA,YAAY,GACZ,UACQ;AACR,MAAI,QAAQ,KAAK,EAAG,QAAO;AAE3B,MAAI,SAAU,SAAQ,OAAO,KAAK,IAAI;AACtC,MAAI,OAAO,UAAU,SAAU,SAAQ,WAAW,KAAM;AACxD,UAAQ,YAAY,OAAO,SAAS,EAAE,eAAA;AAEtC,MAAI,YAAY,GAAG;AACjB,UAAM,aAAa,MAAM,MAAM,GAAG;AAClC,QAAI,UAAU,WAAW,CAAC,KAAK;AAC/B,QAAI,CAAC,WAAW,QAAQ,QAAQ;AAE9B,aAAO,QAAQ,SAAS,WAAW;AACjC,mBAAW;AAAA,MACb;AACA,cAAQ,GAAG,WAAW,CAAC,CAAC,IAAI,OAAO;AAAA,IACrC;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,eACd,OACA,YAAY,GACZ,UACQ;AACR,MAAI,QAAQ,KAAK,EAAG,QAAO;AAE3B,MAAI,SAAU,SAAQ,OAAO,KAAK,IAAI;AACtC,MAAI,OAAO,UAAU,SAAU,SAAQ,WAAW,KAAM;AAGxD,QAAM,eAAe,YAAY,OAAO,SAAS;AAGjD,MAAI,OAAO,UAAU,YAAY,GAAG;AAClC,WAAO,aAAa,eAAA;AAAA,EACtB;AAGA,QAAM,iBAAiB,aAAa,eAAe,QAAW;AAAA,IAC5D,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EAAA,CACxB;AAED,SAAO;AACT;AAQO,SAAS,aAAa,OAAoC,YAAY,GAAG;AAC9E,MAAI,QAAQ,KAAK,EAAG,QAAO;AAE3B,MAAI,OAAO,UAAU,SAAU,SAAQ,WAAW,KAAM;AACxD,MAAI,QAAQ,IAAM,QAAO;AAEzB,SAAO,GAAG,QAAQ,QAAQ,KAAM,SAAS,CAAC;AAC5C;AAQO,SAAS,YAAY,KAAsB,YAAY,GAAW;AACvE,MAAI,QAAQ,GAAG,EAAG,QAAO,OAAO,GAAG;AAEnC,QAAM,SAAS,KAAK,MAAM,OAAO,GAAG,IAAI,MAAM,SAAS,IAAI,MAAM;AACjE,SAAO,WAAW,GAAG,MAAM,EAAE;AAC/B;AAQO,SAAS,QAAQ,OAAwB,QAAgB;AAC9D,SAAO,OAAO,KAAK,EAAE,SAAS,QAAQ,GAAG;AAC3C;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.mjs","sources":["../../src/utils/common.ts"],"sourcesContent":["import type { Ref, SetupContext } from 'vue'\n\nimport { identifyType } from './type'\n\n/**\n * 空方法\n */\nexport function noop(): void {}\n\n/**\n * 空判断 - undefined null NaN '' ' ' {} [] 为空\n * @param val 任何参数\n * @returns 是否为空\n */\nexport function isEmpty(val: unknown): val is null | undefined | '' | [] | Record<string, never> {\n // null or undefined\n if (val == null) return true\n\n if (typeof val === 'string' && val.trim() === '') return true\n\n if (typeof val === 'boolean') return false\n\n if (typeof val === 'number') return Number.isNaN(val)\n\n if (val instanceof Error) return val.message === ''\n\n switch (identifyType(val)) {\n // Array\n case 'array':\n return !(val as unknown[]).length\n\n // Plain Object\n case 'object': {\n return !Object.keys(val).length\n }\n\n // Map or Set or File\n case 'file':\n case 'map':\n case 'set': {\n return !(val as File | Map<unknown, unknown> | Set<unknown>).size\n }\n default:\n return !val\n }\n}\n\n/**\n * 判断对象、数组是否有某属性\n * @param val\n * @param key\n * @returns 是否含有\n */\nexport function hasOwn<T extends object, K extends keyof T>(val: T, key: K): key is K {\n return Object.prototype.hasOwnProperty.call(val, key)\n}\n\n/**\n * 生成枚举\n * @param obj 枚举对象\n * @returns 枚举对象、枚举数组\n */\nexport function createEnum<\n const T extends Record<string | number, string | ({ label: string } & Record<string, unknown>)>\n>(obj: T) {\n const map = {} as {\n [K in keyof T]: T[K] extends string\n ? { value: K; label: T[K] }\n : T[K] extends { value: infer V }\n ? { value: V } & Omit<T[K], 'value'>\n : { value: K } & T[K]\n }\n\n const options = Object.entries(obj).map(([key, raw]) => {\n const entry = typeof raw === 'string' ? { label: raw } : raw\n\n // 如果 entry 中有 value 属性,使用它;否则使用 key\n const value = 'value' in entry ? entry.value : key\n ;(map as Record<string, unknown>)[key] = { value, ...entry }\n\n return { value, ...entry }\n }) as unknown as {\n [K in keyof T]: T[K] extends string\n ? { value: K; label: T[K] }\n : T[K] extends { value: infer V }\n ? { value: V } & Omit<T[K], 'value'>\n : { value: K } & T[K]\n }[keyof T][]\n\n return { map, options }\n}\n\n/**\n * 根据指定键值从枚举数组中查找匹配项\n * @param map 枚举数组,每项需包含 value 和 label 属性\n * @param value 要匹配的值\n * @param key 匹配时使用的键名,默认为 'value'\n * @returns 匹配到的项,未找到则返回 undefined\n */\nexport function findEnum<T extends { value: any; label: string }[]>(\n map?: T,\n value?: any,\n key?: keyof T[number]\n): T[number] | undefined {\n if (isEmpty(map)) return\n\n return (map as T).find((item) => item[(key || 'value') as keyof typeof item] === value)\n}\n\n/**\n * 提取带指定前缀的插槽\n * @param slots 插槽对象\n * @param prefix 前缀\n * @returns 返回包含原始名称和过滤前缀后名称的数组\n */\nexport function extractSlotsWithPrefix(slots: SetupContext['slots'], prefix: string) {\n const res: { originalName: string; filterName: string }[] = []\n for (const key in slots) {\n if (!key.startsWith(`${prefix}-`)) continue\n\n res.push({ originalName: key, filterName: key.slice(prefix.length + 1) })\n }\n\n return res\n}\n\n/**\n * 提取不带指定前缀的插槽\n * @param slots 插槽对象\n * @param prefix 前缀\n * @returns 返回不包含该前缀的插槽名称数组\n */\nexport function extractSlotsWithoutPrefix(slots: SetupContext['slots'], prefix: string) {\n const res: string[] = []\n for (const key in slots) {\n if (key.startsWith(`${prefix}-`)) continue\n res.push(key)\n }\n\n return res\n}\n\n/**\n * 过滤插槽\n * @param slots 插槽对象\n * @param prefix 前缀\n * @returns 返回过滤后的插槽\n */\nexport function filterSlots(slots: SetupContext['slots'], filterName: string[]) {\n const res: string[] = []\n for (const key in slots) {\n if (filterName.includes(key)) continue\n res.push(key)\n }\n\n return res\n}\n\n/**\n * 简单复制\n * @param data 要复制的数组、对象\n * @return 深度复制出的新对象\n */\nexport function easyCopy<T>(data: T): T {\n return JSON.parse(JSON.stringify(data))\n}\n\n/**\n * 简单比较两个对象数据是否一致\n * @param newData 新数据对象\n * @param oldData 旧数据对象\n * @return 返回比较结果\n */\nexport function checkSameObject(newData: unknown, oldData: unknown) {\n if ((newData && !oldData) || (!newData && oldData) || typeof newData !== typeof oldData) {\n return false\n }\n return JSON.stringify(newData) === JSON.stringify(oldData)\n}\n\n/**\n * 填充数据\n * 传入的${key} || $key修改为传入的数据data\n * @param val 需要过滤的原数据\n * @param keys 需要过滤的关键字(多个key用|隔开)\n * @param data 需要替换的数据对象,匹配到结构,将使用data[key]填充\n * @returns 返回替换填充后的数据\n */\nexport function valueFillter(val: string, keys: string, data: Record<string, string | number>) {\n if (!val) return val\n return val.replace(/(?:\\${([^}]*)})|(?:\\$([^&?\\b]*))/g, ($1, $2, $3) => {\n let result: string | number = ''\n const rule = new RegExp(keys)\n if (rule.test($2) || rule.test($3)) {\n result = data[$2 || $3] || ''\n } else {\n result = $1 // 如果没有匹配到,则原路返回\n }\n return `${result}`\n })\n}\n\ntype Simplify<T> = T extends any\n ? {\n [K in keyof T]: T[K]\n }\n : never\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void\n ? I\n : never\n\ntype GetComponentType<T extends Readonly<Ref<object | null | undefined>[]>> = UnionToIntersection<\n T[number] extends Ref<infer V> ? NonNullable<V> : never\n>\n\nexport function createExposeProxy<\n R extends {},\n T extends Readonly<Ref<object | null | undefined>[]>\n>(expose: R, ...refs: T) {\n const exposeProxy = new Proxy(expose, {\n has(target, key) {\n if (key in target) return true\n for (const item of refs) {\n if (item.value && key in item.value) return true\n }\n return false\n },\n get(target: any, key) {\n if (key in target) return target[key]\n for (const item of refs) {\n if (item.value && key in item.value) {\n return (item.value as any)[key]\n }\n }\n }\n })\n\n return exposeProxy as Simplify<R & GetComponentType<T>>\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversion.mjs","sources":["../../src/utils/conversion.ts"],"sourcesContent":["import { hasOwn, isEmpty } from './common'\n\n/**\n * 转数组\n * @param target\n * @return 转换后的数组\n */\nexport function toArr<T>(target: T | T[] | undefined): T[] {\n if (Array.isArray(target)) return target\n if (isEmpty(target)) return []\n return [target]\n}\n\n/**\n * 构造树型结构数据\n * @param data 扁平化的节点数组\n * @param options 配置项\n * @param options.id ID 字段名,默认 'id'\n * @param options.parentId 父节点 ID 字段名,默认 'parentId'\n * @param options.children 子节点字段名,默认 'children'\n * @returns 树型结构数组\n * @example\n * buildTree([\n * { id: 1, name: 'A' },\n * { id: 2, parentId: 1, name: 'B' },\n * { id: 3, parentId: 1, name: 'C' }\n * ]) // [{ id: 1, name: 'A', children: [{ id: 2, parentId: 1, name: 'B' }, { id: 3, parentId: 1, name: 'C' }] }]\n */\nexport function buildTree<T extends object>(\n data: T[],\n options: {\n id?: keyof T\n parentId?: keyof T\n children?: keyof T\n } = {}\n): T[] {\n const { id = 'id', parentId = 'parentId', children = 'children' } = options\n const childrenListMap: Record<string | number | symbol, T[]> = {}\n const nodeIds: Record<string | number | symbol, T> = {}\n const tree: T[] = []\n\n for (const d of data) {\n const pid = d[parentId as keyof typeof d] as string | number | symbol\n if (!childrenListMap[pid]) {\n childrenListMap[pid] = []\n }\n nodeIds[d[id as keyof typeof d] as string | number | symbol] = d\n childrenListMap[pid].push(d)\n }\n\n for (const d of data) {\n const pid = d[parentId as keyof typeof d] as string | number | symbol\n if (!nodeIds[pid]) {\n tree.push(d)\n }\n }\n\n for (const t of tree) {\n adaptToChildrenList(t)\n }\n\n function adaptToChildrenList(o: T): void {\n const childNodes = childrenListMap[o[id as keyof typeof o] as string | number | symbol]\n if (childNodes) {\n ;(o as Record<string, unknown>)[children as string] = childNodes\n for (const c of childNodes) {\n adaptToChildrenList(c)\n }\n }\n }\n return tree\n}\n\ntype KeyMapValue<T, K extends keyof T> = string | { newKey?: string; handler?: (val: T[K]) => any }\n\n/**\n * 重命名对象键\n * @param data 源对象\n * @param keyMap 键映射,格式为 { 旧键: 新键 | { newKey, handler } }\n * @param strict 是否严格模式(只保留映射过的字段),默认 false\n * @returns 键被重命名后的新对象\n * @example\n * remapKeys({ name: 'foo', age: 18 }, { name: 'userName' }) // { userName: 'foo', age: 18 }\n * remapKeys({ name: 'foo', age: 18 }, { name: 'userName' }, true) // { userName: 'foo' }\n * remapKeys({ name: 'foo', age: 18 }, { name: { newKey: 'userName', handler: v => v.toUpperCase() } }) // { userName: 'FOO', age: 18 }\n */\nexport function remapKeys<\n T extends Record<string, any>,\n M extends Partial<Record<keyof T, KeyMapValue<T, keyof T>>>\n>(data: T, keyMap: M, strict = false): Record<string, any> {\n const result = {} as any\n\n for (const key in data) {\n if (hasOwn(keyMap, key)) {\n const mapValue = keyMap[key]\n const newKey = typeof mapValue === 'string' ? mapValue : mapValue?.newKey\n const value =\n typeof mapValue === 'object' && mapValue.handler ? mapValue.handler(data[key]) : data[key]\n result[isEmpty(newKey) ? key : newKey] = value\n } else if (!strict) {\n result[key] = data[key]\n }\n }\n\n return result\n}\n"],"names":[],"mappings":";AAOO,SAAS,MAAS,QAAkC;AACzD,MAAI,MAAM,QAAQ,MAAM,EAAG,QAAO;AAClC,MAAI,QAAQ,MAAM,EAAG,QAAO,CAAA;AAC5B,SAAO,CAAC,MAAM;AAChB;AAiBO,SAAS,UACd,MACA,UAII,IACC;AACL,QAAM,EAAE,KAAK,MAAM,WAAW,YAAY,WAAW,eAAe;AACpE,QAAM,kBAAyD,CAAA;AAC/D,QAAM,UAA+C,CAAA;AACrD,QAAM,OAAY,CAAA;AAElB,aAAW,KAAK,MAAM;AACpB,UAAM,MAAM,EAAE,QAA0B;AACxC,QAAI,CAAC,gBAAgB,GAAG,GAAG;AACzB,sBAAgB,GAAG,IAAI,CAAA;AAAA,IACzB;AACA,YAAQ,EAAE,EAAoB,CAA6B,IAAI;AAC/D,oBAAgB,GAAG,EAAE,KAAK,CAAC;AAAA,EAC7B;AAEA,aAAW,KAAK,MAAM;AACpB,UAAM,MAAM,EAAE,QAA0B;AACxC,QAAI,CAAC,QAAQ,GAAG,GAAG;AACjB,WAAK,KAAK,CAAC;AAAA,IACb;AAAA,EACF;AAEA,aAAW,KAAK,MAAM;AACpB,wBAAoB,CAAC;AAAA,EACvB;AAEA,WAAS,oBAAoB,GAAY;AACvC,UAAM,aAAa,gBAAgB,EAAE,EAAoB,CAA6B;AACtF,QAAI,YAAY;AACZ,QAA8B,QAAkB,IAAI;AACtD,iBAAW,KAAK,YAAY;AAC1B,4BAAoB,CAAC;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAeO,SAAS,UAGd,MAAS,QAAW,SAAS,OAA4B;AACzD,QAAM,SAAS,CAAA;AAEf,aAAW,OAAO,MAAM;AACtB,QAAI,OAAO,QAAQ,GAAG,GAAG;AACvB,YAAM,WAAW,OAAO,GAAG;AAC3B,YAAM,SAAS,OAAO,aAAa,WAAW,WAAW,UAAU;AACnE,YAAM,QACJ,OAAO,aAAa,YAAY,SAAS,UAAU,SAAS,QAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG;AAC3F,aAAO,QAAQ,MAAM,IAAI,MAAM,MAAM,IAAI;AAAA,IAC3C,WAAW,CAAC,QAAQ;AAClB,aAAO,GAAG,IAAI,KAAK,GAAG;AAAA,IACxB;AAAA,EACF;AAEA,SAAO;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.mjs","sources":["../../src/utils/crypto.ts"],"sourcesContent":["import CryptoJS from 'crypto-js'\n\n/**\n * 随机生成字符串\n * @param length 生成的字符串长度\n * @returns 随机字符串\n */\nexport function generateRandomString(length = 32) {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n let result = ''\n const charactersLength = characters.length\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength))\n }\n return result\n}\n\n/**\n * 随机生成 aes 密钥\n * @returns 密钥\n */\nexport function generateAesKey() {\n return CryptoJS.enc.Utf8.parse(generateRandomString())\n}\n\n/**\n * 加密 Base64\n * @param str 需要加密的字符串\n * @returns 加密后的字符串\n */\nexport function encryptBase64(str: CryptoJS.lib.WordArray) {\n return CryptoJS.enc.Base64.stringify(str)\n}\n\n/**\n * 解密 Base64\n * @param str 需要解密的字符串\n * @returns 解密后的 WordArray\n */\nexport function decryptBase64(str: string) {\n return CryptoJS.enc.Base64.parse(str).toString(CryptoJS.enc.Utf8)\n}\n\n/**\n * 使用密钥对数据进行加密\n * @param message\n * @param aesKey\n * @param iv\n * @param mode\n * @param padding\n * @returns 加密后的字符串\n */\nexport function encryptWithAes(\n message: string,\n aesKey: CryptoJS.lib.WordArray,\n iv?: CryptoJS.lib.WordArray,\n mode: typeof CryptoJS.mode.ECB = CryptoJS.mode.ECB,\n padding: typeof CryptoJS.pad.Pkcs7 = CryptoJS.pad.Pkcs7\n) {\n const encrypted = CryptoJS.AES.encrypt(message, aesKey, {\n iv,\n mode,\n padding\n })\n return encrypted.toString()\n}\n\n/**\n * md5哈希算法\n */\nexport function MD5(message: CryptoJS.lib.WordArray | string, cfg?: object) {\n return CryptoJS.MD5(message, cfg).toString()\n}\n"],"names":[],"mappings":";AAOO,SAAS,qBAAqB,SAAS,IAAI;AAChD,QAAM,aAAa;AACnB,MAAI,SAAS;AACb,QAAM,mBAAmB,WAAW;AACpC,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,cAAU,WAAW,OAAO,KAAK,MAAM,KAAK,WAAW,gBAAgB,CAAC;AAAA,EAC1E;AACA,SAAO;AACT;AAMO,SAAS,iBAAiB;AAC/B,SAAO,SAAS,IAAI,KAAK,MAAM,sBAAsB;AACvD;AAOO,SAAS,cAAc,KAA6B;AACzD,SAAO,SAAS,IAAI,OAAO,UAAU,GAAG;AAC1C;AAOO,SAAS,cAAc,KAAa;AACzC,SAAO,SAAS,IAAI,OAAO,MAAM,GAAG,EAAE,SAAS,SAAS,IAAI,IAAI;AAClE;AAWO,SAAS,eACd,SACA,QACA,IACA,OAAiC,SAAS,KAAK,KAC/C,UAAqC,SAAS,IAAI,OAClD;AACA,QAAM,YAAY,SAAS,IAAI,QAAQ,SAAS,QAAQ;AAAA,IACtD;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACD,SAAO,UAAU,SAAA;AACnB;AAKO,SAAS,IAAI,SAA0C,KAAc;AAC1E,SAAO,SAAS,IAAI,SAAS,GAAG,EAAE,SAAA;AACpC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom.mjs","sources":["../../src/utils/dom.ts"],"sourcesContent":["/**\n * 获取html文本\n * @param html html文本\n * @returns html中的文本\n */\nexport function getHtmlTxt(html?: string) {\n return html ? html.replace(/<[^<>]+>/g, '') : ''\n}\n\n/**\n * 添加事件监听\n * @param element\n * @param event\n * @param handler\n * @param options\n */\nexport function domOn(\n element: HTMLElement | Document | Window,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n): void {\n if (element && event && handler) {\n element.addEventListener(event, handler, options ?? false)\n }\n}\n\n/**\n * 移除事件监听\n * @param element\n * @param event\n * @param handler\n * @param options\n */\nexport function domOff(\n element: HTMLElement | Document | Window,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n): void {\n if (element && event && handler) {\n element.removeEventListener(event, handler, options ?? false)\n }\n}\n\n/**\n * 获取可以滚动的元素\n * @param element\n * @return 可以滚动的元素\n */\nexport function getScrollEl(element: HTMLElement): HTMLElement | null {\n if (element.scrollHeight > element.clientHeight) {\n return element\n } else if (element.parentElement) {\n return getScrollEl(element.parentElement)\n } else {\n return null\n }\n}\n"],"names":[],"mappings":"AAKO,SAAS,WAAW,MAAe;AACxC,SAAO,OAAO,KAAK,QAAQ,aAAa,EAAE,IAAI;AAChD;AASO,SAAS,MACd,SACA,OACA,SACA,SACM;AACN,MAAI,WAAW,SAAS,SAAS;AAC/B,YAAQ,iBAAiB,OAAO,SAAS,WAAW,KAAK;AAAA,EAC3D;AACF;AASO,SAAS,OACd,SACA,OACA,SACA,SACM;AACN,MAAI,WAAW,SAAS,SAAS;AAC/B,YAAQ,oBAAoB,OAAO,SAAS,WAAW,KAAK;AAAA,EAC9D;AACF;AAOO,SAAS,YAAY,SAA0C;AACpE,MAAI,QAAQ,eAAe,QAAQ,cAAc;AAC/C,WAAO;AAAA,EACT,WAAW,QAAQ,eAAe;AAChC,WAAO,YAAY,QAAQ,aAAa;AAAA,EAC1C,OAAO;AACL,WAAO;AAAA,EACT;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"download.mjs","sources":["../../src/utils/download.ts"],"sourcesContent":["/**\n * 简单下载\n * @param {file|string} res 文件或地址\n * @param {string} name 文件名称\n */\nexport function easyDownload(res: File | Blob | string, name: string) {\n const navigator = window.navigator as Navigator & {\n msSaveOrOpenBlob?: (res: File | Blob | string, name: string) => void\n }\n\n if (navigator && navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(res, name) // 兼容ie11\n } else {\n const aTag = document.createElement('a')\n aTag.target = '_blank'\n aTag.download = name\n aTag.href = typeof res === 'string' ? res : window.URL.createObjectURL(res)\n document.body.appendChild(aTag) // 兼容火狐\n aTag.click()\n\n setTimeout(() => {\n document.body.removeChild(aTag)\n }, 1000)\n }\n}\n"],"names":[],"mappings":"AAKO,SAAS,aAAa,KAA2B,MAAc;AACpE,QAAM,YAAY,OAAO;AAIzB,MAAI,aAAa,UAAU,kBAAkB;AAC3C,cAAU,iBAAiB,KAAK,IAAI;AAAA,EACtC,OAAO;AACL,UAAM,OAAO,SAAS,cAAc,GAAG;AACvC,SAAK,SAAS;AACd,SAAK,WAAW;AAChB,SAAK,OAAO,OAAO,QAAQ,WAAW,MAAM,OAAO,IAAI,gBAAgB,GAAG;AAC1E,aAAS,KAAK,YAAY,IAAI;AAC9B,SAAK,MAAA;AAEL,eAAW,MAAM;AACf,eAAS,KAAK,YAAY,IAAI;AAAA,IAChC,GAAG,GAAI;AAAA,EACT;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["import { toPrecision } from './calc'\nimport { isEmpty } from './common'\n\n/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转KB\n * @param size 字节\n * @returns kb\n */\nexport function b2kb(size = 0) {\n return size / 1024\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n\n/**\n * 字节转GB\n * @param size 字节\n * @returns gb\n */\nexport function b2gb(size = 0) {\n return size / 1024 / 1024 / 1024\n}\n\n/**\n * 格式化文件大小\n * @param size 字节\n * @returns 格式化后的文件大小字符串\n */\nexport function formatByte(size?: number | string) {\n if (isEmpty(size)) return '0B'\n\n const numSize = typeof size === 'string' ? parseFloat(size) : size\n if (numSize < 1024) {\n return `${toPrecision(numSize, 2)}B`\n } else if (numSize < 1024 * 1024) {\n return `${toPrecision(b2kb(numSize), 2)}KB`\n } else if (numSize < 1024 * 1024 * 1024) {\n return `${toPrecision(b2mb(numSize), 2)}MB`\n }\n\n return `${toPrecision(b2gb(numSize), 2)}GB`\n}\n"],"names":[],"mappings":";;AASO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO;AAChB;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO,OAAO;AAC9B;AAOO,SAAS,WAAW,MAAwB;AACjD,MAAI,QAAQ,IAAI,EAAG,QAAO;AAE1B,QAAM,UAAU,OAAO,SAAS,WAAW,WAAW,IAAI,IAAI;AAC9D,MAAI,UAAU,MAAM;AAClB,WAAO,GAAG,YAAY,SAAS,CAAC,CAAC;AAAA,EACnC,WAAW,UAAU,OAAO,MAAM;AAChC,WAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AAAA,EACzC,WAAW,UAAU,OAAO,OAAO,MAAM;AACvC,WAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AAAA,EACzC;AAEA,SAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AACzC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"glob.mjs","sources":["../../src/utils/glob.ts"],"sourcesContent":["/**\n * 处理 glob\n * @param data 数据\n * @param removeSuffix 是否去除后缀\n * @returns 处理后的数据\n */\nexport function formatGlob<T = any>(data: Record<string, T>, removeSuffix?: boolean) {\n const map: Record<string, T> = {}\n for (const key in data) {\n const keySplit = key.split('/')\n let name = keySplit[keySplit.length - 1]\n if (removeSuffix) {\n name = name.slice(0, name.lastIndexOf('.'))\n }\n map[name] = data[key]\n }\n\n return map\n}\n"],"names":[],"mappings":"AAMO,SAAS,WAAoB,MAAyB,cAAwB;AACnF,QAAM,MAAyB,CAAA;AAC/B,aAAW,OAAO,MAAM;AACtB,UAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,QAAI,OAAO,SAAS,SAAS,SAAS,CAAC;AACvC,QAAI,cAAc;AAChB,aAAO,KAAK,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC;AAAA,IAC5C;AACA,QAAI,IAAI,IAAI,KAAK,GAAG;AAAA,EACtB;AAEA,SAAO;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsencrypt.mjs","sources":["../../src/utils/jsencrypt.ts"],"sourcesContent":["import JSEncrypt from 'jsencrypt'\n\n/**\n * 加密\n * @param publicKey 公钥\n * @param txt\n * @returns 结果\n */\nexport function encrypt(publicKey: string, txt: string) {\n const encryptor = new JSEncrypt()\n encryptor.setPublicKey(publicKey) // 设置公钥\n return encryptor.encrypt(txt) // 对数据进行加密\n}\n\n/**\n * 解密\n * @param privateKey 私钥\n * @param txt\n * @returns 结果\n */\nexport function decrypt(privateKey: string, txt: string) {\n const encryptor = new JSEncrypt()\n encryptor.setPrivateKey(privateKey) // 设置私钥\n return encryptor.decrypt(txt) // 对数据进行解密\n}\n"],"names":[],"mappings":";AAQO,SAAS,QAAQ,WAAmB,KAAa;AACtD,QAAM,YAAY,IAAI,UAAA;AACtB,YAAU,aAAa,SAAS;AAChC,SAAO,UAAU,QAAQ,GAAG;AAC9B;AAQO,SAAS,QAAQ,YAAoB,KAAa;AACvD,QAAM,YAAY,IAAI,UAAA;AACtB,YAAU,cAAc,UAAU;AAClC,SAAO,UAAU,QAAQ,GAAG;AAC9B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.mjs","sources":["../../src/utils/json.ts"],"sourcesContent":["import { jsonrepair } from 'jsonrepair'\n\n/**\n * 宽松解析 JSON 字符串\n * @param str 字符串\n * @returns 解析后的对象\n */\nexport function parseRelaxedJSON<T = unknown>(str: string, options?: { eval?: boolean }): T {\n const startObj = str.indexOf('{')\n const endObj = str.lastIndexOf('}')\n const startArr = str.indexOf('[')\n const endArr = str.lastIndexOf(']')\n\n if (\n startObj > -1 &&\n (startObj < startArr || startArr === -1) &&\n endObj > -1 &&\n (endObj > endArr || endArr === -1) &&\n endObj > startObj\n ) {\n str = str.slice(startObj, endObj + 1)\n } else if (startArr > -1 && endArr > -1 && endArr > startArr) {\n str = str.slice(startArr, endArr + 1)\n }\n\n if (options?.eval) {\n try {\n // 安全执行表达式,返回 JS 对象\n return new Function(`return (${str})`)() as T\n } catch {\n return JSON.parse(jsonrepair(str)) as T\n }\n }\n\n return JSON.parse(jsonrepair(str)) as T\n}\n"],"names":[],"mappings":";AAOO,SAAS,iBAA8B,KAAa,SAAiC;AAC1F,QAAM,WAAW,IAAI,QAAQ,GAAG;AAChC,QAAM,SAAS,IAAI,YAAY,GAAG;AAClC,QAAM,WAAW,IAAI,QAAQ,GAAG;AAChC,QAAM,SAAS,IAAI,YAAY,GAAG;AAElC,MACE,WAAW,OACV,WAAW,YAAY,aAAa,OACrC,SAAS,OACR,SAAS,UAAU,WAAW,OAC/B,SAAS,UACT;AACA,UAAM,IAAI,MAAM,UAAU,SAAS,CAAC;AAAA,EACtC,WAAW,WAAW,MAAM,SAAS,MAAM,SAAS,UAAU;AAC5D,UAAM,IAAI,MAAM,UAAU,SAAS,CAAC;AAAA,EACtC;AAEA,MAAI,SAAS,MAAM;AACjB,QAAI;AAEF,aAAO,IAAI,SAAS,WAAW,GAAG,GAAG,EAAA;AAAA,IACvC,QAAQ;AACN,aAAO,KAAK,MAAM,WAAW,GAAG,CAAC;AAAA,IACnC;AAAA,EACF;AAEA,SAAO,KAAK,MAAM,WAAW,GAAG,CAAC;AACnC;"}