@qqbrowser/qbot-dsh 0.0.15 → 0.1.0

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 (331) hide show
  1. package/config/agent-presets/code/agent.cordis.yml +2 -2
  2. package/config/agent-presets/standard/agent.cordis.yml +2 -2
  3. package/node_modules/@deepseek-ai/cordis-plugin-hmr/package.json +1 -1
  4. package/node_modules/@deepseek-ai/dsh-agent/package.json +1 -1
  5. package/node_modules/@deepseek-ai/dsh-agent-default-model/package.json +1 -1
  6. package/node_modules/@deepseek-ai/dsh-agent-instructions/package.json +1 -1
  7. package/node_modules/@deepseek-ai/dsh-agent-loop/package.json +1 -1
  8. package/node_modules/@deepseek-ai/dsh-agent-presets/package.json +1 -1
  9. package/node_modules/@deepseek-ai/dsh-agent-tool-presentation/package.json +1 -1
  10. package/node_modules/@deepseek-ai/dsh-anonymous-user-id/package.json +1 -1
  11. package/node_modules/@deepseek-ai/dsh-api-gateway/package.json +1 -1
  12. package/node_modules/@deepseek-ai/dsh-api-remotes/package.json +1 -1
  13. package/node_modules/@deepseek-ai/dsh-app-boot/package.json +1 -1
  14. package/node_modules/@deepseek-ai/dsh-atomic-write/package.json +1 -1
  15. package/node_modules/@deepseek-ai/dsh-attachment/lib/index.js +1 -1
  16. package/node_modules/@deepseek-ai/dsh-attachment/package.json +1 -1
  17. package/node_modules/@deepseek-ai/dsh-attachment-local/package.json +1 -1
  18. package/node_modules/@deepseek-ai/dsh-base/package.json +1 -1
  19. package/node_modules/@deepseek-ai/dsh-bash-local/package.json +1 -1
  20. package/node_modules/@deepseek-ai/dsh-bash-sandbox/package.json +1 -1
  21. package/node_modules/@deepseek-ai/dsh-brand/package.json +1 -1
  22. package/node_modules/@deepseek-ai/dsh-client-connection/lib/client.js +1 -1
  23. package/node_modules/@deepseek-ai/dsh-client-connection/package.json +1 -1
  24. package/node_modules/@deepseek-ai/dsh-client-hmr/package.json +1 -1
  25. package/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +1 -1
  26. package/node_modules/@deepseek-ai/dsh-client-locale/package.json +1 -1
  27. package/node_modules/@deepseek-ai/dsh-client-modules/package.json +1 -1
  28. package/node_modules/@deepseek-ai/dsh-client-runtime/lib/client.js +4 -4
  29. package/node_modules/@deepseek-ai/dsh-client-runtime/package.json +1 -1
  30. package/node_modules/@deepseek-ai/dsh-client-schema-form/package.json +1 -1
  31. package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +1 -1
  32. package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/package.json +1 -1
  33. package/node_modules/@deepseek-ai/dsh-client-ui-attachment/package.json +1 -1
  34. package/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +1 -1
  35. package/node_modules/@deepseek-ai/dsh-client-ui-commands/package.json +1 -1
  36. package/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +8 -8
  37. package/node_modules/@deepseek-ai/dsh-client-ui-conversation/package.json +1 -1
  38. package/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +3 -3
  39. package/node_modules/@deepseek-ai/dsh-client-ui-cordis/package.json +1 -1
  40. package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +1 -1
  41. package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +1 -1
  42. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +1 -1
  43. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/package.json +1 -1
  44. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/package.json +1 -1
  45. package/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
  46. package/node_modules/@deepseek-ai/dsh-client-ui-goal/package.json +1 -1
  47. package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +1 -1
  48. package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/package.json +1 -1
  49. package/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +1 -1
  50. package/node_modules/@deepseek-ai/dsh-client-ui-jobs/package.json +1 -1
  51. package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +1 -1
  52. package/node_modules/@deepseek-ai/dsh-client-ui-layout/package.json +1 -1
  53. package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +1 -1
  54. package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/package.json +1 -1
  55. package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +1 -1
  56. package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/package.json +1 -1
  57. package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +1 -1
  58. package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/package.json +1 -1
  59. package/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +1 -1
  60. package/node_modules/@deepseek-ai/dsh-client-ui-plan/package.json +1 -1
  61. package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/index.js +22 -22
  62. package/node_modules/@deepseek-ai/dsh-client-ui-primitives/package.json +1 -1
  63. package/node_modules/@deepseek-ai/dsh-client-ui-settings/package.json +1 -1
  64. package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  65. package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/package.json +1 -1
  66. package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +3 -3
  67. package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/package.json +1 -1
  68. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
  69. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/package.json +1 -1
  70. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +1 -1
  71. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/package.json +1 -1
  72. package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
  73. package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/package.json +1 -1
  74. package/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +3 -3
  75. package/node_modules/@deepseek-ai/dsh-client-ui-skill/package.json +1 -1
  76. package/node_modules/@deepseek-ai/dsh-client-ui-slots/package.json +1 -1
  77. package/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +1 -1
  78. package/node_modules/@deepseek-ai/dsh-client-ui-subagent/package.json +1 -1
  79. package/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
  80. package/node_modules/@deepseek-ai/dsh-client-ui-theme/package.json +1 -1
  81. package/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +4 -4
  82. package/node_modules/@deepseek-ai/dsh-client-ui-tool/package.json +1 -1
  83. package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +14 -14
  84. package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/package.json +1 -1
  85. package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +1 -1
  86. package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/package.json +1 -1
  87. package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +1 -1
  88. package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/package.json +1 -1
  89. package/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1 -1
  90. package/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +1 -1
  91. package/node_modules/@deepseek-ai/dsh-client-web/package.json +1 -1
  92. package/node_modules/@deepseek-ai/dsh-client-web-react/package.json +1 -1
  93. package/node_modules/@deepseek-ai/dsh-cmdline/package.json +1 -1
  94. package/node_modules/@deepseek-ai/dsh-code-runtime/package.json +1 -1
  95. package/node_modules/@deepseek-ai/dsh-code-runtime-worker-thread/package.json +1 -1
  96. package/node_modules/@deepseek-ai/dsh-command-compact/package.json +1 -1
  97. package/node_modules/@deepseek-ai/dsh-command-feedback/package.json +1 -1
  98. package/node_modules/@deepseek-ai/dsh-command-goal/package.json +1 -1
  99. package/node_modules/@deepseek-ai/dsh-commands/lib/typert.host.js +5 -2
  100. package/node_modules/@deepseek-ai/dsh-commands/package.json +1 -1
  101. package/node_modules/@deepseek-ai/dsh-compaction/package.json +1 -1
  102. package/node_modules/@deepseek-ai/dsh-compaction-basic/package.json +1 -1
  103. package/node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner/package.json +1 -1
  104. package/node_modules/@deepseek-ai/dsh-content-review/package.json +1 -1
  105. package/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +4 -4
  106. package/node_modules/@deepseek-ai/dsh-cordis-client-runner/package.json +1 -1
  107. package/node_modules/@deepseek-ai/dsh-cordis-host-runner/lib/typert.host.js +10 -4
  108. package/node_modules/@deepseek-ai/dsh-cordis-host-runner/package.json +1 -1
  109. package/node_modules/@deepseek-ai/dsh-credentials/package.json +1 -1
  110. package/node_modules/@deepseek-ai/dsh-credentials-local/package.json +1 -1
  111. package/node_modules/@deepseek-ai/dsh-fs/package.json +1 -1
  112. package/node_modules/@deepseek-ai/dsh-fs-local/package.json +1 -1
  113. package/node_modules/@deepseek-ai/dsh-fs-observation-policy/package.json +1 -1
  114. package/node_modules/@deepseek-ai/dsh-fs-sandbox/package.json +1 -1
  115. package/node_modules/@deepseek-ai/dsh-goal/lib/typert.host.js +5 -2
  116. package/node_modules/@deepseek-ai/dsh-goal/package.json +1 -1
  117. package/node_modules/@deepseek-ai/dsh-goal-round-driver/package.json +1 -1
  118. package/node_modules/@deepseek-ai/dsh-headless/package.json +1 -1
  119. package/node_modules/@deepseek-ai/dsh-home-paths/package.json +1 -1
  120. package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/package.json +1 -1
  121. package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/index.js +7 -7
  122. package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/types/api/rpc.schema.js +1 -1
  123. package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/types/api-proxy.js +1 -1
  124. package/node_modules/@deepseek-ai/dsh-host-apiproxy/package.json +1 -1
  125. package/node_modules/@deepseek-ai/dsh-host-directory-picker/package.json +1 -1
  126. package/node_modules/@deepseek-ai/dsh-host-directory-picker-auto/package.json +1 -1
  127. package/node_modules/@deepseek-ai/dsh-host-directory-picker-browse/package.json +1 -1
  128. package/node_modules/@deepseek-ai/dsh-host-directory-picker-native/package.json +1 -1
  129. package/node_modules/@deepseek-ai/dsh-host-frontend-static/package.json +1 -1
  130. package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/package.json +1 -1
  131. package/node_modules/@deepseek-ai/dsh-host-webserver/package.json +1 -1
  132. package/node_modules/@deepseek-ai/dsh-invariants/package.json +1 -1
  133. package/node_modules/@deepseek-ai/dsh-jobs/package.json +1 -1
  134. package/node_modules/@deepseek-ai/dsh-jobs-local/package.json +1 -1
  135. package/node_modules/@deepseek-ai/dsh-launch-environment/package.json +1 -1
  136. package/node_modules/@deepseek-ai/dsh-llm/lib/index.js +1 -1
  137. package/node_modules/@deepseek-ai/dsh-llm/lib/types/assembler.js +1 -1
  138. package/node_modules/@deepseek-ai/dsh-llm/package.json +1 -1
  139. package/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +1 -1
  140. package/node_modules/@deepseek-ai/dsh-llm-deepseek/package.json +1 -1
  141. package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/package.json +1 -1
  142. package/node_modules/@deepseek-ai/dsh-llm-pi-ai/lib/index.js +1 -1
  143. package/node_modules/@deepseek-ai/dsh-llm-pi-ai/package.json +1 -1
  144. package/node_modules/@deepseek-ai/dsh-llm-retry/package.json +1 -1
  145. package/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +3 -2
  146. package/node_modules/@deepseek-ai/dsh-mcp-client/package.json +1 -1
  147. package/node_modules/@deepseek-ai/dsh-message-feedback/package.json +1 -1
  148. package/node_modules/@deepseek-ai/dsh-native-command/package.json +1 -1
  149. package/node_modules/@deepseek-ai/dsh-output-retention/package.json +1 -1
  150. package/node_modules/@deepseek-ai/dsh-permission-presets/package.json +1 -1
  151. package/node_modules/@deepseek-ai/dsh-persona/package.json +1 -1
  152. package/node_modules/@deepseek-ai/dsh-plan-mode/package.json +1 -1
  153. package/node_modules/@deepseek-ai/dsh-pwsh-local/package.json +1 -1
  154. package/node_modules/@deepseek-ai/dsh-pwsh-sandbox/package.json +1 -1
  155. package/node_modules/@deepseek-ai/dsh-qb-auth/package.json +1 -1
  156. package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/package.json +1 -1
  157. package/node_modules/@deepseek-ai/dsh-sandbox/package.json +1 -1
  158. package/node_modules/@deepseek-ai/dsh-sandbox-local/package.json +1 -1
  159. package/node_modules/@deepseek-ai/dsh-sandbox-policy/package.json +1 -1
  160. package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/package.json +1 -1
  161. package/node_modules/@deepseek-ai/dsh-schedule/package.json +1 -1
  162. package/node_modules/@deepseek-ai/dsh-scope/package.json +1 -1
  163. package/node_modules/@deepseek-ai/dsh-session/package.json +1 -1
  164. package/node_modules/@deepseek-ai/dsh-session-checkpoint-policy/package.json +1 -1
  165. package/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +1 -1
  166. package/node_modules/@deepseek-ai/dsh-session-log-export/package.json +1 -1
  167. package/node_modules/@deepseek-ai/dsh-session-persistence/package.json +1 -1
  168. package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/package.json +1 -1
  169. package/node_modules/@deepseek-ai/dsh-session-projection/package.json +1 -1
  170. package/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +1 -1
  171. package/node_modules/@deepseek-ai/dsh-session-query/lib/index.js +2 -2
  172. package/node_modules/@deepseek-ai/dsh-session-query/package.json +1 -1
  173. package/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +1 -1
  174. package/node_modules/@deepseek-ai/dsh-session-reference/package.json +1 -1
  175. package/node_modules/@deepseek-ai/dsh-session-stats/package.json +1 -1
  176. package/node_modules/@deepseek-ai/dsh-session-telemetry/package.json +1 -1
  177. package/node_modules/@deepseek-ai/dsh-session-telemetry-otel/package.json +1 -1
  178. package/node_modules/@deepseek-ai/dsh-session-title/package.json +1 -1
  179. package/node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm/package.json +1 -1
  180. package/node_modules/@deepseek-ai/dsh-session-title-llm/package.json +1 -1
  181. package/node_modules/@deepseek-ai/dsh-settings/package.json +1 -1
  182. package/node_modules/@deepseek-ai/dsh-settings-file/package.json +1 -1
  183. package/node_modules/@deepseek-ai/dsh-shell/package.json +1 -1
  184. package/node_modules/@deepseek-ai/dsh-shell-env/package.json +1 -1
  185. package/node_modules/@deepseek-ai/dsh-skill/package.json +1 -1
  186. package/node_modules/@deepseek-ai/dsh-skill-badge/package.json +1 -1
  187. package/node_modules/@deepseek-ai/dsh-skill-filesystem/package.json +1 -1
  188. package/node_modules/@deepseek-ai/dsh-spill/package.json +1 -1
  189. package/node_modules/@deepseek-ai/dsh-spill-local/package.json +1 -1
  190. package/node_modules/@deepseek-ai/dsh-spill-policy/package.json +1 -1
  191. package/node_modules/@deepseek-ai/dsh-storage/package.json +1 -1
  192. package/node_modules/@deepseek-ai/dsh-storage-domain/package.json +1 -1
  193. package/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -1
  194. package/node_modules/@deepseek-ai/dsh-subagent/package.json +1 -1
  195. package/node_modules/@deepseek-ai/dsh-subagent-fork-in-process/package.json +1 -1
  196. package/node_modules/@deepseek-ai/dsh-subagent-in-process-driver/package.json +1 -1
  197. package/node_modules/@deepseek-ai/dsh-subagent-spawn-in-process/package.json +1 -1
  198. package/node_modules/@deepseek-ai/dsh-subprocess/package.json +1 -1
  199. package/node_modules/@deepseek-ai/dsh-subprocess-local/package.json +1 -1
  200. package/node_modules/@deepseek-ai/dsh-system-prompt/package.json +1 -1
  201. package/node_modules/@deepseek-ai/dsh-terminal/package.json +1 -1
  202. package/node_modules/@deepseek-ai/dsh-terminal-bash/lib/index.js +1 -1
  203. package/node_modules/@deepseek-ai/dsh-terminal-bash/package.json +1 -1
  204. package/node_modules/@deepseek-ai/dsh-time-context/package.json +1 -1
  205. package/node_modules/@deepseek-ai/dsh-timeout/package.json +1 -1
  206. package/node_modules/@deepseek-ai/dsh-tmux-context/package.json +1 -1
  207. package/node_modules/@deepseek-ai/dsh-token-meter/package.json +1 -1
  208. package/node_modules/@deepseek-ai/dsh-tool-ask-user/package.json +1 -1
  209. package/node_modules/@deepseek-ai/dsh-tool-bash/package.json +1 -1
  210. package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/lib/index.js +7 -10
  211. package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/package.json +1 -1
  212. package/node_modules/@deepseek-ai/dsh-tool-call-timeout-policy/package.json +1 -1
  213. package/node_modules/@deepseek-ai/dsh-tool-cordis/lib/index.js +5 -2
  214. package/node_modules/@deepseek-ai/dsh-tool-cordis/package.json +1 -1
  215. package/node_modules/@deepseek-ai/dsh-tool-fs/lib/index.js +8 -8
  216. package/node_modules/@deepseek-ai/dsh-tool-fs/package.json +1 -1
  217. package/node_modules/@deepseek-ai/dsh-tool-fs-search/package.json +1 -1
  218. package/node_modules/@deepseek-ai/dsh-tool-goal/package.json +1 -1
  219. package/node_modules/@deepseek-ai/dsh-tool-jobs/package.json +1 -1
  220. package/node_modules/@deepseek-ai/dsh-tool-pwsh/package.json +1 -1
  221. package/node_modules/@deepseek-ai/dsh-tool-ralph/package.json +1 -1
  222. package/node_modules/@deepseek-ai/dsh-tool-skill/package.json +1 -1
  223. package/node_modules/@deepseek-ai/dsh-tool-str-replace-editor/package.json +1 -1
  224. package/node_modules/@deepseek-ai/dsh-tool-subagent/lib/index.js +2 -2
  225. package/node_modules/@deepseek-ai/dsh-tool-subagent/package.json +1 -1
  226. package/node_modules/@deepseek-ai/dsh-tool-subagent-control/package.json +1 -1
  227. package/node_modules/@deepseek-ai/dsh-tool-subagent-report/package.json +1 -1
  228. package/node_modules/@deepseek-ai/dsh-tool-todo/package.json +1 -1
  229. package/node_modules/@deepseek-ai/dsh-tool-web/package.json +1 -1
  230. package/node_modules/@deepseek-ai/dsh-tool-workflow/package.json +1 -1
  231. package/node_modules/@deepseek-ai/dsh-tools/lib/index.js +15 -15
  232. package/node_modules/@deepseek-ai/dsh-tools/lib/types/code-mode.js +8 -8
  233. package/node_modules/@deepseek-ai/dsh-tools/lib/types/py-types.js +3 -3
  234. package/node_modules/@deepseek-ai/dsh-tools/lib/types/ts-types.js +4 -4
  235. package/node_modules/@deepseek-ai/dsh-tools/package.json +1 -1
  236. package/node_modules/@deepseek-ai/dsh-typert-loader/package.json +1 -1
  237. package/node_modules/@deepseek-ai/dsh-typert-protocol/package.json +1 -1
  238. package/node_modules/@deepseek-ai/dsh-typert-registry/package.json +1 -1
  239. package/node_modules/@deepseek-ai/dsh-user-approval/package.json +1 -1
  240. package/node_modules/@deepseek-ai/dsh-user-questions/package.json +1 -1
  241. package/node_modules/@deepseek-ai/dsh-web/package.json +1 -1
  242. package/node_modules/@deepseek-ai/dsh-web-app/package.json +1 -1
  243. package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-BQQQ5Qt-.js → index-fPGOmJjK.js} +25 -25
  244. package/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +1 -1
  245. package/node_modules/@deepseek-ai/dsh-web-frontend/package.json +1 -1
  246. package/node_modules/@deepseek-ai/dsh-web-search-deepseek/package.json +1 -1
  247. package/node_modules/@deepseek-ai/dsh-web-search-dsh/package.json +1 -1
  248. package/node_modules/@deepseek-ai/dsh-workflow/package.json +1 -1
  249. package/node_modules/@deepseek-ai/dsh-workflow-worker-thread/package.json +1 -1
  250. package/node_modules/@deepseek-ai/dsh-workspace/package.json +1 -1
  251. package/node_modules/@tanstack/react-virtual/package.json +1 -1
  252. package/node_modules/@tanstack/virtual-core/dist/cjs/index.cjs +7 -1
  253. package/node_modules/@tanstack/virtual-core/dist/cjs/utils.cjs +14 -4
  254. package/node_modules/@tanstack/virtual-core/dist/esm/index.js +1 -1
  255. package/node_modules/@tanstack/virtual-core/dist/esm/utils.js +2 -2
  256. package/node_modules/@tanstack/virtual-core/package.json +1 -1
  257. package/node_modules/hono/dist/cjs/client/utils.js +1 -1
  258. package/node_modules/hono/dist/cjs/context.js +4 -0
  259. package/node_modules/hono/dist/cjs/middleware/cors/index.js +1 -1
  260. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
  261. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +1 -1
  262. package/node_modules/hono/dist/cjs/middleware/etag/index.js +2 -2
  263. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
  264. package/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
  265. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
  266. package/node_modules/hono/dist/cjs/router/trie-router/node.js +43 -67
  267. package/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
  268. package/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
  269. package/node_modules/hono/dist/client/utils.js +1 -1
  270. package/node_modules/hono/dist/middleware/cors/index.js +1 -1
  271. package/node_modules/hono/dist/middleware/csrf/index.js +1 -1
  272. package/node_modules/hono/dist/middleware/etag/digest.js +1 -1
  273. package/node_modules/hono/dist/middleware/etag/index.js +1 -1
  274. package/node_modules/hono/dist/middleware/pretty-json/index.js +1 -1
  275. package/node_modules/hono/dist/router/linear-router/router.js +1 -1
  276. package/node_modules/hono/dist/router/pattern-router/router.js +1 -1
  277. package/node_modules/hono/dist/router/trie-router/node.js +1 -1
  278. package/node_modules/hono/dist/router/trie-router/router.js +1 -1
  279. package/node_modules/hono/dist/utils/ipaddr.js +1 -1
  280. package/node_modules/hono/package.json +1 -1
  281. package/node_modules/node-pty/lib/conpty_console_list_agent.js +11 -2
  282. package/node_modules/node-pty/lib/index.js +6 -6
  283. package/node_modules/node-pty/lib/shared/conout.js +2 -3
  284. package/node_modules/node-pty/lib/terminal.js +2 -2
  285. package/node_modules/node-pty/lib/unixTerminal.js +11 -6
  286. package/node_modules/node-pty/lib/utils.js +6 -7
  287. package/node_modules/node-pty/lib/windowsConoutConnection.js +24 -18
  288. package/node_modules/node-pty/lib/windowsPtyAgent.js +125 -101
  289. package/node_modules/node-pty/lib/windowsTerminal.js +14 -4
  290. package/node_modules/node-pty/lib/worker/conoutSocketWorker.js +3 -3
  291. package/node_modules/node-pty/package.json +1 -1
  292. package/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  293. package/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  294. package/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  295. package/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  296. package/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  297. package/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  298. package/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  299. package/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  300. package/node_modules/node-pty/scripts/post-install.js +1 -5
  301. package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-arm64/OpenConsole.exe +0 -0
  302. package/node_modules/node-pty/third_party/conpty/{1.23.251008001 → 1.25.260303002}/win10-arm64/conpty.dll +0 -0
  303. package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-x64/OpenConsole.exe +0 -0
  304. package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-x64/conpty.dll +0 -0
  305. package/package.json +1 -1
  306. package/node_modules/node-pty/deps/winpty/.drone.yml +0 -15
  307. package/node_modules/node-pty/deps/winpty/LICENSE +0 -21
  308. package/node_modules/node-pty/deps/winpty/configure +0 -167
  309. package/node_modules/node-pty/deps/winpty/misc/ConinMode.ps1 +0 -116
  310. package/node_modules/node-pty/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
  311. package/node_modules/node-pty/deps/winpty/misc/build32.sh +0 -9
  312. package/node_modules/node-pty/deps/winpty/misc/build64.sh +0 -9
  313. package/node_modules/node-pty/deps/winpty/misc/color-test.sh +0 -212
  314. package/node_modules/node-pty/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
  315. package/node_modules/node-pty/deps/winpty/src/shared/GetCommitHash.bat +0 -13
  316. package/node_modules/node-pty/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
  317. package/node_modules/node-pty/deps/winpty/vcbuild.bat +0 -83
  318. package/node_modules/node-pty/lib/eventEmitter2.test.js +0 -30
  319. package/node_modules/node-pty/lib/terminal.test.js +0 -139
  320. package/node_modules/node-pty/lib/testUtils.test.js +0 -28
  321. package/node_modules/node-pty/lib/unixTerminal.test.js +0 -351
  322. package/node_modules/node-pty/lib/windowsPtyAgent.test.js +0 -90
  323. package/node_modules/node-pty/lib/windowsTerminal.test.js +0 -219
  324. package/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
  325. package/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
  326. package/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
  327. package/node_modules/node-pty/scripts/gen-compile-commands.js +0 -8
  328. package/node_modules/node-pty/scripts/increment-version.js +0 -54
  329. package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
  330. package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
  331. package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
@@ -6,7 +6,7 @@
6
6
  <link rel="manifest" href="/manifest.webmanifest" />
7
7
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
8
8
  <title>DeepSeek Harness</title>
9
- <script type="module" crossorigin src="/assets/index-BQQQ5Qt-.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-fPGOmJjK.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-CeMKrCZm.js">
11
11
  <link rel="stylesheet" crossorigin href="/assets/vendor-CjyC-hUb.css">
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-CSGf6Qzd.css">
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-web-frontend","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","exports":{"./dist/*":"./dist/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"react":"^18.2.0","react-dom":"^18.2.0","@deepseek-ai/dsh-client-web":"^0.0.15"}}
1
+ {"name":"@deepseek-ai/dsh-web-frontend","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","exports":{"./dist/*":"./dist/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"react":"^18.2.0","react-dom":"^18.2.0","@deepseek-ai/dsh-client-web":"^0.1.0"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-web-search-deepseek","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-launch-environment":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-settings":"^0.0.15","@deepseek-ai/dsh-web":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
1
+ {"name":"@deepseek-ai/dsh-web-search-deepseek","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.0","@deepseek-ai/dsh-credentials":"^0.1.0","@deepseek-ai/dsh-launch-environment":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.1.0","@deepseek-ai/dsh-session":"^0.1.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-web":"^0.1.0","@deepseek-ai/dsh-settings":"^0.1.0"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-web-search-dsh","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-agent-default-model":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-web":"^0.0.15","@deepseek-ai/dsh-qb-auth":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
1
+ {"name":"@deepseek-ai/dsh-web-search-dsh","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.0","@deepseek-ai/dsh-qb-auth":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.1.0","@deepseek-ai/dsh-agent-default-model":"^0.1.0","@deepseek-ai/dsh-web":"^0.1.0","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-workflow","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.0.15"}}
1
+ {"name":"@deepseek-ai/dsh-workflow","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.0","@deepseek-ai/dsh-brand":"^0.1.0","@deepseek-ai/dsh-llm":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.1.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-workflow-worker-thread","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./worker":{"types":"./lib/types/worker.d.ts","default":"./lib/worker.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-subagent":"^0.0.15","@deepseek-ai/dsh-tools":"^0.0.15","@deepseek-ai/dsh-workflow":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-brand":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
1
+ {"name":"@deepseek-ai/dsh-workflow-worker-thread","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./worker":{"types":"./lib/types/worker.d.ts","default":"./lib/worker.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.0","@deepseek-ai/dsh-brand":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.1.0","@deepseek-ai/dsh-llm":"^0.1.0","@deepseek-ai/dsh-subagent":"^0.1.0","@deepseek-ai/dsh-tools":"^0.1.0","@deepseek-ai/dsh-workflow":"^0.1.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.1.0"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-workspace","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-storage-domain":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-storage":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session-persistence":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"zod":"^4.4.3"}}
1
+ {"name":"@deepseek-ai/dsh-workspace","version":"0.1.0","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-storage-domain":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.1.0","@deepseek-ai/dsh-session":"^0.1.0","@deepseek-ai/dsh-brand":"^0.1.0","@deepseek-ai/dsh-storage":"^0.1.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session-persistence":"^0.1.0"},"dependencies":{"zod":"^4.4.3"}}
@@ -1 +1 @@
1
- {"name":"@tanstack/react-virtual","version":"3.14.9","license":"MIT","type":"module","main":"dist/cjs/index.cjs","module":"dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false,"dependencies":{"@tanstack/virtual-core":"3.17.7"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"}}
1
+ {"name":"@tanstack/react-virtual","version":"3.14.10","license":"MIT","type":"module","main":"dist/cjs/index.cjs","module":"dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false,"dependencies":{"@tanstack/virtual-core":"3.17.8"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"}}
@@ -115,6 +115,7 @@ const observeOffset = (instance, cb, readOffset) => {
115
115
  if (registerScrollendEvent) {
116
116
  element.removeEventListener("scrollend", endHandler);
117
117
  }
118
+ fallback == null ? void 0 : fallback.cancel();
118
119
  };
119
120
  };
120
121
  const observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {
@@ -218,6 +219,7 @@ class Virtualizer {
218
219
  }
219
220
  return;
220
221
  }
222
+ if (!this.isIndexInRange(index)) return;
221
223
  if (this.shouldMeasureDuringScroll(index)) {
222
224
  this.resizeItem(
223
225
  index,
@@ -378,6 +380,8 @@ class Virtualizer {
378
380
  this.rafId = null;
379
381
  }
380
382
  this.scrollState = null;
383
+ this.isScrolling = false;
384
+ this.scrollDirection = null;
381
385
  this._iosDeferredAdjustment = 0;
382
386
  this._iosTouching = false;
383
387
  this._iosJustTouchEnded = false;
@@ -570,6 +574,7 @@ class Virtualizer {
570
574
  key: false
571
575
  }
572
576
  );
577
+ this.isIndexInRange = (index) => index >= 0 && index < this.options.count;
573
578
  this.getMeasurements = utils.memo(
574
579
  () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],
575
580
  ({
@@ -816,6 +821,7 @@ class Virtualizer {
816
821
  return;
817
822
  }
818
823
  const index = this.indexFromElement(node);
824
+ if (!this.isIndexInRange(index)) return;
819
825
  const key = this.options.getItemKey(index);
820
826
  const prevNode = this.elementsCache.get(key);
821
827
  if (prevNode !== node) {
@@ -831,7 +837,7 @@ class Virtualizer {
831
837
  };
832
838
  this.resizeItem = (index, size) => {
833
839
  var _a, _b;
834
- if (index < 0 || index >= this.options.count) return;
840
+ if (!this.isIndexInRange(index)) return;
835
841
  let cachedSize;
836
842
  let itemStart;
837
843
  let key;
@@ -62,10 +62,20 @@ function notUndefined(value, msg) {
62
62
  const approxEqual = (a, b) => Math.abs(a - b) < 1.01;
63
63
  const debounce = (targetWindow, fn, ms) => {
64
64
  let timeoutId;
65
- return function(...args) {
66
- targetWindow.clearTimeout(timeoutId);
67
- timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
68
- };
65
+ return Object.assign(
66
+ function(...args) {
67
+ targetWindow.clearTimeout(timeoutId);
68
+ timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
69
+ },
70
+ {
71
+ // The handle is closure-local, so a caller that has already
72
+ // unsubscribed has no way to stop a queued call. Teardown paths use
73
+ // this to drop the pending invocation instead of letting it land.
74
+ cancel: () => {
75
+ targetWindow.clearTimeout(timeoutId);
76
+ }
77
+ }
78
+ );
69
79
  };
70
80
  exports.approxEqual = approxEqual;
71
81
  exports.debounce = debounce;
@@ -1 +1 @@
1
- var q=Object.defineProperty;var a=(l,h)=>q(l,"name",{value:h,configurable:!0});import{createLazyMeasurementsView as X}from"./lazy-measurements.js";import{memo as x,notUndefined as R,approxEqual as k,debounce as L}from"./utils.js";let M;const D=a(()=>{if(M!==void 0)return M;if(typeof navigator>"u")return M=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return M=!0;const l=navigator.maxTouchPoints;return M=navigator.platform==="MacIntel"&&l!==void 0&&l>0},"isIOSWebKit"),U=a(()=>{M=void 0},"_resetIOSDetectionForTests"),V=a(l=>{const{offsetWidth:h,offsetHeight:t}=l;return{width:h,height:t}},"getRect"),N=a(l=>l,"defaultKeyExtractor"),K=a(l=>{const h=Math.max(l.startIndex-l.overscan,0),e=Math.min(l.endIndex+l.overscan,l.count-1)-h+1,s=new Array(e);for(let i=0;i<e;i++)s[i]=h+i;return s},"defaultRangeExtractor"),Y=a((l,h)=>{const t=l.scrollElement;if(!t)return;const e=l.targetWindow;if(!e)return;const s=a(o=>{const{width:n,height:r}=o;h({width:Math.round(n),height:Math.round(r)})},"handler");if(s(V(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=a(()=>{const r=o[0];if(r?.borderBoxSize){const d=r.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(V(t))},"run");l.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},"observeElementRect"),T={passive:!0},$=a((l,h)=>{const t=l.scrollElement;if(!t)return;const e=a(()=>{h({width:t.innerWidth,height:t.innerHeight})},"handler");return e(),t.addEventListener("resize",e,T),()=>{t.removeEventListener("resize",e)}},"observeWindowRect"),G=typeof window>"u"?!0:"onscrollend"in window,P=a((l,h,t)=>{const e=l.scrollElement;if(!e)return;const s=l.targetWindow;if(!s)return;const i=l.options.useScrollendEvent&&G;let o=0;const n=i?null:L(s,()=>h(o,!1),l.options.isScrollingResetDelay),r=a(m=>()=>{o=t(e),n?.(),h(o,m)},"createHandler"),d=r(!0),g=r(!1);return e.addEventListener("scroll",d,T),i&&e.addEventListener("scrollend",g,T),()=>{e.removeEventListener("scroll",d),i&&e.removeEventListener("scrollend",g)}},"observeOffset"),Q=a((l,h)=>P(l,h,t=>{const{horizontal:e,isRtl:s}=l.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),"observeElementOffset"),Z=a((l,h)=>P(l,h,t=>l.options.horizontal?t.scrollX:t.scrollY),"observeWindowOffset"),B=a((l,h,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(l),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(h?.borderBoxSize){const e=h.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!h){const e=t.indexFromElement(l),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return l[t.options.horizontal?"offsetWidth":"offsetHeight"]},"measureElement"),H=a((l,{adjustments:h=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:l+h,behavior:t})},"scrollWithAdjustments"),tt=H,et=H;class st{static{a(this,"Virtualizer")}constructor(h){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=a(()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=a(()=>{const n=i.target,r=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[d,g]of this.elementsCache)if(g===n){this.elementsCache.delete(d);break}return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,i,this))},"run");this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})})),"get");return{disconnect:a(()=>{var s;(s=e())==null||s.disconnect(),t=null},"disconnect"),observe:a(s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},"observe"),unobserve:a(s=>{var i;return(i=e())==null?void 0:i.unobserve(s)},"unobserve")}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:N,rangeExtractor:K,onChange:a(()=>{},"onChange"),measureElement:B,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const u in t){const p=t[u];p!==void 0&&(i[u]=p)}const o=this.options;let n=null,r=null,d=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const u=o.count,p=i.count,v=this.getMeasurements(),O=u>0?((e=v[0])==null?void 0:e.key)??o.getItemKey(0):null,_=u>0?((s=v[u-1])==null?void 0:s.key)??o.getItemKey(u-1):null;if(p!==u||u>0&&p>0&&(i.getItemKey(0)!==O||i.getItemKey(p-1)!==_)){d=!0;const b=u>0?this.getVirtualItemForOffset(this.getScrollOffset())??v[0]:null;b&&(n=[b.key,this.getScrollOffset()-b.start]);const E=i.followOnAppend===!0?"auto":i.followOnAppend||null;E&&p>u&&this.isAtEnd(o.scrollEndThreshold)&&(u===0||i.getItemKey(p-1)!==_)&&(r=E)}}this.options=i,d&&(this.pendingMin=0,this.itemSizeCacheVersion++);let g=!1,m=0;if(n&&this.scrollOffset!==null){const[u,p]=n,v=this.getMeasurements(),{count:O,getItemKey:_}=this.options;let c=0;for(;c<O&&_(c)!==u;)c++;if(c<O){const f=v[c];if(f){const b=Math.max(0,f.start+p);b!==this.scrollOffset&&(m=b-this.scrollOffset,this.scrollOffset=b,g=!0)}}}(g||r)&&(this.pendingScrollAnchor=[g?n[0]:null,g?n[1]:0,r,m])},this.notify=t=>{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:a(()=>this.options.debug,"debug"),initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{if(o&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const n=this.getScrollOffset();this.scrollDirection=o?n===i?this.scrollDirection:n<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,o=a(()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},"onTouchStart"),n=a(()=>{this._iosTouching=!1,!(!D()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))},"onTouchEnd");i.addEventListener("touchstart",o,T),i.addEventListener("touchend",n,T),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,r]=s;i!==null&&!n&&(D()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?r!==0&&(this._iosDeferredAdjustment+=r):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;if(this._iosDeferredAdjustment<0&&t>=e-1){this._iosDeferredAdjustment=0;return}const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,e,s,i,o,n,r,d)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:d}),{key:!1}),this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:d},g)=>{const m=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const c of this.laneAssignments.keys())c>=t&&this.laneAssignments.delete(c);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const c=t*2;let f=this._flatMeasurements;if(!f||f.length<c){const S=new Float64Array(c);f&&u>0&&S.set(f.subarray(0,u*2)),f=S,this._flatMeasurements=f}let b;if(u===0)b=e+s;else{const S=u-1;b=f[S*2]+f[S*2+1]+d}for(let S=u;S<t;S++){const C=i(S),w=m.get(C),y=typeof w=="number"?w:this.options.estimateSize(S);f[S*2]=b,f[S*2+1]=y,b+=y+d}const E=X(t,f,i);return this.measurementsCache=E,E}const p=this.measurementsCache.slice(0,u),v=new Array(n).fill(void 0),O=new Float64Array(n);let _=0;for(let c=0;c<u;c++){const f=p[c];f&&(v[f.lane]===void 0&&_++,v[f.lane]=c,O[f.lane]=f.end)}for(let c=u;c<t;c++){const f=i(c),b=this.laneAssignments.get(c);let E,S;const C=r==="estimate"||m.has(f);if(b!==void 0&&this.options.lanes>1){E=b;const A=v[E],I=A!==void 0?p[A]:void 0;S=I?I.end+d:e+s}else if(_===n){let A=0,I=O[0],j=v[0];for(let z=1;z<n;z++){const F=O[z];(F<I||F===I&&v[z]<j)&&(A=z,I=F,j=v[z])}E=A,S=I+d,C&&this.laneAssignments.set(c,E)}else E=c%this.options.lanes,S=e+s,C&&this.laneAssignments.set(c,E);const w=m.get(f),y=typeof w=="number"?w:this.options.estimateSize(c),W=S+y;p[c]={index:c,start:S,size:y,end:W,key:f,lane:E},v[E]===void 0&&_++,v[E]=c,O[E]=W}return this.measurementsCache=p,p},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:a(()=>this.options.debug,"debug")}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>t.length===0||e===0?(this.range=null,null):(this.range=nt(t,e,s,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:a(()=>this.options.debug,"debug")}),this.getVirtualIndexes=x(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:a(()=>this.options.debug,"debug")}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t),s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(t<0||t>=this.options.count)return;let o,n,r;const d=this._flatMeasurements;if(this.options.lanes===1&&d!==null)r=this.options.getItemKey(t),n=d[t*2],o=d[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;r=u.key,n=u.start,o=u.size}const g=this.itemSizeCache.get(r)??o,m=e-g;if(m!==0){const u=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,p=u?this.getTotalSize():0,v=this.getScrollOffset()+this.scrollAdjustments,_=!this.itemSizeCache.has(r)?n<v:n+g<=v&&this.scrollDirection!=="backward",c=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:r,start:n,size:o,end:n+o,lane:0},m,this):_);(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(r,e),this.itemSizeCacheVersion++;let f=!1;u?f=this.applyScrollAdjustment(this.getTotalSize()-p):c&&(f=this.applyScrollAdjustment(m)),this.notify(f)}},this.getVirtualItems=x(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;i<o;i++){const n=t[i],r=e[n];s.push(r)}return s},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:a(()=>this.options.debug,"debug")}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=J(0,e.length-1,i?n=>s[n*2]:n=>R(e[n]).start,t);return R(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{this._iosDeferredAdjustment=0;const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{this._iosDeferredAdjustment=0,t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,r=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(h)}applyScrollAdjustment(h,t){return h===0?!1:(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",h),D()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=h,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=h,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&k(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,r=Math.abs(s-this.getScrollOffset()),d=this.scrollState.behavior==="smooth"&&r>n;this.scrollState.lastTargetOffset=s,d||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:d?"smooth":"auto"})}this.scheduleScrollReconcile()}}const J=a((l,h,t,e)=>{for(;l<=h;){const s=(l+h)/2|0,i=t(s);if(i<e)l=s+1;else if(i>e)h=s-1;else return s}return l>0?l-1:0},"findNearestBinarySearch");function it(l,h,t){let e=0;for(;e<=h;){const s=(e+h)/2|0,i=l[s*2];if(i<t)e=s+1;else if(i>t)h=s-1;else return s}return e>0?e-1:0}a(it,"findNearestBinarySearchFlat");function nt(l,h,t,e,s){const i=l.length-1;if(l.length<=e)return{startIndex:0,endIndex:i};if(e===1&&s!==null){const d=it(s,i,t);let g=d;const m=t+h;for(;g<i&&s[g*2]+s[g*2+1]<m;)g++;return{startIndex:d,endIndex:g}}let n=J(0,i,a(d=>l[d].start,"getStart"),t),r=n;if(e===1)for(;r<i&&l[r].end<t+h;)r++;else if(e>1){const d=Array(e).fill(0);for(;r<i&&d.some(m=>m<t+h);){const m=l[r];d[m.lane]=m.end,r++}const g=Array(e).fill(t+h);for(;n>=0&&g.some(m=>m>=t);){const m=l[n];g[m.lane]=m.start,n--}n=Math.max(0,n-n%e),r=Math.min(i,r+(e-1-r%e))}return{startIndex:n,endIndex:r}}a(nt,"calculateRangeImpl");export{st as Virtualizer,U as _resetIOSDetectionForTests,k as approxEqual,L as debounce,N as defaultKeyExtractor,K as defaultRangeExtractor,et as elementScroll,B as measureElement,x as memo,R as notUndefined,Q as observeElementOffset,Y as observeElementRect,Z as observeWindowOffset,$ as observeWindowRect,tt as windowScroll};
1
+ var q=Object.defineProperty;var a=(l,h)=>q(l,"name",{value:h,configurable:!0});import{createLazyMeasurementsView as X}from"./lazy-measurements.js";import{memo as x,notUndefined as F,approxEqual as k,debounce as L}from"./utils.js";let M;const D=a(()=>{if(M!==void 0)return M;if(typeof navigator>"u")return M=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return M=!0;const l=navigator.maxTouchPoints;return M=navigator.platform==="MacIntel"&&l!==void 0&&l>0},"isIOSWebKit"),U=a(()=>{M=void 0},"_resetIOSDetectionForTests"),V=a(l=>{const{offsetWidth:h,offsetHeight:t}=l;return{width:h,height:t}},"getRect"),N=a(l=>l,"defaultKeyExtractor"),K=a(l=>{const h=Math.max(l.startIndex-l.overscan,0),e=Math.min(l.endIndex+l.overscan,l.count-1)-h+1,s=new Array(e);for(let i=0;i<e;i++)s[i]=h+i;return s},"defaultRangeExtractor"),Y=a((l,h)=>{const t=l.scrollElement;if(!t)return;const e=l.targetWindow;if(!e)return;const s=a(o=>{const{width:n,height:r}=o;h({width:Math.round(n),height:Math.round(r)})},"handler");if(s(V(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=a(()=>{const r=o[0];if(r?.borderBoxSize){const d=r.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(V(t))},"run");l.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},"observeElementRect"),T={passive:!0},$=a((l,h)=>{const t=l.scrollElement;if(!t)return;const e=a(()=>{h({width:t.innerWidth,height:t.innerHeight})},"handler");return e(),t.addEventListener("resize",e,T),()=>{t.removeEventListener("resize",e)}},"observeWindowRect"),G=typeof window>"u"?!0:"onscrollend"in window,P=a((l,h,t)=>{const e=l.scrollElement;if(!e)return;const s=l.targetWindow;if(!s)return;const i=l.options.useScrollendEvent&&G;let o=0;const n=i?null:L(s,()=>h(o,!1),l.options.isScrollingResetDelay),r=a(m=>()=>{o=t(e),n?.(),h(o,m)},"createHandler"),d=r(!0),g=r(!1);return e.addEventListener("scroll",d,T),i&&e.addEventListener("scrollend",g,T),()=>{e.removeEventListener("scroll",d),i&&e.removeEventListener("scrollend",g),n?.cancel()}},"observeOffset"),Q=a((l,h)=>P(l,h,t=>{const{horizontal:e,isRtl:s}=l.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),"observeElementOffset"),Z=a((l,h)=>P(l,h,t=>l.options.horizontal?t.scrollX:t.scrollY),"observeWindowOffset"),B=a((l,h,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(l),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(h?.borderBoxSize){const e=h.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!h){const e=t.indexFromElement(l),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return l[t.options.horizontal?"offsetWidth":"offsetHeight"]},"measureElement"),H=a((l,{adjustments:h=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:l+h,behavior:t})},"scrollWithAdjustments"),tt=H,et=H;class st{static{a(this,"Virtualizer")}constructor(h){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=a(()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=a(()=>{const n=i.target,r=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[d,g]of this.elementsCache)if(g===n){this.elementsCache.delete(d);break}return}this.isIndexInRange(r)&&this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,i,this))},"run");this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})})),"get");return{disconnect:a(()=>{var s;(s=e())==null||s.disconnect(),t=null},"disconnect"),observe:a(s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},"observe"),unobserve:a(s=>{var i;return(i=e())==null?void 0:i.unobserve(s)},"unobserve")}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:N,rangeExtractor:K,onChange:a(()=>{},"onChange"),measureElement:B,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const u in t){const p=t[u];p!==void 0&&(i[u]=p)}const o=this.options;let n=null,r=null,d=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const u=o.count,p=i.count,v=this.getMeasurements(),O=u>0?((e=v[0])==null?void 0:e.key)??o.getItemKey(0):null,I=u>0?((s=v[u-1])==null?void 0:s.key)??o.getItemKey(u-1):null;if(p!==u||u>0&&p>0&&(i.getItemKey(0)!==O||i.getItemKey(p-1)!==I)){d=!0;const b=u>0?this.getVirtualItemForOffset(this.getScrollOffset())??v[0]:null;b&&(n=[b.key,this.getScrollOffset()-b.start]);const E=i.followOnAppend===!0?"auto":i.followOnAppend||null;E&&p>u&&this.isAtEnd(o.scrollEndThreshold)&&(u===0||i.getItemKey(p-1)!==I)&&(r=E)}}this.options=i,d&&(this.pendingMin=0,this.itemSizeCacheVersion++);let g=!1,m=0;if(n&&this.scrollOffset!==null){const[u,p]=n,v=this.getMeasurements(),{count:O,getItemKey:I}=this.options;let c=0;for(;c<O&&I(c)!==u;)c++;if(c<O){const f=v[c];if(f){const b=Math.max(0,f.start+p);b!==this.scrollOffset&&(m=b-this.scrollOffset,this.scrollOffset=b,g=!0)}}}(g||r)&&(this.pendingScrollAnchor=[g?n[0]:null,g?n[1]:0,r,m])},this.notify=t=>{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:a(()=>this.options.debug,"debug"),initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{if(o&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const n=this.getScrollOffset();this.scrollDirection=o?n===i?this.scrollDirection:n<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,o=a(()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},"onTouchStart"),n=a(()=>{this._iosTouching=!1,!(!D()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))},"onTouchEnd");i.addEventListener("touchstart",o,T),i.addEventListener("touchend",n,T),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,r]=s;i!==null&&!n&&(D()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?r!==0&&(this._iosDeferredAdjustment+=r):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;if(this._iosDeferredAdjustment<0&&t>=e-1){this._iosDeferredAdjustment=0;return}const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,e,s,i,o,n,r,d)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:d}),{key:!1}),this.isIndexInRange=t=>t>=0&&t<this.options.count,this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:d},g)=>{const m=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const c of this.laneAssignments.keys())c>=t&&this.laneAssignments.delete(c);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const c=t*2;let f=this._flatMeasurements;if(!f||f.length<c){const S=new Float64Array(c);f&&u>0&&S.set(f.subarray(0,u*2)),f=S,this._flatMeasurements=f}let b;if(u===0)b=e+s;else{const S=u-1;b=f[S*2]+f[S*2+1]+d}for(let S=u;S<t;S++){const C=i(S),w=m.get(C),y=typeof w=="number"?w:this.options.estimateSize(S);f[S*2]=b,f[S*2+1]=y,b+=y+d}const E=X(t,f,i);return this.measurementsCache=E,E}const p=this.measurementsCache.slice(0,u),v=new Array(n).fill(void 0),O=new Float64Array(n);let I=0;for(let c=0;c<u;c++){const f=p[c];f&&(v[f.lane]===void 0&&I++,v[f.lane]=c,O[f.lane]=f.end)}for(let c=u;c<t;c++){const f=i(c),b=this.laneAssignments.get(c);let E,S;const C=r==="estimate"||m.has(f);if(b!==void 0&&this.options.lanes>1){E=b;const A=v[E],_=A!==void 0?p[A]:void 0;S=_?_.end+d:e+s}else if(I===n){let A=0,_=O[0],j=v[0];for(let z=1;z<n;z++){const R=O[z];(R<_||R===_&&v[z]<j)&&(A=z,_=R,j=v[z])}E=A,S=_+d,C&&this.laneAssignments.set(c,E)}else E=c%this.options.lanes,S=e+s,C&&this.laneAssignments.set(c,E);const w=m.get(f),y=typeof w=="number"?w:this.options.estimateSize(c),W=S+y;p[c]={index:c,start:S,size:y,end:W,key:f,lane:E},v[E]===void 0&&I++,v[E]=c,O[E]=W}return this.measurementsCache=p,p},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:a(()=>this.options.debug,"debug")}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>t.length===0||e===0?(this.range=null,null):(this.range=nt(t,e,s,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:a(()=>this.options.debug,"debug")}),this.getVirtualIndexes=x(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:a(()=>this.options.debug,"debug")}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t);if(!this.isIndexInRange(e))return;const s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(!this.isIndexInRange(t))return;let o,n,r;const d=this._flatMeasurements;if(this.options.lanes===1&&d!==null)r=this.options.getItemKey(t),n=d[t*2],o=d[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;r=u.key,n=u.start,o=u.size}const g=this.itemSizeCache.get(r)??o,m=e-g;if(m!==0){const u=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,p=u?this.getTotalSize():0,v=this.getScrollOffset()+this.scrollAdjustments,I=!this.itemSizeCache.has(r)?n<v:n+g<=v&&this.scrollDirection!=="backward",c=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:r,start:n,size:o,end:n+o,lane:0},m,this):I);(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(r,e),this.itemSizeCacheVersion++;let f=!1;u?f=this.applyScrollAdjustment(this.getTotalSize()-p):c&&(f=this.applyScrollAdjustment(m)),this.notify(f)}},this.getVirtualItems=x(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;i<o;i++){const n=t[i],r=e[n];s.push(r)}return s},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:a(()=>this.options.debug,"debug")}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=J(0,e.length-1,i?n=>s[n*2]:n=>F(e[n]).start,t);return F(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{this._iosDeferredAdjustment=0;const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{this._iosDeferredAdjustment=0,t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,r=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(h)}applyScrollAdjustment(h,t){return h===0?!1:(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",h),D()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=h,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=h,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&k(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,r=Math.abs(s-this.getScrollOffset()),d=this.scrollState.behavior==="smooth"&&r>n;this.scrollState.lastTargetOffset=s,d||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:d?"smooth":"auto"})}this.scheduleScrollReconcile()}}const J=a((l,h,t,e)=>{for(;l<=h;){const s=(l+h)/2|0,i=t(s);if(i<e)l=s+1;else if(i>e)h=s-1;else return s}return l>0?l-1:0},"findNearestBinarySearch");function it(l,h,t){let e=0;for(;e<=h;){const s=(e+h)/2|0,i=l[s*2];if(i<t)e=s+1;else if(i>t)h=s-1;else return s}return e>0?e-1:0}a(it,"findNearestBinarySearchFlat");function nt(l,h,t,e,s){const i=l.length-1;if(l.length<=e)return{startIndex:0,endIndex:i};if(e===1&&s!==null){const d=it(s,i,t);let g=d;const m=t+h;for(;g<i&&s[g*2]+s[g*2+1]<m;)g++;return{startIndex:d,endIndex:g}}let n=J(0,i,a(d=>l[d].start,"getStart"),t),r=n;if(e===1)for(;r<i&&l[r].end<t+h;)r++;else if(e>1){const d=Array(e).fill(0);for(;r<i&&d.some(m=>m<t+h);){const m=l[r];d[m.lane]=m.end,r++}const g=Array(e).fill(t+h);for(;n>=0&&g.some(m=>m>=t);){const m=l[n];g[m.lane]=m.start,n--}n=Math.max(0,n-n%e),r=Math.min(i,r+(e-1-r%e))}return{startIndex:n,endIndex:r}}a(nt,"calculateRangeImpl");export{st as Virtualizer,U as _resetIOSDetectionForTests,k as approxEqual,L as debounce,N as defaultKeyExtractor,K as defaultRangeExtractor,et as elementScroll,B as measureElement,x as memo,F as notUndefined,Q as observeElementOffset,Y as observeElementRect,Z as observeWindowOffset,$ as observeWindowRect,tt as windowScroll};
@@ -1,4 +1,4 @@
1
- var E=Object.defineProperty;var o=(n,t)=>E(n,"name",{value:t,configurable:!0});function b(n,t,e){let i=e.initialDeps??[],l,h=!0;function f(){var u;const c=process.env.NODE_ENV!=="production"&&!!e.key&&!!((u=e.debug)!=null&&u.call(e));let m=0;c&&(m=Date.now());const a=n();if(!(a.length!==i.length||a.some((s,r)=>i[r]!==s)))return l;i=a;let g=0;if(c&&(g=Date.now()),l=t(...a),c){const s=Math.round((Date.now()-m)*100)/100,r=Math.round((Date.now()-g)*100)/100,w=r/16,p=o((d,D)=>{for(d=String(d);d.length<D;)d=" "+d;return d},"pad");console.info(`%c⏱ ${p(r,5)} /${p(s,5)} ms`,`
1
+ var w=Object.defineProperty;var o=(e,t)=>w(e,"name",{value:t,configurable:!0});function E(e,t,n){let i=n.initialDeps??[],l,h=!0;function f(){var u;const r=process.env.NODE_ENV!=="production"&&!!n.key&&!!((u=n.debug)!=null&&u.call(n));let m=0;r&&(m=Date.now());const d=e();if(!(d.length!==i.length||d.some((s,c)=>i[c]!==s)))return l;i=d;let g=0;if(r&&(g=Date.now()),l=t(...d),r){const s=Math.round((Date.now()-m)*100)/100,c=Math.round((Date.now()-g)*100)/100,D=c/16,p=o((a,b)=>{for(a=String(a);a.length<b;)a=" "+a;return a},"pad");console.info(`%c⏱ ${p(c,5)} /${p(s,5)} ms`,`
2
2
  font-size: .6rem;
3
3
  font-weight: bold;
4
- color: hsl(${Math.max(0,Math.min(120-120*w,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(h&&e.skipInitialOnChange)&&e.onChange(l),h=!1,l}return o(f,"memoizedFunction"),f.updateDeps=u=>{i=u},f}o(b,"memo");function T(n,t){if(n===void 0)throw new Error(`Unexpected undefined${t?`: ${t}`:""}`);return n}o(T,"notUndefined");const v=o((n,t)=>Math.abs(n-t)<1.01,"approxEqual"),C=o((n,t,e)=>{let i;return function(...l){n.clearTimeout(i),i=n.setTimeout(()=>t.apply(this,l),e)}},"debounce");export{v as approxEqual,C as debounce,b as memo,T as notUndefined};
4
+ color: hsl(${Math.max(0,Math.min(120-120*D,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(h&&n.skipInitialOnChange)&&n.onChange(l),h=!1,l}return o(f,"memoizedFunction"),f.updateDeps=u=>{i=u},f}o(E,"memo");function T(e,t){if(e===void 0)throw new Error(`Unexpected undefined${t?`: ${t}`:""}`);return e}o(T,"notUndefined");const v=o((e,t)=>Math.abs(e-t)<1.01,"approxEqual"),C=o((e,t,n)=>{let i;return Object.assign(function(...l){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,l),n)},{cancel:o(()=>{e.clearTimeout(i)},"cancel")})},"debounce");export{v as approxEqual,C as debounce,E as memo,T as notUndefined};
@@ -1 +1 @@
1
- {"name":"@tanstack/virtual-core","version":"3.17.7","license":"MIT","type":"module","main":"dist/cjs/index.cjs","module":"dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false}
1
+ {"name":"@tanstack/virtual-core","version":"3.17.8","license":"MIT","type":"module","main":"dist/cjs/index.cjs","module":"dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false}
@@ -37,7 +37,7 @@ const mergePath = (base, path) => {
37
37
  const replaceUrlParam = (urlString, params) => {
38
38
  for (const [k, v] of Object.entries(params)) {
39
39
  const reg = new RegExp("/:" + k + "(?:{[^/]+})?\\??(?=/|$)");
40
- urlString = urlString.replace(reg, v ? `/${v}` : "");
40
+ urlString = urlString.replace(reg, () => v ? `/${v}` : "");
41
41
  }
42
42
  return urlString;
43
43
  };
@@ -224,6 +224,10 @@ class Context {
224
224
  * c.header('X-Message', 'Hello!')
225
225
  * c.header('Content-Type', 'text/plain')
226
226
  *
227
+ * // Append multiple headers using the append option (e.g. Vary)
228
+ * c.header('Vary', 'Accept-Encoding', { append: true })
229
+ * c.header('Vary', 'User-Agent', { append: true })
230
+ *
227
231
  * return c.body('Thank you for coming')
228
232
  * })
229
233
  * ```
@@ -69,7 +69,7 @@ const cors = (options) => {
69
69
  }
70
70
  if (c.req.method === "OPTIONS") {
71
71
  if (opts.origin !== "*") {
72
- set("Vary", "Origin");
72
+ c.res.headers.append("Vary", "Origin");
73
73
  }
74
74
  if (opts.maxAge != null) {
75
75
  set("Access-Control-Max-Age", opts.maxAge.toString());
@@ -23,7 +23,7 @@ module.exports = __toCommonJS(csrf_exports);
23
23
  var import_http_exception = require("../../http-exception");
24
24
  const secFetchSiteValues = ["same-origin", "same-site", "none", "cross-site"];
25
25
  const isSecFetchSite = (value) => secFetchSiteValues.includes(value);
26
- const isSafeMethodRe = /^(GET|HEAD)$/;
26
+ const isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
27
27
  const isRequestedByFormElementRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)\b/i;
28
28
  const csrf = (options) => {
29
29
  const originHandler = ((optsOrigin) => {
@@ -59,7 +59,7 @@ const generateDigest = async (stream, generator) => {
59
59
  const requiredLength = chunkLength + remaining;
60
60
  if (requiredLength < CHUNK_SIZE) {
61
61
  if (!chunk) {
62
- chunk = value.subarray(offset);
62
+ chunk = value.slice(offset);
63
63
  } else {
64
64
  if (chunk.byteLength < requiredLength) {
65
65
  const nextChunk = new Uint8Array(
@@ -82,11 +82,11 @@ const etag = (options) => {
82
82
  ETag: etag3
83
83
  }
84
84
  });
85
- c.res.headers.forEach((_, key) => {
85
+ for (const key of Array.from(c.res.headers.keys())) {
86
86
  if (retainedHeaders.indexOf(key.toLowerCase()) === -1) {
87
87
  c.res.headers.delete(key);
88
88
  }
89
- });
89
+ }
90
90
  } else {
91
91
  c.res.headers.set("ETag", etag3);
92
92
  }
@@ -20,12 +20,14 @@ __export(pretty_json_exports, {
20
20
  prettyJSON: () => prettyJSON
21
21
  });
22
22
  module.exports = __toCommonJS(pretty_json_exports);
23
+ const jsonContentTypeRegex = /^application\/(?:[a-z0-9._-]+\+)?json(?=$|[;\s])/i;
23
24
  const prettyJSON = (options) => {
24
25
  const targetQuery = options?.query ?? "pretty";
25
26
  return async function prettyJSON2(c, next) {
26
27
  const pretty = options?.force || c.req.query(targetQuery) || c.req.query(targetQuery) === "";
27
28
  await next();
28
- if (pretty && c.res.headers.get("Content-Type")?.startsWith("application/json")) {
29
+ const contentType = c.res.headers.get("Content-Type");
30
+ if (pretty && contentType && jsonContentTypeRegex.test(contentType)) {
29
31
  const obj = await c.res.json();
30
32
  c.res = new Response(JSON.stringify(obj, null, options?.space ?? 2), c.res);
31
33
  }
@@ -50,7 +50,8 @@ class LinearRouter {
50
50
  }
51
51
  } else if (hasStar && !hasLabel) {
52
52
  const endsWithStar = routePath.charCodeAt(routePath.length - 1) === 42;
53
- const parts = (endsWithStar ? routePath.slice(0, -2) : routePath).split(splitByStarRe);
53
+ const endsWithSlashStar = routePath.endsWith("/*");
54
+ const parts = (endsWithStar ? routePath.slice(0, endsWithSlashStar ? -2 : -1) : routePath).split(splitByStarRe);
54
55
  const lastIndex = parts.length - 1;
55
56
  for (let j = 0, pos = 0, len2 = parts.length; j < len2; j++) {
56
57
  const part = parts[j];
@@ -60,7 +61,11 @@ class LinearRouter {
60
61
  }
61
62
  pos += part.length;
62
63
  if (j === lastIndex) {
63
- if (!endsWithStar && pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) {
64
+ if (endsWithSlashStar) {
65
+ if (pos !== path.length && path.charCodeAt(pos) !== 47) {
66
+ continue ROUTES_LOOP;
67
+ }
68
+ } else if (!endsWithStar && pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) {
64
69
  continue ROUTES_LOOP;
65
70
  }
66
71
  } else {
@@ -26,10 +26,8 @@ class PatternRouter {
26
26
  name = "PatternRouter";
27
27
  #routes = [];
28
28
  add(method, path, handler) {
29
- const endsWithWildcard = path.at(-1) === "*";
30
- if (endsWithWildcard) {
31
- path = path.slice(0, -2);
32
- }
29
+ const suffix = path.endsWith("/*") ? "(?:$|/)" : path.endsWith("*") ? "" : "/?$";
30
+ path = path.replace(/\*$/, "");
33
31
  if (path.at(-1) === "?") {
34
32
  path = path.slice(0, -1);
35
33
  this.add(method, path.replace(/\/[^/]+$/, ""), handler);
@@ -41,11 +39,7 @@ class PatternRouter {
41
39
  }
42
40
  );
43
41
  try {
44
- this.#routes.push([
45
- new RegExp(`^${parts.join("")}${endsWithWildcard ? "" : "/?$"}`),
46
- method,
47
- handler
48
- ]);
42
+ this.#routes.push([new RegExp(`^${parts.join("")}${suffix}`), method, handler]);
49
43
  } catch {
50
44
  throw new import_router.UnsupportedPathError();
51
45
  }
@@ -23,76 +23,51 @@ module.exports = __toCommonJS(node_exports);
23
23
  var import_router = require("../../router");
24
24
  var import_url = require("../../utils/url");
25
25
  const emptyParams = /* @__PURE__ */ Object.create(null);
26
- const hasChildren = (children) => {
27
- for (const _ in children) {
28
- return true;
29
- }
30
- return false;
31
- };
26
+ let order = 0;
32
27
  class Node {
33
- #methods;
34
- #children;
35
- #patterns;
36
- #order = 0;
28
+ #methods = [];
29
+ #children = /* @__PURE__ */ Object.create(null);
30
+ #patterns = [];
31
+ #pattern;
37
32
  #params = emptyParams;
38
- constructor(method, handler, children) {
39
- this.#children = children || /* @__PURE__ */ Object.create(null);
40
- this.#methods = [];
41
- if (method && handler) {
42
- const m = /* @__PURE__ */ Object.create(null);
43
- m[method] = { handler, possibleKeys: [], score: 0 };
44
- this.#methods = [m];
45
- }
46
- this.#patterns = [];
47
- }
48
33
  insert(method, path, handler) {
49
- this.#order = ++this.#order;
50
34
  let curNode = this;
51
35
  const parts = (0, import_url.splitRoutingPath)(path);
52
- const possibleKeys = [];
53
- for (let i = 0, len = parts.length; i < len; i++) {
54
- const p = parts[i];
55
- const nextP = parts[i + 1];
56
- const pattern = (0, import_url.getPattern)(p, nextP);
57
- const key = Array.isArray(pattern) ? pattern[0] : p;
58
- if (key in curNode.#children) {
59
- curNode = curNode.#children[key];
60
- if (pattern) {
61
- possibleKeys.push(pattern[1]);
62
- }
63
- continue;
36
+ const possibleKeys = /* @__PURE__ */ new Set();
37
+ let i = 0;
38
+ for (const p of parts) {
39
+ const nextP = parts[++i];
40
+ const pattern = (0, import_url.getPattern)(p, nextP) || (nextP === void 0 && p && p.indexOf("*") === p.length - 1 ? p : null);
41
+ const isParam = Array.isArray(pattern);
42
+ const key = isParam ? pattern[0] : pattern || p;
43
+ const child = curNode.#children[key] ||= new Node();
44
+ if (pattern && !child.#pattern) {
45
+ child.#pattern = pattern;
46
+ curNode.#patterns.push(child);
64
47
  }
65
- curNode.#children[key] = new Node();
66
- if (pattern) {
67
- curNode.#patterns.push(pattern);
68
- possibleKeys.push(pattern[1]);
48
+ curNode = child;
49
+ if (isParam) {
50
+ possibleKeys.add(pattern[1]);
69
51
  }
70
- curNode = curNode.#children[key];
71
52
  }
72
53
  curNode.#methods.push({
73
54
  [method]: {
74
55
  handler,
75
- possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i),
76
- score: this.#order
56
+ possibleKeys: [...possibleKeys],
57
+ score: ++order
77
58
  }
78
59
  });
79
- return curNode;
80
60
  }
81
61
  #pushHandlerSets(handlerSets, node, method, nodeParams, params) {
82
62
  for (let i = 0, len = node.#methods.length; i < len; i++) {
83
63
  const m = node.#methods[i];
84
64
  const handlerSet = m[method] || m[import_router.METHOD_NAME_ALL];
85
- const processedSet = {};
86
- if (handlerSet !== void 0) {
65
+ if (handlerSet) {
87
66
  handlerSet.params = /* @__PURE__ */ Object.create(null);
88
67
  handlerSets.push(handlerSet);
89
- if (nodeParams !== emptyParams || params && params !== emptyParams) {
90
- for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {
91
- const key = handlerSet.possibleKeys[i2];
92
- const processed = processedSet[handlerSet.score];
93
- handlerSet.params[key] = params?.[key] && !processed ? params[key] : nodeParams[key] ?? params?.[key];
94
- processedSet[handlerSet.score] = true;
95
- }
68
+ for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {
69
+ const key = handlerSet.possibleKeys[i2];
70
+ handlerSet.params[key] = params?.[key] && !i2 ? params[key] : nodeParams[key] ?? params?.[key];
96
71
  }
97
72
  }
98
73
  }
@@ -124,33 +99,33 @@ class Node {
124
99
  tempNodes.push(nextNode);
125
100
  }
126
101
  }
127
- for (let k = 0, len3 = node.#patterns.length; k < len3; k++) {
128
- const pattern = node.#patterns[k];
102
+ for (const child of node.#patterns) {
103
+ const pattern = child.#pattern;
129
104
  const params = node.#params === emptyParams ? {} : { ...node.#params };
130
- if (pattern === "*") {
131
- const astNode = node.#children["*"];
132
- if (astNode) {
133
- this.#pushHandlerSets(handlerSets, astNode, method, node.#params);
134
- astNode.#params = params;
135
- tempNodes.push(astNode);
105
+ if (typeof pattern === "string") {
106
+ if (pattern === "*" || part.startsWith(pattern.slice(0, -1))) {
107
+ this.#pushHandlerSets(handlerSets, child, method, node.#params);
108
+ if (pattern === "*") {
109
+ child.#params = params;
110
+ tempNodes.push(child);
111
+ }
136
112
  }
137
113
  continue;
138
114
  }
139
- const [key, name, matcher] = pattern;
140
- if (!part && !(matcher instanceof RegExp)) {
115
+ const [, name, matcher] = pattern;
116
+ if (!part && matcher === true) {
141
117
  continue;
142
118
  }
143
- const child = node.#children[key];
144
- if (matcher instanceof RegExp) {
145
- if (partOffsets === null) {
146
- partOffsets = new Array(len);
119
+ if (matcher !== true) {
120
+ if (!partOffsets) {
121
+ partOffsets = [];
147
122
  let offset = path[0] === "/" ? 1 : 0;
148
123
  for (let p = 0; p < len; p++) {
149
124
  partOffsets[p] = offset;
150
125
  offset += parts[p].length + 1;
151
126
  }
152
127
  }
153
- const restPathString = path.substring(partOffsets[i]);
128
+ const restPathString = path.slice(partOffsets[i]);
154
129
  const m = matcher.exec(restPathString);
155
130
  if (m) {
156
131
  params[name] = m[0];
@@ -164,11 +139,12 @@ class Node {
164
139
  params
165
140
  );
166
141
  }
167
- if (hasChildren(child.#children)) {
142
+ for (const _ in child.#children) {
168
143
  child.#params = params;
169
144
  const componentCount = m[0].match(/\//g)?.length ?? 0;
170
145
  const targetCurNodes = curNodesQueue[componentCount] ||= [];
171
146
  targetCurNodes.push(child);
147
+ break;
172
148
  }
173
149
  continue;
174
150
  }
@@ -196,7 +172,7 @@ class Node {
196
172
  const shifted = curNodesQueue.shift();
197
173
  curNodes = shifted ? tempNodes.concat(shifted) : tempNodes;
198
174
  }
199
- if (handlerSets.length > 1) {
175
+ if (handlerSets[1]) {
200
176
  handlerSets.sort((a, b) => {
201
177
  return a.score - b.score;
202
178
  });